PaymentJS

PaymentJS API: Fiserv card tokenization and payment flow. Typical flow: call AuthorizeSession to obtain a client token and public key; the client uses PaymentJS to tokenize the card; Fiserv POSTs the result to Webhook; the client then calls ProcessTokenizedPayment to complete or continue the payment (including 3D Secure). 3DS endpoints: ThreeDSNotification (method form callback), ThreeDSComplete (challenge redirect with cRes; TermUrl query uses MAC termMac or legacy t, or legacy bookingId/bookingHash). Method-not-received timeout is handled server-side in ProcessTokenizedPayment.

APIDescription
POST api/PaymentJS/AuthorizeSession

Obtains a client token and public key for PaymentJS card tokenization. Delegates to (bounded per-order lock, async Fiserv call).

POST api/PaymentJS/AbandonSession

No documentation available.

POST api/PaymentJS/ThreeDSComplete?transactionId={transactionId}&termMac={termMac}&t={t}&bookingId={bookingId}&bookingHash={bookingHash}

3D Secure challenge completion (ACS POST with cRes in form body). Query uses transactionId plus Term MAC termMac (legacy t) or legacy booking parameters.

POST api/PaymentJS/ProcessTokenizedPayment

No documentation available.

ApplePay

Apple Pay on the Web wallet payment endpoints.

APIDescription
GET api/ApplePay/Config?bookingId={bookingId}&bookingHash={bookingHash}

No documentation available.

POST api/ApplePay/ValidateMerchant

Validates the merchant with Apple (Payment Processing Certificate). Body: { "validationUrl": "..." }.

POST api/ApplePay/ProcessPayment

No documentation available.

GooglePay

Google Pay wallet payment endpoints. ProcessPayment processes the encrypted token from the Google Pay API; Config returns client configuration for the Google Pay button.

APIDescription
GET api/GooglePay/Config?bookingId={bookingId}&bookingHash={bookingHash}

Returns Google Pay configuration for the client for a validated booking. Requires query parameters bookingId and bookingHash (same as ProcessPayment). Merchant display name is resolved per order (dynamic merchant name); not from fiserv.config. Live: fiserv.config (via Configuration.Current). Test: FISERV_*_TEST database settings.

POST api/GooglePay/ProcessPayment

Processes a Google Pay payment. Validates booking, resolves order, sends token to Fiserv, and returns result (success, 3DS, or declined).

Status

Endpoints for retrieving system status and configuration information. Refactored to use service layer with dependency injection.

APIDescription
GET api/Status

Returns current system status including booking availability, call center hours, and maintenance warnings.