Primer Payment Webhooks API

The Payment Webhooks API from Primer — 2 operation(s) for payment webhooks.

Operations 2

POST /payment-status Payment Status Update #
POST /payment-refund Payment Refund #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/primer-payment-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

primer-payment-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://apidocs.primer.io/docs/assets/images/primer-logo.svg
  title: Primer Client Session Payment Webhooks API
  version: '2.4'
  description: This API enforces a timeout of 90 seconds for all requests. A 504 response indicates a timeout occurred.
servers:
- url: https://api.sandbox.primer.io
- url: https://api.primer.io
security:
- ApiKeyAuth: []
tags:
- name: Payment Webhooks
paths:
  /payment-status:
    post:
      tags:
      - Payment Webhooks
      summary: Payment Status Update
      description: '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.

        '
      operationId: payment_status_webhook_event
      requestBody:
        content:
          application/json:
            schema:
              title: Request
              allOf:
              - $ref: '#/components/schemas/PaymentStatusWebhookPayload'
      parameters:
      - in: header
        name: X-Signature-Primary
        schema:
          type: string
        required: true
        description: An [HMAC signature](https://en.wikipedia.org/wiki/HMAC) generated using the webhook payload and a shared signing secret. This is then converted to a base64 encoded string.
      - in: header
        name: X-Signature-Secondary
        schema:
          type: string
        required: true
        description: A secondary signature that is added when you have rotated your secret within the past 24 hours.
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully
  /payment-refund:
    post:
      tags:
      - Payment Webhooks
      summary: Payment Refund
      description: 'Primer notifies you with a `PAYMENT.REFUND` Webhook when a refund request has been fully processed by a payment processor and the refund has reached a final state.


        Check the transaction with the most recent `transactionType: "REFUND"` in the `transactions` array:

        - if `processorStatus` is `SETTLED`, the refund was successful and the funds have been returned to the customer

        - if `processorStatus` is `FAILED`, the refund was unsuccessful


        Learn more about [how Primer handles webhooks](/docs/api-reference/get-started/configure-webhooks).

        '
      operationId: payment_refund_webhook_event
      requestBody:
        content:
          application/json:
            schema:
              title: Request
              allOf:
              - $ref: '#/components/schemas/PaymentRefundWebhookPayload'
      parameters:
      - in: header
        name: X-Signature-Primary
        schema:
          type: string
        required: true
        description: An [HMAC signature](https://en.wikipedia.org/wiki/HMAC) generated using the webhook payload and a shared signing secret. This is then converted to a base64 encoded string.
      - in: header
        name: X-Signature-Secondary
        schema:
          type: string
        required: true
        description: A secondary signature that is added when you have rotated your secret within the past 24 hours.
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully
components:
  schemas:
    KlarnaTokenDetails:
      title: KlarnaTokenDetails
      required:
      - type
      type: object
      properties:
        type:
          title: Type
          type: string
        brand:
          title: Brand
          type: string
        masked_number:
          title: Masked Number
          type: string
        expiry_date:
          title: Expiry Date
          type: string
    PaymentResponsePaymentMethodOptionsAPISchema:
      title: PaymentResponsePaymentMethodOptionsAPISchema
      type: object
      properties:
        descriptor:
          title: Payment descriptor
          type: string
          description: The description of the payment, as it would typically appear on a bank statement.
        paymentType:
          allOf:
          - $ref: '#/components/schemas/RecurringPaymentTypeSchema'
        paymentMethodToken:
          title: Payment Method Token
          type: string
          description: The payment method token used to authorize the transaction.
        isVaulted:
          title: Boolean flag indicating if a payment method token was vaulted
          type: boolean
          description: If the payment method token was vaulted, this is set to `true`. Use this token for recurring payments.
        analyticsId:
          title: Unique analytics ID
          type: string
          description: Unique analytics identifier corresponding to a payment method
        paymentMethodType:
          title: Payment method type
          allOf:
          - $ref: '#/components/schemas/PaymentMethodTypeEnum'
          description: Payment method type
        paymentMethodData:
          title: Payment method data
          anyOf:
          - $ref: '#/components/schemas/PaymentCardTokenAPISchema'
          - $ref: '#/components/schemas/PayPalOrderTokenAPISchema'
          - $ref: '#/components/schemas/PayPalBillingAgreementAPISchema'
          - $ref: '#/components/schemas/GoCardlessMandateAPISchema'
          - $ref: '#/components/schemas/KlarnaPaymentSessionAPISchema'
          - $ref: '#/components/schemas/KlarnaCustomerTokenAPISchema'
          - $ref: '#/components/schemas/IdealPayNLTokenAPISchema'
          - $ref: '#/components/schemas/ApayaCustomerTokenAPISchema'
          description: Payment method data
        threeDSecureAuthentication:
          title: Threedsecureauthentication
          allOf:
          - $ref: '#/components/schemas/ThreeDSecureAuthenticationAPISchema'
          default:
            response_code: NOT_PERFORMED
    ThreeDSecureAuthenticationAPISchema:
      title: ThreeDSecureAuthenticationAPISchema
      required:
      - responseCode
      type: object
      properties:
        responseCode:
          $ref: '#/components/schemas/ThreeDSecureAuthResponseCodeEnum'
        reasonCode:
          title: Reasoncode
          anyOf:
          - $ref: '#/components/schemas/ThreeDSecureSkippedReasonCodeEnum'
          - $ref: '#/components/schemas/ThreeDSecureFailedReasonCodeEnum'
        reasonText:
          title: Reasontext
          type: string
        protocolVersion:
          title: Protocolversion
          type: string
        challengeIssued:
          title: Challengeissued
          type: boolean
    CVVCheckAPISchema:
      title: CVVCheckAPISchema
      description: 'Results of any external CVV check performed on this payment.

        '
      type: object
      properties:
        source:
          type: string
          example: PROCESSOR
        result:
          $ref: '#/components/schemas/RiskAssessmentStatusEnum'
          example: MATCHED
    RecurringTransactionTypeEnum:
      title: RecurringTransactionTypeEnum
      enum:
      - FIRST_PAYMENT
      - ECOMMERCE
      - SUBSCRIPTION
      - UNSCHEDULED
      type: string
      description: An enumeration.
    AdvisedActionEnum:
      title: AdvisedActionEnum
      enum:
      - RETRY_LATER
      - UPDATE_DATA
      - DO_NOT_RETRY
      - STOP_ALL_PAYMENTS
      type: string
      description: "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.\n\n- `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. \n- `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.\n- `DO_NOT_RETRY`: The payment was declined and should not be retried. You can still charge this payment method for future orders or installments.\n- `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.\n- `null`: Primer is unable to determine a recommended action. \n"
    BinDataAPISchema:
      title: BinDataAPISchema
      required:
      - network
      - regionalRestriction
      - accountNumberType
      - accountFundingType
      - prepaidReloadableIndicator
      - productUsageType
      - productCode
      - productName
      type: object
      properties:
        network:
          $ref: '#/components/schemas/CardNetworkEnum'
        issuerCountryCode:
          $ref: '#/components/schemas/CountryCodeEnum'
        issuerName:
          title: Issuername
          type: string
        issuerCurrencyCode:
          $ref: '#/components/schemas/Currency'
        regionalRestriction:
          $ref: '#/components/schemas/CardRegionRestrictionEnum'
        accountNumberType:
          $ref: '#/components/schemas/CardAccountNumberTypeEnum'
        accountFundingType:
          $ref: '#/components/schemas/AccountFundingTypeEnum'
        prepaidReloadableIndicator:
          $ref: '#/components/schemas/PrepaidReloadableEnum'
        productUsageType:
          $ref: '#/components/schemas/CardProductTypeEnum'
        productCode:
          title: Productcode
          type: string
        productName:
          title: Productname
          type: string
    PaymentStatusWebhookPayload:
      title: PaymentStatusWebhookPayload
      type: object
      properties:
        eventType:
          title: Event Type
          type: string
          description: The type of the webhook raised. `PAYMENT.STATUS` in this case.
        date:
          title: Date
          type: string
          description: The date-time that the webhook was sent.
          format: date-time
        notificationConfig:
          title: Notification Config
          type: object
          description: The notification configuration details.
          properties:
            id:
              title: ID
              type: string
              description: The notification configuration ID.
              format: uuid
            description:
              title: Description
              type: string
              description: The notification configuration description.
        version:
          title: Version
          type: string
          description: The payload version
          example: '2.4'
        payment:
          title: Payment Details
          type: object
          properties:
            id:
              title: Payment identifier
              type: string
              description: 'The unique payment ID.


                You can use this ID to retrieve the payment details, or perform downstream operations.

                '
            date:
              title: Payment date
              type: string
              description: The date and time at which the payment was created in UTC format.
              format: date-time
            dateUpdated:
              title: Date Updated
              type: string
              description: The date-time that the update related to the webhook has happened.
              format: date-time
            status:
              title: Current status
              allOf:
              - $ref: '#/components/schemas/PaymentStatus'
              description: See the payment [status table](../docs#payment-status) for more information.
            orderId:
              title: Order ID
              type: string
              description: Your reference for the payment.
            currencyCode:
              title: Currency
              type: string
              description: '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:
              title: Payment amount
              minimum: 0.0
              type: integer
              format: int64
              description: The amount you charged the customer, in minor units.
            customerId:
              title: The ID of the customer using the checkout
              type: string
              description: The unique identifier for your customer.
            metadata:
              title: Payment Metadata
              type: object
              description: 'Additional data to be used throughout the payment lifecycle.

                '
            customer:
              title: customer
              type: object
              properties:
                emailAddress:
                  title: Email Address
                  type: string
                  description: 'Customer email address.

                    '
                  format: email
                mobileNumber:
                  title: Mobile Number
                  type: string
                  description: The customer's mobile number
                  minLength: 1
                  maxLength: 255
                firstName:
                  title: First Name
                  type: string
                  description: The customer's first name
                  minLength: 1
                  maxLength: 255
                lastName:
                  title: Last Name
                  type: string
                  description: The customer's last name
                  minLength: 1
                  maxLength: 255
                billingAddress:
                  $ref: '#/components/schemas/OptionalAddressAPISchema'
                  title: Billing Address
                  description: 'Customer billing address.

                    '
                shippingAddress:
                  $ref: '#/components/schemas/OptionalAddressAPISchema'
                  title: Shipping Address
                  description: Customer shipping address
                taxId:
                  title: Tax ID
                  type: string
                  description: The customer's tax id number for tax exemptions
                  maxLength: 255
                nationalDocumentId:
                  title: National Document ID
                  type: string
                  description: The customer's national identification number
                  maxLength: 255
            paymentMethod:
              title: Payment Method Options
              allOf:
              - $ref: '#/components/schemas/PaymentResponsePaymentMethodOptionsAPISchema'
              description: The payment method options provided in the request, as well as the token used to process the payment.
            processor:
              title: Processor Information
              allOf:
              - $ref: '#/components/schemas/PaymentResponseProcessorAPISchema'
              description: More information associated with the payment processor, including the processor name.
            statusReason:
              title: Status Reason
              allOf:
              - $ref: '#/components/schemas/StatusReasonAPISchema'
              description: 'Check this field for more information regarding the payment''s status. This is especially useful when the status is `DECLINED` or `FAILED`.

                '
            transactions:
              title: Transactions
              type: array
              items:
                $ref: '#/components/schemas/TransactionOverviewAPISchema'
              description: '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.'
            riskData:
              $ref: '#/components/schemas/RiskDataAPISchema'
              title: Risk Data
    PrepaidReloadableEnum:
      title: PrepaidReloadableEnum
      enum:
      - RELOADABLE
      - NON_RELOADABLE
      - NOT_APPLICABLE
      - UNKNOWN
      type: string
      description: An enumeration.
    ThreeDSecureSkippedReasonCodeEnum:
      title: ThreeDSecureSkippedReasonCodeEnum
      enum:
      - 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
      type: string
      description: An enumeration.
    PayPalBillingAgreementAPISchema:
      title: PayPalBillingAgreementAPISchema
      required:
      - paypalBillingAgreementId
      type: object
      properties:
        paypalBillingAgreementId:
          title: Paypalbillingagreementid
          type: string
        externalPayerInfo:
          title: Payer Info
          allOf:
          - $ref: '#/components/schemas/PayPalExternalPayerInfoAPISchema'
          description: Information about the PayPal customer
        shippingAddress:
          title: Shipping address
          allOf:
          - $ref: '#/components/schemas/AddressAPISchema'
          description: The PayPal customer's shipping address
        paypalStatus:
          title: PayPal order status
          type: string
    ApayaCustomerTokenAPISchema:
      title: ApayaCustomerTokenAPISchema
      required:
      - mx
      type: object
      properties:
        mx:
          title: Mx
          type: string
        mnc:
          title: Mnc
          type: integer
        mcc:
          title: Mcc
          type: integer
    KlarnaAddressAPISchema:
      title: KlarnaAddressAPISchema
      type: object
      properties:
        title:
          title: Title
          type: string
        firstName:
          title: Firstname
          type: string
        lastName:
          title: Lastname
          type: string
        email:
          title: Email
          type: string
        phoneNumber:
          title: Phonenumber
          type: string
        addressLine1:
          title: Addressline1
          type: string
        addressLine2:
          title: Addressline2
          type: string
        addressLine3:
          title: Addressline3
          type: string
        city:
          title: City
          type: string
        state:
          title: State
          type: string
        countryCode:
          $ref: '#/components/schemas/CountryCodeEnum'
        postalCode:
          title: Postalcode
          type: string
    RiskDataAPISchema:
      title: RiskDataAPISchema
      description: 'Risk data associated with this payment.

        '
      type: object
      properties:
        fraudChecks:
          title: Fraud Checks
          $ref: '#/components/schemas/FraudCheckAPISchema'
        cvvCheck:
          title: CVV Check
          $ref: '#/components/schemas/CVVCheckAPISchema'
        avsCheck:
          title: AVS Check
          $ref: '#/components/schemas/AVSCheckAPISchema'
    PreAuthorizationRecommendationEnum:
      title: PreAuthorizationRecommendationEnum
      enum:
      - TRANSACTION_RISK_ANALYSIS
      type: string
      description: '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.

        '
    TransactionTypeEnum:
      title: TransactionTypeEnum
      enum:
      - SALE
      - REFUND
      type: string
      description: An enumeration.
    FraudCheckAPISchema:
      title: FraudCheckAPISchema
      description: 'Results of the pre-authorization and post-authorization fraud checks.

        '
      type: object
      properties:
        source:
          type: string
          example: FRAUD_PROVIDER
        preAuthorizationResult:
          $ref: '#/components/schemas/PreAuthFraudDecisionTypeEnum'
          example: THREE_DS
        preAuthorizationRecommendation:
          $ref: '#/components/schemas/PreAuthorizationRecommendationEnum'
          example: TRANSACTION_RISK_ANALYSIS
        postAuthorizationResult:
          $ref: '#/components/schemas/PostAuthFraudDecisionTypeEnum'
          example: ACCEPT
    AVSRiskAssessmentValues:
      title: AVSRiskAssessmentValues
      type: object
      properties:
        streetAddress:
          $ref: '#/components/schemas/RiskAssessmentStatusEnum'
          example: NOT_MATCHED
        postalCode:
          $ref: '#/components/schemas/RiskAssessmentStatusEnum'
          example: NOT_VERIFIED
    ThreeDSecureFailedReasonCodeEnum:
      title: ThreeDSecureFailedReasonCodeEnum
      enum:
      - 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
      type: string
      description: '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                       |'
    CardAccountNumberTypeEnum:
      title: CardAccountNumberTypeEnum
      enum:
      - PRIMARY_ACCOUNT_NUMBER
      - NETWORK_TOKEN
      - UNKNOWN
      type: string
      description: An enumeration.
    PostAuthFraudDecisionTypeEnum:
      title: PostAuthFraudDecisionTypeEnum
      enum:
      - ACCEPT
      - REFUSE
      - FAILED
      - THREE_DS
      type: string
      description: Possible post-authorization fraud check outcomes.
    PaymentStatus:
      title: PaymentStatus
      enum:
      - PENDING
      - FAILED
      - AUTHORIZED
      - SETTLING
      - PARTIALLY_SETTLED
      - SETTLED
      - DECLINED
      - CANCELLED
      type: string
      description: An enumeration.
    PaymentRefundWebhookPayload:
      title: PaymentRefundWebhookPayload
      type: object
      properties:
        eventType:
          title: Event Type
          type: string
          description: The type of the webhook raised. `PAYMENT.REFUND` in this case.
        date:
          title: Date
          type: string
          description: The date-time that the webhook was sent.
          format: date-time
        notificationConfig:
          title: Notification Config
          type: object
          description: The notification configuration details.
          properties:
            id:
              title: ID
              type: string
              description: The notification configuration ID.
              format: uuid
            description:
              title: Description
              type: string
              description: The notification configuration description.
        version:
          title: Version
          type: string
          description: The payload version
          example: '2.4'
        payment:
          title: Payment Details
          type: object
          properties:
            id:
              title: Payment identifier
              type: string
              description: 'The unique payment ID.


                You can use this ID to retrieve the payment details, or perform downstream operations.

                '
            date:
              title: Payment date
              type: string
              description: The date and time at which the payment was created in UTC format.
              format: date-time
            status:
              title: Current status
              allOf:
              - $ref: '#/components/schemas/PaymentStatus'
              description: See the payment [status table](../docs#payment-status) for more information.
            orderId:
              title: Order ID
              type: string
              description: Your reference for the payment.
            currencyCode:
              title: Currency
              type: string
              description: '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:
              title: Payment amount
              minimum: 0.0
              type: integer
              format: int64
              description: The amount you charged the customer, in minor units.
            customerId:
              title: The ID of the customer using the checkout
              type: string
              description: The unique identifier for your customer.
            metadata:
              title: Payment Metadata
              type: object
              description: 'Additional data to be used throughout the payment lifecycle.

                '
            customer:
              title: customer
              type: object
              properties:
                emailAddress:
                  title: Email Address
                  type: string
                  description: 'Customer email address.

                    '
                  format: email
                mobileNumber:
                  title: Mobile Number
                  type: string
                  description: The customer's mobile number
                  minLength: 1
                  maxLength: 255
                firstName:
                  title: First Name
                  type: string
                  description: The customer's first name
                  minLength: 1
                  maxLength: 255
                lastName:
                  title: Last Name
                  type: string
                  description: The customer's last name
                  minLength: 1
                  maxLength: 255
                billingAddress:
                  $ref: '#/components/schemas/OptionalAddressAPISchema'
                  title: Billing Address
                  description: 'Customer billing address.

                    '
                shippingAddress:
                  $ref: '#/components/schemas/OptionalAddressAPISchema'
                  title: Shipping Address
                  description: Customer shipping address
                taxId:
                  title: Tax ID
                  type: string
                  description: The customer's tax id number for tax exemptions
                  maxLength: 255
                nationalDocumentId:
                  title: National Document ID
                  type: string
                  description: The customer's national identification number
                  maxLength: 255
            paymentMethod:
              title: Payment Method Options
              allOf:
              - $ref: '#/components/schemas/PaymentResponsePaymentMethodOptionsAPISchema'
              description: The payment method options provided in the request, as well as the token used to process the payment.
            processor:
              title: Processor Information
              allOf:
              - $ref: '#/components/schemas/PaymentResponseProcessorAPISchema'
              description: More information associated with the payment processor, including the processor name.
            statusReason:
              title: Status Reason
              allOf:
              - $ref: '#/components/schemas/StatusReasonAPISchema'
              description: 'Check this field for more information regarding the payment''s status. This is especially useful when the status is `DECLINED` or `FAILED`.

                '
            transactions:
              title: Transactions
              type: array
              items:
                $ref: '#/components/schemas/TransactionOverviewAPISchema'
              description: '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.'
            riskData:
              $ref: '#/components/schemas/RiskDataAPISchema'
              title: Risk Data
    CardProductTypeEnum:
      title: CardProductTypeEnum
      enum:
      - CONSUMER
      - BUSINESS
      - GOVERNMENT
      - UNKNOWN
      type: string
      description: An enumeration.
    PaymentStatusTypeEnum:
      title: PaymentStatusTypeEnum
      enum:
      - APPLICATION_ERROR
      - GATEWAY_REJECTED
      - ISSUER_DECLINED
      - GATEWAY_TIMEOUT
      type: string
      description: An enumeration.
    PaymentResponseProcessorAPISchema:
      title: PaymentResponseProcessorAPISchema
      type: object
      properties:
        name:
          title: Processor Name
          type: string
          description: The payment processor used for this payment.
        processorMerchantId:
          title: Processor Merchant ID
          type: string
          description: The merchant ID registered at the payment processor used for this payment.
        amountCaptured:
          title: Amount captured
          type: integer
          format: int64
          description: '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:
          title: Amount refunded
          type: integer
          format: int64
          description: '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.

            '
    AccountFundingTypeEnum:
      title: AccountFundingTypeEnum
      enum:
      - CREDIT
      - DEBIT
      - PREPAID
      - CHARGE
      - DEFERRED_DEBIT
      - UNKNOWN
      type: string
      description: An enumeration.
    ThreeDSecureAuthResponseCodeEnum:
      title: ThreeDSecureAuthResponseCodeEnum
      enum:
      - NOT_PERFORMED
      - SKIPPED
      - AUTH_SUCCESS
      - AUTH_FAILED
      - CHALLENGE
      - METHOD
      type: string
      description: An enumeration.
    PayPalOrderTokenAPISchema:
      title: PayPalOrderTokenAPISchema
      required:
      - paypalOrderId
      type: object
      properties:
        paypalOrderId:
          title: PayPal order identifier
          type: string
        externalP

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/primer/refs/heads/main/openapi/primer-payment-webhooks-api-openapi.yml