---
title: "Payment Status Update"
method: POST
path: "/payment-status"
tags: ["Payment Webhooks"]
---

# Payment Status Update

`POST /payment-status`

Primer notifies you with a `PAYMENT.STATUS` webhook when a payment's status
has been updated. This is especially useful for asyncronous processor Connections,
which do not respond with an upfront authorization.

The webhook events will arrive in the order that the payment status changes,
for example you should expect a status of `PENDING`, then `AUTHORIZED`, then
`SETTLED` (depending on how your workflow is set up).

The webhook body contains the full payment object.

## Headers

- `X-Signature-Primary` string, required
- `X-Signature-Secondary` string, required

## Request body

- PaymentStatusWebhookPayload
  - `eventType` string, required — The type of the webhook raised. `PAYMENT.STATUS` in this case.
  - `date` string, date-time, required — The date-time that the webhook was sent.
  - `signedAt` string, required — The Unix timestamp at which the webhook payload was signed.
  - `notificationConfig` object, required — The notification configuration details.
    - `id` string, uuid, required — The notification configuration ID.
    - `description` string, required — The notification configuration description.
  - `version` string — The payload version
  - `payment` object, required
    - `id` string, required — The unique payment ID. You can use this ID to retrieve the payment details, or perform downstream operations.
    - `date` string, date-time, required — The date and time at which the payment was created in UTC format.
    - `dateUpdated` string, date-time, required — The date-time that the update related to the webhook has happened.
    - `status` 'PENDING' | 'FAILED' | 'AUTHORIZED' | 'SETTLING' | 'PARTIALLY_SETTLED' | 'SETTLED' | 'DECLINED' | 'CANCELLED', required — An enumeration.
    - `orderId` string, required — Your reference for the payment.
    - `currencyCode` string, required — The 3-letter currency code in [ISO 4217 format](https://en.wikipedia.org/wiki/ISO_4217#Active_codes). e.g. use `USD` for US dollars.
    - `amount` integer, required — The amount you charged the customer, in minor units.
    - `customerId` string — The unique identifier for your customer.
    - `metadata` object — Additional data to be used throughout the payment lifecycle.
    - `customer` object
      - `emailAddress` string, email — Customer email address.
      - `mobileNumber` string — The customer's mobile number
      - `firstName` string — The customer's first name
      - `lastName` string — The customer's last name
      - `billingAddress` OptionalAddressAPISchema
        - `firstName` string
        - `lastName` string
        - `addressLine1` string — Street name, Company name or PO Box
        - `addressLine2` string — Apartment, Unit or Building number
        - `city` string — Name of the city, district, town or village
        - `state` string — State, County or Province
        - `countryCode` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'ZA' | 'ZM' | 'ZW' — An enumeration.
        - `postalCode` string — Postal or ZIP code
      - `shippingAddress` OptionalAddressAPISchema
        - `firstName` string
        - `lastName` string
        - `addressLine1` string — Street name, Company name or PO Box
        - `addressLine2` string — Apartment, Unit or Building number
        - `city` string — Name of the city, district, town or village
        - `state` string — State, County or Province
        - `countryCode` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'ZA' | 'ZM' | 'ZW' — An enumeration.
        - `postalCode` string — Postal or ZIP code
      - `taxId` string — The customer's tax id number for tax exemptions
      - `nationalDocumentId` string — The customer's national identification number
    - `paymentMethod` PaymentResponsePaymentMethodOptionsAPISchema, required
      - `descriptor` string — The description of the payment, as it would typically appear on a bank statement.
      - `paymentType` 'FIRST_PAYMENT' | 'ECOMMERCE' | 'SUBSCRIPTION' | 'UNSCHEDULED' — Payment types, primarily to be used for recurring payments. See the table below for all possible values. Note: if no field is set, we will return a blank value and make a best effort to calculate the downstream fields required for processing the payment. | paymentType | Use case | | --- | --- | | `FIRST_PAYMENT` | a customer-initiated payment which is the first in a series of recurring payments or subscription, or a card on file scenario. | `ECOMMERCE` | a customer-initiated payment using stored payment details where the cardholder is present. | `SUBSCRIPTION` | a merchant-initiated payment as part of a series of payments on a fixed schedule and a set amount. | `UNSCHEDULED` | a merchant-initiated payment using stored payment details with no fixed schedule or amount.
      - `paymentMethodToken` string — The payment method token used to authorize the transaction.
      - `isVaulted` boolean — If the payment method token was vaulted, this is set to `true`. Use this token for recurring payments.
      - `analyticsId` string — Unique analytics identifier corresponding to a payment method
      - `paymentMethodType` string — [The list of available payment methods and their `PAYMENT_METHOD_TYPE` can be found here.](https://primer.io/docs/connections/payment-methods/available-payment-methods)
      - `paymentMethodData` union — Payment method data
        - PaymentCardTokenAPISchema
          - `first6Digits` string
          - `last4Digits` string, required
          - `expirationMonth` string, required
          - `expirationYear` string, required
          - `cardholderName` string
          - `network` string
          - `isNetworkTokenized` boolean
          - `binData` BinDataAPISchema
            - `network` 'AMEX' | 'DANKORT' | 'DINERS_CLUB' | 'DISCOVER' | 'ENROUTE' | 'ELO' | 'HIPER' | 'INTERAC' | 'JCB' | 'MAESTRO' | 'MASTERCARD' | 'MIR' | 'PRIVATE_LABEL' | 'UNIONPAY' | 'VISA' | 'CARTES_BANCAIRES' | 'OTHER', required — The list of available card networks.
            - `issuerCountryCode` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'ZA' | 'ZM' | 'ZW' — An enumeration.
            - `issuerName` string
            - `issuerCurrencyCode` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SOS' | 'SRD' | 'SSP' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XFU' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' — Enumerates all supported currencies
            - `regionalRestriction` 'DOMESTIC_USE_ONLY' | 'NONE' | 'UNKNOWN', required — An enumeration.
            - `accountNumberType` 'PRIMARY_ACCOUNT_NUMBER' | 'NETWORK_TOKEN' | 'UNKNOWN', required — An enumeration.
            - `accountFundingType` 'CREDIT' | 'DEBIT' | 'PREPAID' | 'CHARGE' | 'DEFERRED_DEBIT' | 'UNKNOWN', required — An enumeration.
            - `prepaidReloadableIndicator` 'RELOADABLE' | 'NON_RELOADABLE' | 'NOT_APPLICABLE' | 'UNKNOWN', required — An enumeration.
            - `productUsageType` 'CONSUMER' | 'BUSINESS' | 'GOVERNMENT' | 'UNKNOWN', required — An enumeration.
            - `productCode` string, required
            - `productName` string, required
        - PayPalOrderTokenAPISchema
          - `paypalOrderId` string, required
          - `externalPayerInfo` PayPalExternalPayerInfoAPISchema
            - `externalPayerId` string
            - `email` string
            - `firstName` string
            - `lastName` string
          - `paypalStatus` string
        - PayPalBillingAgreementAPISchema
          - `paypalBillingAgreementId` string, required
          - `externalPayerInfo` PayPalExternalPayerInfoAPISchema
            - `externalPayerId` string
            - `email` string
            - `firstName` string
            - `lastName` string
          - `shippingAddress` AddressAPISchema
            - `firstName` string
            - `lastName` string
            - `addressLine1` string, required — Street name, Company name or PO Box
            - `addressLine2` string — Apartment, Unit or Building number
            - `city` string, required — Name of the city, district, town or village
            - `state` string — State, County or Province
            - `countryCode` 'AW' | 'AF' | 'AO' | 'AI' | 'AX' | 'AL' | 'AD' | 'AE' | 'AR' | 'AM' | 'AS' | 'AQ' | 'TF' | 'AG' | 'AU' | 'AT' | 'AZ' | 'BI' | 'BE' | 'BJ' | 'BQ' | 'BF' | 'BD' | 'BG' | 'BH' | 'BS' | 'BA' | 'BL' | 'BY' | 'BZ' | 'BM' | 'BO' | 'BR' | 'BB' | 'BN' | 'BT' | 'BV' | 'BW' | 'CF' | 'CA' | 'CC' | 'CH' | 'CL' | 'CN' | 'CI' | 'CM' | 'CD' | 'CG' | 'CK' | 'CO' | 'KM' | 'CV' | 'CR' | 'CU' | 'CW' | 'CX' | 'KY' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DM' | 'DK' | 'DO' | 'DZ' | 'EC' | 'EG' | 'ER' | 'EH' | 'ES' | 'EE' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FR' | 'FO' | 'FM' | 'GA' | 'GB' | 'GE' | 'GG' | 'GH' | 'GI' | 'GN' | 'GP' | 'GM' | 'GW' | 'GQ' | 'GR' | 'GD' | 'GL' | 'GT' | 'GF' | 'GU' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IM' | 'IN' | 'IO' | 'IE' | 'IR' | 'IQ' | 'IS' | 'IL' | 'IT' | 'JM' | 'JE' | 'JO' | 'JP' | 'KZ' | 'KE' | 'KG' | 'KH' | 'KI' | 'KN' | 'KR' | 'KW' | 'LA' | 'LB' | 'LR' | 'LY' | 'LC' | 'LI' | 'LK' | 'LS' | 'LT' | 'LU' | 'LV' | 'MO' | 'MF' | 'MA' | 'MC' | 'MD' | 'MG' | 'MV' | 'MX' | 'MH' | 'MK' | 'ML' | 'MT' | 'MM' | 'ME' | 'MN' | 'MP' | 'MZ' | 'MR' | 'MS' | 'MQ' | 'MU' | 'MW' | 'MY' | 'YT' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NU' | 'NL' | 'NO' | 'NP' | 'NR' | 'NZ' | 'OM' | 'PK' | 'PA' | 'PN' | 'PE' | 'PH' | 'PW' | 'PG' | 'PL' | 'PR' | 'KP' | 'PT' | 'PY' | 'PS' | 'PF' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'SA' | 'SD' | 'SN' | 'SG' | 'GS' | 'SH' | 'SJ' | 'SB' | 'SL' | 'SV' | 'SM' | 'SO' | 'PM' | 'RS' | 'SS' | 'ST' | 'SR' | 'SK' | 'SI' | 'SE' | 'SZ' | 'SX' | 'SC' | 'SY' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TM' | 'TL' | 'TO' | 'TT' | 'TN' | 'TR' | 'TV' | 'TW' | 'TZ' | 'UG' | 'UA' | 'UM' | 'UY' | 'US' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'ZA' | 'ZM' | 'ZW', required — An enumeration.
            - `postalCode` string — Postal or ZIP code
          - `paypalStatus` string
        - GoCardlessMandateAPISchema
          - `gocardlessMandateId` string, required — Unique identifier of a GoCardless mandate agreement
        - KlarnaPaymentSessionAPISchema
          - `klarnaAuthorizationToken` string, required
          - `sessionData` KlarnaSessionDetailsAPISchema, required
            - `recurringDescription` string
            - `billingAddress` KlarnaAddressAPISchema, required
              - …
            - `shippingAddress` KlarnaAddressAPISchema
              - …
            - `purchaseCountry` string, required
            - `purchaseCurrency` string, required
            - `locale` string, required
            - `orderLines` unknown[], required
              - …
            - `tokenDetails` KlarnaTokenDetails
              - …
        - KlarnaCustomerTokenAPISchema
          - `klarnaCustomerToken` string, required
          - `sessionData` KlarnaSessionDetailsAPISchema, required
            - `recurringDescription` string
            - `billingAddress` KlarnaAddressAPISchema, required
              - …
            - `shippingAddress` KlarnaAddressAPISchema
              - …
            - `purchaseCountry` string, required
            - `purchaseCurrency` string, required
            - `locale` string, required
            - `orderLines` unknown[], required
              - …
            - `tokenDetails` KlarnaTokenDetails
              - …
        - IdealPayNLTokenAPISchema
          - `paymentMethodConfigId` string, uuid, required
        - ApayaCustomerTokenAPISchema
          - `mx` string, required
          - `mnc` integer
          - `mcc` integer
      - `threeDSecureAuthentication` ThreeDSecureAuthenticationAPISchema
        - `responseCode` 'NOT_PERFORMED' | 'SKIPPED' | 'AUTH_SUCCESS' | 'AUTH_FAILED' | 'CHALLENGE' | 'METHOD', required — An enumeration.
        - `reasonCode` union
          - 'GATEWAY_UNAVAILABLE' | 'DISABLED_BY_MERCHANT' | 'NOT_SUPPORTED_BY_ISSUER' | 'FAILED_TO_NEGOTIATE' | 'UNKNOWN_ACS_RESPONSE' | '3DS_SERVER_ERROR' | 'ACQUIRER_NOT_CONFIGURED' | 'ACQUIRER_NOT_PARTICIPATING' | 'EXEMPTION_ACCEPTED' — An enumeration.
          - 'UNKNOWN' | 'REJECTED_BY_ISSUER' | 'CARD_AUTHENTICATION_FAILED' | 'UNKNOWN_DEVICE' | 'UNSUPPORTED_DEVICE' | 'EXCEEDS_AUTHENTICATION_FREQUENCY_LIMIT' | 'EXPIRED_CARD' | 'INVALID_CARD_NUMBER' | 'INVALID_TRANSACTION' | 'NO_CARD_RECORD' | 'SECURITY_FAILURE' | 'STOLEN_CARD' | 'SUSPECTED_FRAUD' | 'TRANSACTION_NOT_PERMITTED_TO_CARDHOLDER' | 'CARDHOLDER_NOT_ENROLLED_IN_SERVICE' | 'TRANSACTION_TIMED_OUT_AT_THE_ACS' | 'LOW_CONFIDENCE' | 'MEDIUM_CONFIDENCE' | 'HIGH_CONFIDENCE' | 'VERY_HIGH_CONFIDENCE' | 'EXCEEDS_ACS_MAXIMUM_CHALLENGES' | 'NON_PAYMENT_NOT_SUPPORTED' | 'THREE_RI_NOT_SUPPORTED' | 'ACS_TECHNICAL_ISSUE' | 'DECOUPLED_REQUIRED_BY_ACS' | 'DECOUPLED_MAX_EXPIRY_EXCEEDED' | 'DECOUPLED_AUTHENTICATION_INSUFFICIENT_TIME' | 'AUTHENTICATION_ATTEMPTED_BUT_NOT_PERFORMED_BY_CARDHOLDER' | 'ACS_TIMED_OUT' | 'INVALID_ACS_RESPONSE' | 'ACS_SYSTEM_ERROR_RESPONSE' | 'ERROR_GENERATING_CAVV' | 'PROTOCOL_VERSION_NOT_SUPPORTED' | 'TRANSACTION_EXCLUDED_FROM_ATTEMPTS_PROCESSING' | 'REQUESTED_PROGRAM_NOT_SUPPORTED' — This enum is derived from the `transStatusReason` on page 218 of the [EMV Co 3DS protocol specification](https://www.emvco.com/terms-of-use/?u=/wp-content/uploads/documents/EMVCo_3DS_Spec_v220_122018.pdf) | Code | Description | |------|-----------------------------------------| | 01 | Card authentication failed | | 02 | Unknown Device | | 03 | Unsupported Device | | 04 | Exceeds authentication frequency limit | | 05 | Expired card | | 06 | Invalid card number | | 07 | Invalid transaction | | 08 | No Card record | | 09 | Security failure | | 10 | Stolen card | | 11 | Suspected fraud | | 12 | Transaction not permitted to cardholder | | 13 | Cardholder not enrolled in service | | 14 | Transaction timed out at the ACS | | 15 | Low confidence | | 16 | Medium confidence |
        - `reasonText` string
        - `protocolVersion` string
        - `challengeIssued` boolean
    - `processor` PaymentResponseProcessorAPISchema
      - `name` string — The payment processor used for this payment.
      - `processorMerchantId` string — The merchant ID registered at the payment processor used for this payment.
      - `amountCaptured` integer — If no capture was performed, this value will be set to `0`. If one or more partial captures were performed, this value will be a sum of all partial capture amounts.
      - `amountRefunded` integer — If no refund was performed, this value will be set to `0`. If one or more partial refunds were performed, this value will be a sum of all partial refund amounts.
    - `statusReason` StatusReasonAPISchema
      - `type` 'APPLICATION_ERROR' | 'GATEWAY_REJECTED' | 'ISSUER_DECLINED' | 'GATEWAY_TIMEOUT', required — An enumeration.
      - `declineType` 'SOFT_DECLINE' | 'HARD_DECLINE' — An enumeration.
      - `code` 'ERROR' | 'INVALID_CARD_NUMBER' | 'EXPIRED_CARD' | 'LOST_OR_STOLEN_CARD' | 'SUSPECTED_FRAUD' | 'UNKNOWN' | 'DECLINED' | 'REFER_TO_CARD_ISSUER' | 'DO_NOT_HONOR' | 'INSUFFICIENT_FUNDS' | 'WITHDRAWAL_LIMIT_EXCEEDED' | 'ISSUER_TEMPORARILY_UNAVAILABLE' | 'AUTHENTICATION_REQUIRED' — An enumeration.
      - `message` string — In case of an error on the processor's part, we will return the message returned by the processor. This is usually a human readable error.
      - `paymentMethodResultCode` string — The result code returned by the payment method or card network. This code is unified across all supported processors. _e.g. Code `46` refers to the message "Closed account" for Visa across all supported processors._
      - `paymentMethodResultMessage` string — Human-readable version of the Payment Method Result Code. This message is unified across all supported processors. _e.g. Code `46` refers to the message "Closed account" for Visa across all supported processors._
      - `paymentMethodAdviceCode` string — The advice code returned by the payment method or card network. This code is unified across all supported processors. _For payments made with Mastercard, this represents the Merchant Advice Code (MAC)._ _e.g. Code `24` refers to the message "Retry after 1 hour" for Mastercard across all supported processors._
      - `paymentMethodAdviceMessage` string — Human-readable version of the Payment Method Advice Code. This message is unified across all supported processors. _For payments made with Mastercard, this represents the message of the Merchant Advice Code (MAC)._ _e.g. Code `24` refers to the message "Retry after 1 hour" for Mastercard across all supported processors._
      - `advisedAction` 'RETRY_LATER' | 'UPDATE_DATA' | 'DO_NOT_RETRY' | 'STOP_ALL_PAYMENTS' — The Primer-recommended action to take based on the underlying decline reason and advice code. This advised action is unified across all supported processors and payment methods. - `RETRY_LATER`: The payment was likely declined due to a temporary issue (e.g. Insufficient funds). The payment can be retried immediately or at a later date. - `UPDATE_DATA`: The payment was likely declined because critical data was missing or out-of-date. Please ensure you use the most up-to-date payment information and customer details before retrying the payment. - `DO_NOT_RETRY`: The payment was declined and should not be retried. You can still charge this payment method for future orders or installments. - `STOP_ALL_PAYMENTS`: The processor or payment method explicitly informs you to stop making any payment requests with this payment method. Please use another payment method to charge this customer. - `null`: Primer is unable to determine a recommended action.
    - `transactions` TransactionOverviewAPISchema[], required — A list summarizing the transactions that occurred while processing the payment. Note: a refund is a separate transaction and so will appear in this `transactions` list if a refund was performed.
      - `date` string, date-time, required — Date & time of the transaction (UTC)
      - `amount` integer, required — Transaction amount in minor units
      - `currencyCode` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SOS' | 'SRD' | 'SSP' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XFU' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL', required — Enumerates all supported currencies
      - `orderId` string — The reference submitted on payment creation or refund.
      - `transactionType` 'SALE' | 'REFUND', required — An enumeration.
      - `processorTransactionId` string — Processor's unique identifier for the transaction
      - `authorizationCode` string — The authorization code returned by the processor on a successful authorization. For transactions that were subsequently auth-adjusted, this is the latest code. Useful for chargeback matching and bank reconciliation. Not guaranteed to be present; availability depends on the processor.
      - `processorName` string, required — An identifier of a processor.
      - `processorMerchantId` string, required — Processor's main account identifier. * Adyen: Account code * Braintree: Merchant ID * Stripe: Account ID"
      - `processorStatus` 'PENDING' | 'FAILED' | 'AUTHORIZED' | 'SETTLING' | 'PARTIALLY_SETTLED' | 'SETTLED' | 'DECLINED' | 'CANCELLED', required — An enumeration.
      - `processorStatusReason` StatusReasonAPISchema
        - `type` 'APPLICATION_ERROR' | 'GATEWAY_REJECTED' | 'ISSUER_DECLINED' | 'GATEWAY_TIMEOUT', required — An enumeration.
        - `declineType` 'SOFT_DECLINE' | 'HARD_DECLINE' — An enumeration.
        - `code` 'ERROR' | 'INVALID_CARD_NUMBER' | 'EXPIRED_CARD' | 'LOST_OR_STOLEN_CARD' | 'SUSPECTED_FRAUD' | 'UNKNOWN' | 'DECLINED' | 'REFER_TO_CARD_ISSUER' | 'DO_NOT_HONOR' | 'INSUFFICIENT_FUNDS' | 'WITHDRAWAL_LIMIT_EXCEEDED' | 'ISSUER_TEMPORARILY_UNAVAILABLE' | 'AUTHENTICATION_REQUIRED' — An enumeration.
        - `message` string — In case of an error on the processor's part, we will return the message returned by the processor. This is usually a human readable error.
        - `paymentMethodResultCode` string — The result code returned by the payment method or card network. This code is unified across all supported processors. _e.g. Code `46` refers to the message "Closed account" for Visa across all supported processors._
        - `paymentMethodResultMessage` string — Human-readable version of the Payment Method Result Code. This message is unified across all supported processors. _e.g. Code `46` refers to the message "Closed account" for Visa across all supported processors._
        - `paymentMethodAdviceCode` string — The advice code returned by the payment method or card network. This code is unified across all supported processors. _For payments made with Mastercard, this represents the Merchant Advice Code (MAC)._ _e.g. Code `24` refers to the message "Retry after 1 hour" for Mastercard across all supported processors._
        - `paymentMethodAdviceMessage` string — Human-readable version of the Payment Method Advice Code. This message is unified across all supported processors. _For payments made with Mastercard, this represents the message of the Merchant Advice Code (MAC)._ _e.g. Code `24` refers to the message "Retry after 1 hour" for Mastercard across all supported processors._
        - `advisedAction` 'RETRY_LATER' | 'UPDATE_DATA' | 'DO_NOT_RETRY' | 'STOP_ALL_PAYMENTS' — The Primer-recommended action to take based on the underlying decline reason and advice code. This advised action is unified across all supported processors and payment methods. - `RETRY_LATER`: The payment was likely declined due to a temporary issue (e.g. Insufficient funds). The payment can be retried immediately or at a later date. - `UPDATE_DATA`: The payment was likely declined because critical data was missing or out-of-date. Please ensure you use the most up-to-date payment information and customer details before retrying the payment. - `DO_NOT_RETRY`: The payment was declined and should not be retried. You can still charge this payment method for future orders or installments. - `STOP_ALL_PAYMENTS`: The processor or payment method explicitly informs you to stop making any payment requests with this payment method. Please use another payment method to charge this customer. - `null`: Primer is unable to determine a recommended action.
      - `reason` string — The reason for a cancel or refund request on this transaction, if any.
    - `riskData` RiskDataAPISchema — Risk data associated with this payment.
      - `fraudChecks` FraudCheckAPISchema — Results of the pre-authorization and post-authorization fraud checks.
        - `source` string
        - `preAuthorizationResult` 'ACCEPT' | 'REFUSE' | 'FAILED' | 'THREE_DS' | 'THREE_DS_EXEMPTION' — Possible pre-authorization fraud check outcomes.
        - `preAuthorizationRecommendation` 'TRANSACTION_RISK_ANALYSIS' — Pre-authorization recommendation indicating the SCA exemption or risk assessment path taken. Only present when `preAuthorizationResult` is `THREE_DS_EXEMPTION`. Values: - `TRANSACTION_RISK_ANALYSIS`: Indicates that the fraud check deemed the transaction low risk and recommends applying a Transaction Risk Analysis (TRA) exemption to bypass Strong Customer Authentication (SCA) under PSD2, reducing friction for users.
        - `postAuthorizationResult` 'ACCEPT' | 'REFUSE' | 'FAILED' | 'THREE_DS' — Possible post-authorization fraud check outcomes.
      - `cvvCheck` CVVCheckAPISchema — Results of any external CVV check performed on this payment.
        - `source` string
        - `result` 'MATCHED' | 'NOT_MATCHED' | 'NOT_VERIFIED' | 'NOT_PROVIDED' | 'NOT_APPLICABLE' | 'SKIPPED' — Possible risk assessment values for CVV and AVS checks.
      - `avsCheck` AVSCheckAPISchema — Results of any external AVS check performed on this payment.
        - `source` string
        - `result` AVSRiskAssessmentValues
          - `streetAddress` 'MATCHED' | 'NOT_MATCHED' | 'NOT_VERIFIED' | 'NOT_PROVIDED' | 'NOT_APPLICABLE' | 'SKIPPED' — Possible risk assessment values for CVV and AVS checks.
          - `postalCode` 'MATCHED' | 'NOT_MATCHED' | 'NOT_VERIFIED' | 'NOT_PROVIDED' | 'NOT_APPLICABLE' | 'SKIPPED' — Possible risk assessment values for CVV and AVS checks.

## Response `200`

Return a 200 status to indicate that the data was received successfully

---

[API](https://skmtc.dev/primer/apis/primer-webhooks.md) · [All operations](https://skmtc.dev/primer/apis/primer-webhooks/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/primer/primer-webhooks/revisions/f4be9122322f/schema)
