> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paypal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Capture authorized payment

> Captures an authorized payment, by ID.



## OpenAPI

````yaml /api-reference/payments_payment_v2.json post /v2/payments/authorizations/{authorization_id}/capture
openapi: 3.0.4
info:
  title: Payments
  description: >-
    Call the Payments API to authorize payments, capture authorized payments,
    refund payments that have already been captured, and show payment
    information. Use the Payments API in conjunction with the <a
    href="/docs/api/orders/v2/">Orders API</a>. For more information, see the <a
    href="/docs/checkout/">PayPal Checkout Overview</a>.
  version: '2.13'
servers:
  - url: https://api-m.paypal.com
    description: Server for https scheme.
security: []
tags:
  - name: assets
    description: Assets APIs for Checkout
  - name: authorizations
    description: >-
      Use the `/authorizations` resource to show details for, capture payment
      for, reauthorize, and void authorized payments.
  - name: cancel-payment
    description: >-
      Use the <code>/cancel-payment</code> resource to cancel an order capture
      or order authorization by <code>PayPal-Request-Id</code>. The merchant
      triggers the cancel action.
  - name: captures
    description: >-
      Use the `/captures` resource to show details for and refund a captured
      payment.
  - name: find-bin-details
    description: >-
      Use the `/find-bin-details` resource to determine PayPal supported
      networks and retrieve BIN details for given card and payee.
  - name: find-eligible-methods
    description: >-
      Use the `/find-eligible-methods` resource to show list of eligible payment
      methods for given customer/order context.
  - name: payment-resource-operations
    description: >-
      Use the `/payment-resource-operations` resource to show verifications
      details.
  - name: refunds
    description: Use the `/refunds` resource to show refund details.
externalDocs:
  url: /docs/checkout/
paths:
  /v2/payments/authorizations/{authorization_id}/capture:
    post:
      tags:
        - authorizations
      summary: Capture authorized payment
      description: Captures an authorized payment, by ID.
      operationId: authorizations.capture
      parameters:
        - name: authorization_id
          description: The PayPal-generated ID for the authorized payment to capture.
          in: path
          required: true
          schema:
            type: string
            minLength: 0
            maxLength: 2147483647
            pattern: ^[\S\s]*$
          examples:
            example:
              summary: Capture Authorized Payment
              description: The PayPal-generated ID for the authorized payment to capture.
              value: 0VF52814937998046
        - $ref: '#/components/parameters/paypal_request_id'
        - name: Prefer
          description: >-
            The preferred server response upon successful completion of the
            request. Value is:<ul><li><code>return=minimal</code>. The server
            returns a minimal response to optimize communication between the API
            caller and the server. A minimal response includes the
            <code>id</code>, <code>status</code> and HATEOAS
            links.</li><li><code>return=representation</code>. The server
            returns a complete resource representation, including the current
            state of the resource.</li></ul>
          in: header
          required: false
          schema:
            type: string
            minLength: 0
            maxLength: 2147483647
            pattern: ^[\S\s]*$
            default: return=minimal
          examples:
            authorizations_capture_200_idempotent_response:
              summary: Capture Authorized Payment - 200 idempotent response
              description: Captures an authorized payment, by ID.
              value: return=representation
            authorizations_capture_with_prefer_header:
              summary: Capture Authorized Payment with Prefer Request Header
              description: >-
                Captures an authorized payment, by ID. Includes the `Prefer`
                request header.
              value: return=representation
            authorizations_capture_empty_request:
              summary: Capture Authorized Payment with an empty request
              description: Captures an authorized payment, by ID.
              value: return=representation
        - $ref: '#/components/parameters/authorization'
        - $ref: '#/components/parameters/paypal_auth_assertion'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/capture_request'
            examples:
              authorizations_capture:
                summary: Capture Authorized Payment
                description: Captures an authorized payment, by ID.
                value:
                  amount:
                    value: '10.99'
                    currency_code: USD
                  invoice_id: INVOICE-123
                  final_capture: true
                  note_to_payer: >-
                    If the ordered color is not available, we will substitute
                    with a different color free of charge.
                  soft_descriptor: Bob's Custom Sweaters
              authorizations_capture_200_idempotent_response:
                summary: Capture Authorized Payment - 200 idempotent response
                description: Captures an authorized payment, by ID.
                value:
                  amount:
                    value: '1.00'
                    currency_code: USD
                  invoice_id: CaptureInvoice-10142024
                  final_capture: false
              authorizations_capture_empty_request:
                summary: Capture Authorized Payment with an empty request
                description: Captures an authorized payment, by ID.
                value: {}
              authorizations_capture_with_prefer_header:
                summary: Capture Authorized Payment with Prefer Request Header
                description: >-
                  Captures an authorized payment, by ID. Includes the `Prefer`
                  request header.
                value:
                  amount:
                    value: '10.99'
                    currency_code: USD
                  invoice_id: INVOICE-123
                  final_capture: true
      responses:
        '200':
          description: >-
            A successful request returns the HTTP <code>200 OK</code> status
            code and a JSON response body that shows captured payment details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/capture-2'
              examples:
                authorizations_capture_200_idempotent_response:
                  summary: Capture Authorized Payment - 200 idempotent response
                  description: Captures an authorized payment, by ID.
                  value:
                    id: 23T524207X938445J
                    amount:
                      currency_code: USD
                      value: '100.00'
                    final_capture: false
                    seller_protection:
                      status: ELIGIBLE
                      dispute_categories:
                        - ITEM_NOT_RECEIVED
                        - UNAUTHORIZED_TRANSACTION
                    seller_receivable_breakdown:
                      gross_amount:
                        currency_code: USD
                        value: '1.00'
                      paypal_fee:
                        currency_code: USD
                        value: '0.52'
                      net_amount:
                        currency_code: USD
                        value: '0.48'
                      exchange_rate: {}
                    invoice_id: OrderInvoice-10_10_2024_12_58_20_pm
                    status: COMPLETED
                    create_time: '2024-10-14T21:29:26Z'
                    update_time: '2024-10-14T21:29:26Z'
                    links:
                      - href: >-
                          https://api-m.paypal.com/v2/payments/captures/23T524207X938445J
                        rel: self
                        method: GET
                      - href: >-
                          https://api-m.paypal.com/v2/payments/captures/23T524207X938445J/refund
                        rel: refund
                        method: POST
                      - href: >-
                          https://api-m.paypal.com/v2/payments/authorizations/6DR965477U7140544
                        rel: up
                        method: GET
        '201':
          description: >-
            A successful request returns the HTTP <code>201 Created</code>
            status code and a JSON response body that shows captured payment
            details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/capture-2'
              examples:
                authorizations_capture:
                  summary: Capture Authorized Payment
                  description: Captures an authorized payment, by ID.
                  value:
                    id: 2GG279541U471931P
                    status: COMPLETED
                    links:
                      - rel: self
                        method: GET
                        href: >-
                          https://api-m.paypal.com/v2/payments/captures/2GG279541U471931P
                      - rel: refund
                        method: POST
                        href: >-
                          https://api-m.paypal.com/v2/payments/captures/2GG279541U471931P/refund
                      - rel: up
                        method: GET
                        href: >-
                          https://api-m.paypal.com/v2/payments/authorizations/0VF52814937998046
                authorizations_capture_empty_request:
                  summary: Capture Authorized Payment with an empty request
                  description: Captures an authorized payment, by ID.
                  value:
                    id: 7TK53561YB803214S
                    amount:
                      currency_code: USD
                      value: '100.00'
                    final_capture: true
                    seller_protection:
                      status: ELIGIBLE
                      dispute_categories:
                        - ITEM_NOT_RECEIVED
                        - UNAUTHORIZED_TRANSACTION
                    seller_receivable_breakdown:
                      gross_amount:
                        currency_code: USD
                        value: '100.00'
                      paypal_fee:
                        currency_code: USD
                        value: '3.98'
                      net_amount:
                        currency_code: USD
                        value: '96.02'
                      exchange_rate: {}
                    invoice_id: OrderInvoice-10_10_2024_12_58_20_pm
                    status: PENDING
                    status_details:
                      reason: OTHER
                    create_time: '2024-10-14T21:37:10Z'
                    update_time: '2024-10-14T21:37:10Z'
                    links:
                      - href: >-
                          https://api.msmaster.qa.paypal.com/v2/payments/captures/7TK53561YB803214S
                        rel: self
                        method: GET
                      - href: >-
                          https://api.msmaster.qa.paypal.com/v2/payments/captures/7TK53561YB803214S/refund
                        rel: refund
                        method: POST
                      - href: >-
                          https://api.msmaster.qa.paypal.com/v2/payments/authorizations/6DR965477U7140544
                        rel: up
                        method: GET
                authorizations_capture_with_prefer_header:
                  summary: Capture Authorized Payment with Prefer Request Header
                  description: >-
                    Captures an authorized payment, by ID. Includes the `Prefer`
                    request header.
                  value:
                    id: 2GG279541U471931P
                    status: COMPLETED
                    status_details: {}
                    amount:
                      value: '10.99'
                      currency_code: USD
                    final_capture: true
                    seller_protection:
                      status: ELIGIBLE
                      dispute_categories:
                        - ITEM_NOT_RECEIVED
                        - UNAUTHORIZED_TRANSACTION
                    seller_receivable_breakdown:
                      gross_amount:
                        value: '10.99'
                        currency_code: USD
                      paypal_fee:
                        value: '0.33'
                        currency_code: USD
                      net_amount:
                        value: '10.66'
                        currency_code: USD
                    invoice_id: INV-123
                    create_time: '2017-09-11T23:24:01Z'
                    update_time: '2017-09-11T23:24:01Z'
                    links:
                      - rel: self
                        method: GET
                        href: >-
                          https://api-m.paypal.com/v2/payments/captures/2GG279541U471931P
                      - rel: refund
                        method: POST
                        href: >-
                          https://api-m.paypal.com/v2/payments/captures/2GG279541U471931P/refund
                      - rel: up
                        method: GET
                        href: >-
                          https://api-m.paypal.com/v2/payments/authorizations/0VF52814937998046
        '400':
          description: >-
            The request failed because it is not well-formed or is syntactically
            incorrect or violates schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              examples:
                authorizations_capture_400_validation_error:
                  summary: >-
                    Capture Authorized Payment - 400 Bad Request - Validation
                    Error
                  description: >-
                    This code sample attempts to capture an authorized payment
                    but the request fails because a validation error occurred.
                  value:
                    name: INVALID_REQUEST
                    message: >-
                      Request is not well-formed, syntactically incorrect, or
                      violates schema.
                    debug_id: 90bff07028f7f
                    details:
                      - field: /invoice_id
                        value: >-
                          ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZ_this_invoice_is_too_long
                        issue: INVALID_STRING_MAX_LENGTH
                        description: The value of a field is too long.
        '401':
          $ref: '#/components/responses/401_error_response'
        '403':
          $ref: '#/components/responses/403_error_response'
        '404':
          $ref: '#/components/responses/404_error_response'
        '409':
          description: The server has detected a conflict while processing this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              examples:
                authorizations_capture_409_conflict:
                  summary: >-
                    Capture Authorized Payment - 409 Conflict - Operation in
                    Progress Error
                  description: >-
                    This code sample attempts to capture an authorized payment
                    but the request fails because a previous call for the given
                    resource is in progress.
                  value:
                    name: RESOURCE_CONFLICT
                    debug_id: b1d1f06c7246c
                    message: >-
                      The server has detected a conflict while processing this
                      request.
                    details:
                      - issue: PREVIOUS_REQUEST_IN_PROGRESS
                        description: >-
                          A previous request on this resource is currently in
                          progress. Please wait for some time and try again. It
                          is best to space out the initial and the subsequent
                          request(s) to avoid receiving this error.
        '422':
          description: >-
            The request failed because it is semantically incorrect or failed
            business validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              examples:
                authorizations_capture_422_amount_limit_exceeded:
                  summary: >-
                    Capture Authorized Payment - 422 Unprocessable Entity -
                    Requested Amount Exceeds Limit Error
                  description: >-
                    This code sample attempts to capture an authorized payment
                    but the request fails because the requested amount exceeds
                    the allowable limit.
                  value:
                    name: UNPROCCESSABLE_ENTITY
                    message: >-
                      The requested action could not be completed, is
                      semantically incorrect, or failed business validation.
                    debug_id: 90bff07028f7f
                    details:
                      - field: /amount/value
                        value: '10.99'
                        issue: MAX_CAPTURE_AMOUNT_EXCEEDED
                        description: >-
                          Capture amount specified exceeded allowable limit. You
                          can only capture up to the original authorization
                          amount.
                        location: body
                authorizations_capture_422_expired:
                  summary: >-
                    Capture Authorized Payment - 422 Unprocessable Entity -
                    Authorization Expired Error
                  description: >-
                    This code sample attempts to capture an authorized payment
                    but the request fails because the authorization expired.
                  value:
                    name: UNPROCCESSABLE_ENTITY
                    message: >-
                      The requested action could not be completed, is
                      semantically incorrect, or failed business validation.
                    debug_id: 90bff07028f7f
                    details:
                      - issue: AUTHORIZATION_EXPIRED
                        description: The authorization has expired.
        '500':
          $ref: '#/components/responses/500_error_response'
        default:
          $ref: '#/components/responses/default_response'
      callbacks:
        capture_completed:
          captures/{$request.path.capture_id}:
            post:
              summary: Capture completed notification
              description: Notification sent when the capture is completed.
              operationId: captures.completed.callback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      title: Capture Completed Event
                      description: Webhook event notification for capture completed.
                      properties:
                        id:
                          type: string
                          description: The ID of the webhook event notification.
                          minLength: 1
                          maxLength: 255
                          pattern: ^.*$
                        event_version:
                          type: string
                          description: The version of the event.
                          minLength: 1
                          maxLength: 50
                          pattern: ^.*$
                        create_time:
                          description: >-
                            The date and time when the webhook event
                            notification was created.
                          allOf:
                            - $ref: '#/components/schemas/date_time'
                        resource_type:
                          type: string
                          description: >-
                            The name of the resource related to the webhook
                            notification event.
                          minLength: 1
                          maxLength: 100
                          pattern: ^.*$
                        resource_version:
                          type: string
                          description: The version of the resource.
                          minLength: 1
                          maxLength: 50
                          pattern: ^.*$
                        event_type:
                          type: string
                          description: >-
                            The event that triggered the webhook event
                            notification.
                          enum:
                            - PAYMENT.CAPTURE.COMPLETED
                          x-enumDescriptions:
                            PAYMENT.CAPTURE.COMPLETED: A payment capture was completed.
                        summary:
                          type: string
                          description: A summary description for the event notification.
                          minLength: 1
                          maxLength: 500
                          pattern: ^.*$
                        resource:
                          allOf:
                            - $ref: '#/components/schemas/capture-2'
                        links:
                          type: array
                          description: An array of request-related HATEOAS links.
                          minItems: 1
                          maxItems: 10
                          items:
                            $ref: '#/components/schemas/link_description-2'
                    examples:
                      capture_completed:
                        summary: Capture completed event
                        description: Webhook notification when the capture is completed.
                        value:
                          id: WH-152442318H6474839-1HN0997948621344U
                          event_version: '1.0'
                          create_time: '2022-10-27T22:32:49.870Z'
                          resource_type: capture
                          resource_version: '2.0'
                          event_type: PAYMENT.CAPTURE.COMPLETED
                          summary: Payment completed for $ 10.0 USD
                          resource:
                            amount:
                              value: '10.00'
                              currency_code: USD
                            seller_protection:
                              dispute_categories:
                                - ITEM_NOT_RECEIVED
                                - UNAUTHORIZED_TRANSACTION
                              status: ELIGIBLE
                            supplementary_data:
                              related_ids:
                                order_id: 28U14622MW998902M
                            update_time: '2022-10-27T22:32:45Z'
                            create_time: '2022-10-27T22:32:45Z'
                            final_capture: true
                            seller_receivable_breakdown:
                              paypal_fee:
                                value: '0.84'
                                currency_code: USD
                              gross_amount:
                                value: '10.00'
                                currency_code: USD
                              net_amount:
                                value: '9.16'
                                currency_code: USD
                            links:
                              - method: GET
                                rel: self
                                href: >-
                                  https://api-m.paypal.com/v2/payments/captures/27C890397M291943E
                              - method: POST
                                rel: refund
                                href: >-
                                  https://api-m.paypal.com/v2/payments/captures/27C890397M291943E/refund
                              - method: GET
                                rel: up
                                href: >-
                                  https://api-m.paypal.com/v2/checkout/orders/28U14622MW998902M
                            id: 27C890397M291943E
                            status: COMPLETED
                          links:
                            - href: >-
                                https://api-m.paypal.com/v1/notifications/webhooks-events/WH-152442318H6474839-1HN0997948621344U
                              rel: self
                              method: GET
                            - href: >-
                                https://api-m.paypal.com/v1/notifications/webhooks-events/WH-152442318H6474839-1HN0997948621344U/resend
                              rel: resend
                              method: POST
              responses:
                '204':
                  description: >-
                    Your server implementation should return this HTTP status
                    code if the data was received successfully.
                '400':
                  description: >-
                    Your server should return this HTTP status code if the
                    request is malformed.
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/error'
                      examples:
                        invalid_request:
                          summary: Invalid webhook request.
                          description: Request with malformed data.
                          value:
                            name: INVALID_REQUEST
                            debug_id: b1d1f06c7246c
                            message: >-
                              Request is not well-formed, syntactically
                              incorrect, or violates schema.
                            details:
                              - field: /event_type
                                location: body
                                issue: INVALID_PARAMETER_SYNTAX
                                description: >-
                                  The value of a field does not conform to the
                                  expected format.
                '500':
                  $ref: '#/components/responses/500_error_response'
              method: post
              type: path
            path: captures/{$request.path.capture_id}
        capture_declined:
          captures/{$request.path.capture_id}/declined:
            post:
              summary: Capture declined notification
              description: Notification sent when capture for authorization is declined.
              operationId: captures.declined.callback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      title: Capture Declined Event
                      description: Webhook event notification for capture declined.
                      properties:
                        id:
                          type: string
                          description: The ID of the webhook event notification.
                          minLength: 1
                          maxLength: 255
                          pattern: ^.*$
                        event_version:
                          type: string
                          description: The version of the event.
                          minLength: 1
                          maxLength: 50
                          pattern: ^.*$
                        create_time:
                          description: >-
                            The date and time when the webhook event
                            notification was created.
                          allOf:
                            - $ref: '#/components/schemas/date_time'
                        resource_type:
                          type: string
                          description: >-
                            The name of the resource related to the webhook
                            notification event.
                          minLength: 1
                          maxLength: 100
                          pattern: ^.*$
                        resource_version:
                          type: string
                          description: The version of the resource.
                          minLength: 1
                          maxLength: 50
                          pattern: ^.*$
                        event_type:
                          type: string
                          description: >-
                            The event that triggered the webhook event
                            notification.
                          enum:
                            - PAYMENT.CAPTURE.DECLINED
                          x-enumDescriptions:
                            PAYMENT.CAPTURE.DECLINED: A payment capture was declined.
                        summary:
                          type: string
                          description: A summary description for the event notification.
                          minLength: 1
                          maxLength: 500
                          pattern: ^.*$
                        resource:
                          allOf:
                            - $ref: '#/components/schemas/capture-2'
                        links:
                          type: array
                          description: An array of request-related HATEOAS links.
                          minItems: 1
                          maxItems: 10
                          items:
                            $ref: '#/components/schemas/link_description-2'
                    examples:
                      capture_declined:
                        summary: Capture declined event
                        description: >-
                          Webhook notification when capture for authorization is
                          declined.
                        value:
                          id: WH-30Y09481LL7353048-6K675100AV972021E
                          create_time: '2022-09-21T18:41:07.071Z'
                          event_type: PAYMENT.CAPTURE.DECLINED
                          event_version: '1.0'
                          resource_type: capture
                          resource_version: '2.0'
                          summary: A payment capture for $ 50.0 USD was declined.
                          resource:
                            id: 40222075YX552741V
                            status: DECLINED
                            amount:
                              currency_code: USD
                              value: '50.00'
                            final_capture: false
                            seller_protection:
                              status: ELIGIBLE
                              dispute_categories:
                                - ITEM_NOT_RECEIVED
                                - UNAUTHORIZED_TRANSACTION
                            disbursement_mode: INSTANT
                            seller_receivable_breakdown:
                              gross_amount:
                                currency_code: USD
                                value: '50.00'
                              paypal_fee:
                                currency_code: USD
                                value: '2.24'
                              net_amount:
                                currency_code: USD
                                value: '47.76'
                            invoice_id: '1663785654'
                            supplementary_data:
                              related_ids:
                                order_id: 6AY135578D653613P
                                authorization_id: 3U5721406T774122W
                            create_time: '2022-09-21T18:40:22Z'
                            update_time: '2022-09-21T18:41:03Z'
                            links:
                              - href: >-
                                  https://api-m.paypal.com/v2/payments/captures/40222075YX552741V
                                rel: self
                                method: GET
                              - href: >-
                                  https://api-m.paypal.com/v2/payments/authorizations/3U5721406T774122W
                                rel: up
                                method: GET
                          links:
                            - href: >-
                                https://api-m.paypal.com/v1/notifications/webhooks-events/WH-30Y09481LL7353048-6K675100AV972021E
                              rel: self
                              method: GET
                            - href: >-
                                https://api-m.paypal.com/v1/notifications/webhooks-events/WH-30Y09481LL7353048-6K675100AV972021E/resend
                              rel: resend
                              method: POST
              responses:
                '204':
                  description: >-
                    Your server implementation should return this HTTP status
                    code if the data was received successfully.
                '400':
                  description: >-
                    Your server should return this HTTP status code if the
                    request is malformed.
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/error'
                      examples:
                        invalid_request:
                          summary: Invalid webhook request.
                          description: Request with malformed data.
                          value:
                            name: INVALID_REQUEST
                            debug_id: b1d1f06c7246c
                            message: >-
                              Request is not well-formed, syntactically
                              incorrect, or violates schema.
                            details:
                              - field: /event_type
                                location: body
                                issue: INVALID_PARAMETER_SYNTAX
                                description: >-
                                  The value of a field does not conform to the
                                  expected format.
                '500':
                  $ref: '#/components/responses/500_error_response'
              method: post
              type: path
            path: captures/{$request.path.capture_id}/declined
        capture_pending_kyc_incomplete:
          captures/{$request.path.capture_id}/pending:
            post:
              summary: Capture pending KYC incomplete notification
              description: >-
                Notification sent when capture a sale order for a merchant with
                incomplete KYC status, and the partner is enabled for
                Progressive Onboarding.
              operationId: captures.pending.kyc_incomplete.callback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      title: Capture Pending KYC Incomplete Event
                      description: >-
                        Webhook event notification for capture pending due to
                        incomplete KYC.
                      properties:
                        id:
                          type: string
                          description: The ID of the webhook event notification.
                          minLength: 1
                          maxLength: 255
                          pattern: ^.*$
                        event_version:
                          type: string
                          description: The version of the event.
                          minLength: 1
                          maxLength: 50
                          pattern: ^.*$
                        create_time:
                          description: >-
                            The date and time when the webhook event
                            notification was created.
                          allOf:
                            - $ref: '#/components/schemas/date_time'
                        resource_type:
                          type: string
                          description: >-
                            The name of the resource related to the webhook
                            notification event.
                          minLength: 1
                          maxLength: 100
                          pattern: ^.*$
                        resource_version:
                          type: string
                          description: The version of the resource.
                          minLength: 1
                          maxLength: 50
                          pattern: ^.*$
                        event_type:
                          type: string
                          description: >-
                            The event that triggered the webhook event
                            notification.
                          enum:
                            - PAYMENT.CAPTURE.PENDING
                          x-enumDescriptions:
                            PAYMENT.CAPTURE.PENDING: >-
                              A payment capture is pending due to incomplete
                              KYC.
                        summary:
                          type: string
                          description: A summary description for the event notification.
                          minLength: 1
                          maxLength: 500
                          pattern: ^.*$
                        resource:
                          allOf:
                            - $ref: '#/components/schemas/capture-2'
                        links:
                          type: array
                          description: An array of request-related HATEOAS links.
                          minItems: 1
                          maxItems: 10
                          items:
                            $ref: '#/components/schemas/link_description-2'
                    examples:
                      capture_pending_kyc_incomplete:
                        summary: Capture pending KYC incomplete event
                        description: >-
                          Webhook notification when capture a sale order for a
                          merchant with incomplete KYC status.
                        value:
                          id: WH-36845715LW9646800-7FJ097926K9003132
                          event_version: '1.0'
                          create_time: '2025-07-08T22:07:56.096Z'
                          resource_type: capture
                          resource_version: '2.0'
                          event_type: PAYMENT.CAPTURE.PENDING
                          summary: Payment pending for $ 80.0 USD
                          resource:
                            id: 30N459334R4656637
                            amount:
                              currency_code: USD
                              value: '80.00'
                            final_capture: true
                            seller_protection:
                              status: NOT_ELIGIBLE
                            disbursement_mode: INSTANT
                            status: PENDING
                            status_details:
                              reason: KYC_HOLD
                            processor_response:
                              avs_code: A
                              cvv_code: S
                              response_code: '0000'
                            supplementary_data:
                              related_ids:
                                order_id: 9XF68199B43440616
                            payee:
                              merchant_id: 972Y8QJUSCK3W
                            create_time: '2025-07-08T22:07:50Z'
                            update_time: '2025-07-08T22:07:50Z'
                            links:
                              - href: >-
                                  https://msmaster1intdev52.dev52.cbf.dev.paypalinc.com:25137/v2/payments/captures/30N459334R4656637
                                rel: self
                                method: GET
                              - href: >-
                                  https://msmaster1intdev52.dev52.cbf.dev.paypalinc.com:25137/v2/payments/captures/30N459334R4656637/refund
                                rel: refund
                                method: POST
                              - href: >-
                                  https://msmaster1intdev52.dev52.cbf.dev.paypalinc.com:25137/v2/checkout/orders/9XF68199B43440616
                                rel: up
                                method: GET
                            network_transaction_reference:
                              id: '752835256460198'
                              network: VISA
                          links:
                            - href: >-
                                https://msmaster1intdev52.dev52.cbf.dev.paypalinc.com:14084/v1/notifications/webhooks-events/WH-36845715LW9646800-7FJ097926K9003132
                              rel: self
                              method: GET
                            - href: >-
                                https://msmaster1intdev52.dev52.cbf.dev.paypalinc.com:14084/v1/notifications/webhooks-events/WH-36845715LW9646800-7FJ097926K9003132/resend
                              rel: resend
                              method: POST
              responses:
                '204':
                  description: >-
                    Your server implementation should return this HTTP status
                    code if the data was received successfully.
                '400':
                  description: >-
                    Your server should return this HTTP status code if the
                    request is malformed.
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/error'
                      examples:
                        invalid_request:
                          summary: Invalid webhook request.
                          description: Request with malformed data.
                          value:
                            name: INVALID_REQUEST
                            debug_id: b1d1f06c7246c
                            message: >-
                              Request is not well-formed, syntactically
                              incorrect, or violates schema.
                            details:
                              - field: /event_type
                                location: body
                                issue: INVALID_PARAMETER_SYNTAX
                                description: >-
                                  The value of a field does not conform to the
                                  expected format.
                '500':
                  $ref: '#/components/responses/500_error_response'
              method: post
              type: path
            path: captures/{$request.path.capture_id}/pending
      security:
        - Oauth2:
            - https://uri.paypal.com/services/payments/payment/authcapture
components:
  parameters:
    paypal_request_id:
      name: PayPal-Request-Id
      in: header
      description: A unique ID identifying the request header for idempotency purposes.
      required: false
      schema:
        description: A unique ID identifying the request header for idempotency purposes.
        type: string
        minLength: 1
        maxLength: 10000
        pattern: ^.*$
      examples:
        request_id:
          summary: A request id.
          description: A paypal-request-id header with a randomized value.
          value: 17e81d06-77ab-11e8-adc0-fa71639ebebc
    authorization:
      name: Authorization
      in: header
      description: Holds authorization information for external API calls.
      required: false
      schema:
        $ref: '#/components/schemas/standard_header_schema'
      examples:
        bearer:
          summary: Bearer authorization.
          description: >-
            An authorization header with information for the Bearer
            authorization scheme. The authorization parameter value is
            randomized for this example.
          value: >-
            Bearer
            A21AAGHr9qtiRRXH4oYcQokQgV99rGqEIfgrr8xHCclP0OzmD9KVgg5ppIIg1jzJgQkV4wd02svIvBJyg6cLFJjFow_SjBhxQ
    paypal_auth_assertion:
      name: PayPal-Auth-Assertion
      in: header
      description: >-
        Header for an API client-provided JWT assertion that identifies the
        merchant. Establishing the consent to act-on-behalf of a merchant is a
        prerequisite for using this header.
      required: false
      schema:
        description: >-
          Header for an API client-provided JWT assertion that identifies the
          merchant. Establishing the consent to act-on-behalf of a merchant is a
          prerequisite for using this header.
        type: string
        minLength: 1
        maxLength: 10000
        pattern: ^.*$
      examples:
        auth_assertion:
          summary: An auth assertion.
          description: A paypal-auth-assertion header with a randomized value.
          value: eyJhbGciOiJub25lIn0.eyJlbWFpbCI6Im15QGVtYWlsLmNvbSJ9
  schemas:
    capture_request:
      title: Capture Request
      description: >-
        Captures either a portion or the full authorized amount of an authorized
        payment.
      type: object
      allOf:
        - $ref: '#/components/schemas/supplementary_purchase_data'
        - type: object
          properties:
            amount:
              allOf:
                - $ref: '#/components/schemas/amount_with_breakdown'
                - description: >-
                    The amount to capture with an optional breakdown that
                    provides details, such as the total item amount, total tax
                    amount, shipping, handling, insurance, gratuity and
                    discounts, if any. To capture a portion of the full
                    authorized amount, specify an amount. If amount is not
                    specified, the full authorized amount is captured. The
                    amount must be a positive number and in the same currency as
                    the authorization against which the payment is being
                    captured.<br/>If you specify `amount.breakdown`, the amount
                    equals `item_total` plus `tax_total` plus `shipping` plus
                    `handling` plus `insurance` plus 'gratuity' minus
                    `shipping_discount` minus discount.<br/>The amount must be a
                    positive number. The `amount.value` field supports up to 15
                    digits preceding the decimal. For a list of supported
                    currencies, decimal precision, and maximum charge amount,
                    see the PayPal REST APIs <a
                    href=\"https://developer.paypal.com/api/rest/reference/currency-codes/\">Currency
                    Codes</a>.
            invoice_id:
              description: >-
                The API caller-provided external invoice number for this order.
                Appears in both the payer's transaction history and the emails
                that the payer receives.
              type: string
              minLength: 0
              maxLength: 127
              pattern: ^[\S\s]*$
            final_capture:
              description: >-
                Indicates whether you can make additional captures against the
                authorized payment. Set to `true` if you do not intend to
                capture additional payments against the authorization. Set to
                `false` if you intend to capture additional payments against the
                authorization.
              type: boolean
              default: false
            payment_instruction:
              allOf:
                - $ref: '#/components/schemas/payment_instruction'
                - not:
                    required:
                      - payee_pricing_tier_id
            note_to_payer:
              description: >-
                An informational note about this settlement. Appears in both the
                payer's transaction history and the emails that the payer
                receives.
              type: string
              minLength: 0
              maxLength: 255
              pattern: ^[\S\s]*$
            soft_descriptor:
              description: The payment descriptor on the payer's account statement.
              type: string
              minLength: 0
              maxLength: 22
              pattern: ^[\S\s]*$
    capture-2:
      title: Captured Payment
      description: A captured payment.
      type: object
      allOf:
        - $ref: '#/components/schemas/capture'
        - type: object
          properties:
            supplementary_data:
              allOf:
                - $ref: '#/components/schemas/supplementary_data'
                - description: >-
                    An object that provides supplementary/additional data
                    related to a payment transaction.
                  readOnly: true
            payee:
              allOf:
                - $ref: '#/components/schemas/payee_base'
                - readOnly: true
    error:
      title: Error
      description: The error details.
      type: object
      required:
        - debug_id
        - message
        - name
      properties:
        name:
          description: The human-readable, unique name of the error.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        message:
          description: The message that describes the error.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        debug_id:
          description: The PayPal internal ID. Used for correlation purposes.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        details:
          description: An array of additional details about the error.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            allOf:
              - $ref: '#/components/schemas/error_details'
              - title: error_details
        links:
          description: >-
            An array of request-related [HATEOAS
            links](/api/rest/responses/#hateoas-links).
          type: array
          minItems: 0
          maxItems: 32767
          readOnly: true
          items:
            allOf:
              - $ref: '#/components/schemas/link_description'
              - title: link_description
                readOnly: true
    date_time:
      description: >-
        The date and time, in [Internet date and time
        format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
        required while fractional seconds are
        optional.<blockquote><strong>Note:</strong> The regular expression
        provides guidance but does not reject all invalid dates.</blockquote>
      type: string
      minLength: 20
      maxLength: 64
      pattern: >-
        ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$
    link_description-2:
      title: Link Description
      description: >-
        The request-related [HATEOAS link](/api/rest/responses/#hateoas-links)
        information.
      type: object
      required:
        - href
        - rel
      properties:
        href:
          description: >-
            The complete target URL. To make the related call, combine the
            method with this [URI
            Template-formatted](https://tools.ietf.org/html/rfc6570) link. For
            pre-processing, include the `$`, `(`, and `)` characters. The `href`
            is the key HATEOAS component that links a completed call with a
            subsequent call.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        rel:
          description: >-
            The [link relation
            type](https://tools.ietf.org/html/rfc5988#section-4), which serves
            as an ID for a link that unambiguously describes the semantics of
            the link. See [Link
            Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        method:
          description: The HTTP method required to make the related call.
          type: string
          enum:
            - GET
            - POST
            - PUT
            - DELETE
            - HEAD
            - CONNECT
            - OPTIONS
            - PATCH
          x-enumDescriptions:
            GET: The HTTP GET method.
            POST: The HTTP POST method.
            PUT: The HTTP PUT method.
            DELETE: The HTTP DELETE method.
            HEAD: The HTTP HEAD method.
            CONNECT: The HTTP CONNECT method.
            OPTIONS: The HTTP OPTIONS method.
            PATCH: The HTTP PATCH method.
        title:
          description: The link title.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        mediaType:
          title: media_type
          description: >-
            The media type, as defined by [RFC
            2046](https://www.ietf.org/rfc/rfc2046.txt). Describes the link
            target.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        encType:
          title: enc_type
          description: The media type in which to submit the request data.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
          default: application/json
        schema:
          allOf:
            - $ref: '#/components/schemas/link_schema-2'
            - description: The schema that describes the request data.
        targetSchema:
          allOf:
            - $ref: '#/components/schemas/link_schema-2'
            - title: target_schema
              description: The schema that describes the link target.
    standard_header_schema:
      title: Schema Object for standard headers
      description: >-
        Standard headers are generally less restrictive in structure due to
        historical precedent across browsers, etc. This is a common schema for
        use in defining most standard headers.
      type: string
      minLength: 1
      maxLength: 16000
      pattern: ^.*$
    supplementary_purchase_data:
      title: Capture Identifier
      description: >-
        The capture identification-related fields. Includes the invoice ID,
        custom ID, note to payer, and soft descriptor.
      type: object
      properties:
        invoice_id:
          description: >-
            The API caller-provided external invoice number for this order.
            Appears in both the payer's transaction history and the emails that
            the payer receives.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^.{1,127}$
        note_to_payer:
          description: >-
            An informational note about this settlement. Appears in both the
            payer's transaction history and the emails that the payer receives.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^.{1,255}$
    amount_with_breakdown:
      title: amount_with_breakdown
      description: >-
        The total order amount with an optional breakdown that provides details,
        such as the total item amount, total tax amount, shipping, handling,
        insurance, and discounts, if any.<br/>If you specify `amount.breakdown`,
        the amount equals `item_total` plus `tax_total` plus `shipping` plus
        `handling` plus `insurance` minus `shipping_discount` minus
        discount.<br/>The amount must be a positive number. For listed of
        supported currencies and decimal precision, see the PayPal REST APIs <a
        href="/docs/integration/direct/rest/currency-codes/">Currency Codes</a>.
      type: object
      allOf:
        - $ref: '#/components/schemas/money'
        - type: object
          properties:
            breakdown:
              $ref: '#/components/schemas/amount_breakdown'
    payment_instruction:
      title: payment_instruction
      description: >-
        Any additional payment instructions to be consider during payment
        processing. This processing instruction is applicable for Capturing an
        order or Authorizing an Order.
      type: object
      properties:
        platform_fees:
          description: >-
            An array of various fees, commissions, tips, or donations. This
            field is only applicable to merchants that been enabled for PayPal
            Complete Payments Platform for Marketplaces and Platforms
            capability.
          type: array
          minItems: 0
          maxItems: 1
          items:
            allOf:
              - $ref: '#/components/schemas/platform_fee'
              - title: platform_fee
        disbursement_mode:
          allOf:
            - $ref: '#/components/schemas/disbursement_mode'
            - description: >-
                The funds that are held payee by the marketplace/platform. This
                field is only applicable to merchants that been enabled for
                PayPal Complete Payments Platform for Marketplaces and Platforms
                capability.
        payee_pricing_tier_id:
          description: >-
            This field is only enabled for selected merchants/partners to use
            and provides the ability to trigger a specific pricing rate/plan for
            a payment transaction. The list of eligible 'payee_pricing_tier_id'
            would be provided to you by your Account Manager. Specifying values
            other than the one provided to you by your account manager would
            result in an error.
          type: string
          minLength: 1
          maxLength: 20
          pattern: ^.*$
        payee_receivable_fx_rate_id:
          description: >-
            FX identifier generated returned by PayPal to be used for payment
            processing in order to honor FX rate (for eligible integrations) to
            be used when amount is settled/received into the payee account.
          type: string
          minLength: 1
          maxLength: 4000
          pattern: ^.*$
    capture:
      title: capture
      description: A captured payment.
      type: object
      allOf:
        - $ref: '#/components/schemas/capture_status'
        - type: object
          properties:
            id:
              description: The PayPal-generated ID for the captured payment.
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
              readOnly: true
            amount:
              allOf:
                - $ref: '#/components/schemas/amount_with_breakdown'
                - description: The amount for this captured payment.
                  readOnly: true
            invoice_id:
              description: >-
                The API caller-provided external invoice number for this order.
                Appears in both the payer's transaction history and the emails
                that the payer receives.
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
              readOnly: true
            custom_id:
              description: >-
                The API caller-provided external ID. Used to reconcile API
                caller-initiated transactions with PayPal transactions. Appears
                in transaction and settlement reports.
              type: string
              minLength: 0
              maxLength: 255
              pattern: ^[\S\s]*$
            network_transaction_reference:
              allOf:
                - $ref: '#/components/schemas/network_transaction'
            seller_protection:
              allOf:
                - $ref: '#/components/schemas/seller_protection'
                - readOnly: true
            final_capture:
              description: >-
                Indicates whether you can make additional captures against the
                authorized payment. Set to `true` if you do not intend to
                capture additional payments against the authorization. Set to
                `false` if you intend to capture additional payments against the
                authorization.
              type: boolean
              default: false
              readOnly: true
            seller_receivable_breakdown:
              allOf:
                - $ref: '#/components/schemas/seller_receivable_breakdown'
                - readOnly: true
            disbursement_mode:
              allOf:
                - $ref: '#/components/schemas/disbursement_mode'
            links:
              description: >-
                An array of related [HATEOAS
                links](/docs/api/reference/api-responses/#hateoas-links).
              type: array
              minItems: 0
              maxItems: 32767
              readOnly: true
              items:
                allOf:
                  - $ref: '#/components/schemas/link_description-2'
                  - title: link_description
            processor_response:
              allOf:
                - $ref: '#/components/schemas/processor_response'
                - description: >-
                    An object that provides additional processor information for
                    a direct credit card transaction.
        - allOf:
            - $ref: '#/components/schemas/activity_timestamps'
    supplementary_data:
      title: Payment Supplementary Data
      description: The supplementary data.
      type: object
      properties:
        related_ids:
          allOf:
            - $ref: '#/components/schemas/related_ids'
            - readOnly: true
    payee_base:
      title: payee_base
      description: >-
        The details for the merchant who receives the funds and fulfills the
        order. The merchant is also known as the payee.
      type: object
      properties:
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: The email address of merchant.
        merchant_id:
          allOf:
            - $ref: '#/components/schemas/account_id-2'
            - description: The encrypted PayPal account ID of the merchant.
    error_details:
      title: Error Details
      description: The error details. Required for client-side `4XX` errors.
      type: object
      required:
        - issue
      properties:
        field:
          description: >-
            The field that caused the error. If this field is in the body, set
            this value to the field's JSON pointer value. Required for
            client-side errors.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        value:
          description: The value of the field that caused the error.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        location:
          description: >-
            The location of the field that caused the error. Value is `body`,
            `path`, or `query`.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
          default: body
        issue:
          description: The unique, fine-grained application-level error code.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        links:
          description: >-
            An array of request-related [HATEOAS
            links](/api/rest/responses/#hateoas-links) that are either relevant
            to the issue by providing additional information or offering
            potential resolutions.
          type: array
          minItems: 1
          maxItems: 4
          readOnly: true
          items:
            allOf:
              - $ref: '#/components/schemas/link_description'
              - title: link_description
                readOnly: true
        description:
          description: >-
            The human-readable description for an issue. The description can
            change over the lifetime of an API, so clients must not depend on
            this value.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
    link_description:
      title: Link Description
      description: >-
        The request-related [HATEOAS link](/api/rest/responses/#hateoas-links)
        information.
      type: object
      required:
        - href
        - rel
      properties:
        href:
          description: >-
            The complete target URL. To make the related call, combine the
            method with this [URI
            Template-formatted](https://tools.ietf.org/html/rfc6570) link. For
            pre-processing, include the `$`, `(`, and `)` characters. The `href`
            is the key HATEOAS component that links a completed call with a
            subsequent call.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        rel:
          description: >-
            The [link relation
            type](https://tools.ietf.org/html/rfc5988#section-4), which serves
            as an ID for a link that unambiguously describes the semantics of
            the link. See [Link
            Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        method:
          description: The HTTP method required to make the related call.
          type: string
          enum:
            - GET
            - POST
            - PUT
            - DELETE
            - HEAD
            - CONNECT
            - OPTIONS
            - PATCH
          x-enumDescriptions:
            GET: The HTTP GET method.
            POST: The HTTP POST method.
            PUT: The HTTP PUT method.
            DELETE: The HTTP DELETE method.
            HEAD: The HTTP HEAD method.
            CONNECT: The HTTP CONNECT method.
            OPTIONS: The HTTP OPTIONS method.
            PATCH: The HTTP PATCH method.
        title:
          description: The link title.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        mediaType:
          title: media_type
          description: >-
            The media type, as defined by [RFC
            2046](https://www.ietf.org/rfc/rfc2046.txt). Describes the link
            target.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        encType:
          title: enc_type
          description: The media type in which to submit the request data.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
          default: application/json
        schema:
          allOf:
            - $ref: '#/components/schemas/link_schema'
            - description: The schema that describes the request data.
        targetSchema:
          allOf:
            - $ref: '#/components/schemas/link_schema'
            - title: target_schema
              description: The schema that describes the link target.
    link_schema-2:
      title: Link Schema
      description: The request data or link target.
      type: object
      properties:
        additionalItems:
          title: additional_items
          description: Any additional items.
          type: object
        dependencies:
          title: Dependencies
          description: Any Dependencies.
          type: object
        items:
          title: Items
          description: An item.
          type: object
        definitions:
          title: Definitions
          description: Definitions.
          type: object
        patternProperties:
          title: pattern_properties
          description: The pattern properties.
          type: object
        properties:
          title: Properties
          description: Properties.
          type: object
        allOf:
          title: all_of
          description: >-
            An array of sub-schemas. The data must validate against all
            sub-schemas.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            title: all_of_item
            description: A sub-schema against which the data must validate.
            type: object
        anyOf:
          title: any_of
          description: >-
            An array of sub-schemas. The data must validate against one or more
            sub-schemas.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            title: any_of_item
            description: A sub-schema against which the data must validate.
            type: object
        oneOf:
          title: one_of
          description: >-
            An array of sub-schemas. The data must validate against one
            sub-schema.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            title: one_of_item
            description: A sub-schema against which the data must validate.
            type: object
        not:
          title: Not
          description: Not.
          type: object
        links:
          description: An array of links.
          type: array
          minItems: 0
          maxItems: 32767
          readOnly: true
          items:
            title: link
            description: A link.
            type: object
            readOnly: true
        fragmentResolution:
          title: fragment_resolution
          description: The fragment resolution.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        media:
          title: Media
          description: The media type and context-encoding scheme.
          type: object
          properties:
            type:
              description: >-
                The media type. See [Multipurpose Internet Mail Extensions
                (MIME) Part Two: Media
                Types](https://tools.ietf.org/html/rfc2046).
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
            binaryEncoding:
              title: binary_encoding
              description: >-
                The content-encoding scheme. See [Multipurpose Internet Mail
                Extensions (MIME) Part One: Format of Internet Message
                Bodies](https://tools.ietf.org/html/rfc2045).
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
        pathStart:
          title: path_start
          description: >-
            To apply this schema to the instances' URIs, start the URIs with
            this value.
          type: string
          minLength: 0
          maxLength: 2147483647
          format: uri
    money:
      title: Money
      description: >-
        The currency and amount for a financial transaction, such as a balance
        or payment due.
      type: object
      required:
        - currency_code
        - value
      properties:
        currency_code:
          $ref: '#/components/schemas/currency_code'
        value:
          description: >-
            The value, which might be:<ul><li>An integer for currencies like
            `JPY` that are not typically fractional.</li><li>A decimal fraction
            for currencies like `TND` that are subdivided into
            thousandths.</li></ul>For the required number of decimal places for
            a currency code, see [Currency
            Codes](/api/rest/reference/currency-codes/).
          type: string
          minLength: 0
          maxLength: 32
          pattern: ^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$
    amount_breakdown:
      title: amount_breakdown
      description: >-
        The breakdown of the amount. Breakdown provides details such as total
        item amount, total tax amount, shipping, handling, insurance, and
        discounts, if any.
      type: object
      properties:
        item_total:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The subtotal for all items. Required if the request includes
                `purchase_units[].items[].unit_amount`. Must equal the sum of
                `(items[].unit_amount * items[].quantity)` for all items.
                <code>item_total.value</code> can not be a negative number.
        shipping:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The shipping fee for all items within a given `purchase_unit`.
                <code>shipping.value</code> can not be a negative number.
        handling:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The handling fee for all items within a given `purchase_unit`.
                <code>handling.value</code> can not be a negative number.
        tax_total:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The total tax for all items. Required if the request includes
                `purchase_units.items.tax`. Must equal the sum of `(items[].tax
                * items[].quantity)` for all items. <code>tax_total.value</code>
                can not be a negative number.
        insurance:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The insurance fee for all items within a given `purchase_unit`.
                <code>insurance.value</code> can not be a negative number.
        shipping_discount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The shipping discount for all items within a given
                `purchase_unit`. <code>shipping_discount.value</code> can not be
                a negative number.
        discount:
          allOf:
            - $ref: '#/components/schemas/discount_with_breakdown'
            - description: >-
                The discount for all items within a given `purchase_unit`.
                <code>discount.value</code> can not be a negative number.
    platform_fee:
      title: platform_fee
      description: >-
        The platform or partner fee, commission, or brokerage fee that is
        associated with the transaction. Not a separate or isolated transaction
        leg from the external perspective. The platform fee is limited in scope
        and is always associated with the original payment for the purchase
        unit.
      type: object
      required:
        - amount
      properties:
        amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - title: amount
              description: The fee for this transaction.
        payee:
          allOf:
            - $ref: '#/components/schemas/payee_base'
            - title: payee
              description: The recipient of the fee for this transaction.
    disbursement_mode:
      title: disbursement_mode
      description: The funds that are held on behalf of the merchant.
      type: string
      enum:
        - INSTANT
        - DELAYED
      x-enumDescriptions:
        INSTANT: The funds are released to the merchant immediately.
        DELAYED: >-
          The funds are held for a finite number of days. The actual duration
          depends on the region and type of integration. You can release the
          funds through a referenced payout. Otherwise, the funds disbursed
          automatically after the specified duration.
      default: INSTANT
    capture_status:
      title: capture_status
      description: The status and status details of a captured payment.
      type: object
      properties:
        status:
          title: Capture Status
          description: The status of the captured payment.
          type: string
          enum:
            - COMPLETED
            - DECLINED
            - PARTIALLY_REFUNDED
            - PENDING
            - REFUNDED
            - FAILED
          x-enumDescriptions:
            COMPLETED: >-
              The funds for this captured payment were credited to the payee's
              PayPal account.
            DECLINED: The funds could not be captured.
            PARTIALLY_REFUNDED: >-
              An amount less than this captured payment's amount was partially
              refunded to the payer.
            PENDING: >-
              The funds for this captured payment was not yet credited to the
              payee's PayPal account. For more information, see
              <code>status.details</code>.
            REFUNDED: >-
              An amount greater than or equal to this captured payment's amount
              was refunded to the payer.
            FAILED: There was an error while capturing payment.
          readOnly: true
        status_details:
          allOf:
            - $ref: '#/components/schemas/capture_status_details'
            - description: The details of the captured payment status.
              readOnly: true
    network_transaction:
      title: network_transaction
      description: Reference values used by the card network to identify a transaction.
      type: object
      properties:
        id:
          description: >-
            Transaction reference id returned by the scheme. For Visa and Amex,
            this is the "Tran id" field in response. For MasterCard, this is the
            "BankNet reference id" field in response. For Discover, this is the
            "NRID" field in response. The pattern we expect for this field from
            Visa/Amex/CB/Discover is numeric, Mastercard/BNPP is alphanumeric
            and Paysecure is alphanumeric with special character -.
          type: string
          minLength: 9
          maxLength: 36
          pattern: ^[a-zA-Z0-9-_@.:&+=*^'~#!$%()]+$
        date:
          description: >-
            The date that the transaction was authorized by the scheme. This
            field may not be returned for all networks. MasterCard refers to
            this field as "BankNet reference date". For some specific networks,
            such as MasterCard and Discover, this date field is mandatory when
            the `previous_network_transaction_reference_id` is passed.
          type: string
          minLength: 4
          maxLength: 4
          pattern: ^[0-9]+$
        network:
          allOf:
            - $ref: '#/components/schemas/card_brand'
            - description: >-
                Name of the card network through which the transaction was
                routed.
        acquirer_reference_number:
          description: >-
            Reference ID issued for the card transaction. This ID can be used to
            track the transaction across processors, card brands and issuing
            banks.
          type: string
          minLength: 1
          maxLength: 36
          pattern: ^[a-zA-Z0-9]+$
    seller_protection:
      title: seller_protection
      description: >-
        The level of protection offered as defined by [PayPal Seller Protection
        for
        Merchants](https://www.paypal.com/us/webapps/mpp/security/seller-protection).
      type: object
      properties:
        status:
          title: Seller Protection Status
          description: >-
            Indicates whether the transaction is eligible for seller protection.
            For information, see [PayPal Seller Protection for
            Merchants](https://www.paypal.com/us/webapps/mpp/security/seller-protection).
          type: string
          enum:
            - ELIGIBLE
            - PARTIALLY_ELIGIBLE
            - NOT_ELIGIBLE
          x-enumDescriptions:
            ELIGIBLE: >-
              Your PayPal balance remains intact if the customer claims that
              they did not receive an item or the account holder claims that
              they did not authorize the payment.
            PARTIALLY_ELIGIBLE: >-
              Your PayPal balance remains intact if the customer claims that
              they did not receive an item.
            NOT_ELIGIBLE: This transaction is not eligible for seller protection.
          readOnly: true
        dispute_categories:
          description: An array of conditions that are covered for the transaction.
          type: array
          minItems: 0
          maxItems: 32767
          readOnly: true
          items:
            title: dispute_category
            description: The condition that is covered for the transaction.
            type: string
            enum:
              - ITEM_NOT_RECEIVED
              - UNAUTHORIZED_TRANSACTION
            x-enumDescriptions:
              ITEM_NOT_RECEIVED: The payer paid for an item that they did not receive.
              UNAUTHORIZED_TRANSACTION: The payer did not authorize the payment.
    seller_receivable_breakdown:
      title: Seller Receivable Breakdown
      description: >-
        The detailed breakdown of the capture activity. This is not available
        for transactions that are in pending state.
      type: object
      required:
        - gross_amount
      properties:
        gross_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The amount for this captured payment in the currency of the
                transaction.
        paypal_fee:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The applicable fee for this captured payment in the currency of
                the transaction.
        paypal_fee_in_receivable_currency:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The applicable fee for this captured payment in the receivable
                currency. Returned only in cases the fee is charged in the
                receivable currency. Example 'CNY'.
        net_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The net amount that the payee receives for this captured payment
                in their PayPal account. The net amount is computed as
                <code>gross_amount</code> minus the <code>paypal_fee</code>
                minus the <code>platform_fees</code>.
        receivable_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The net amount that is credited to the payee's PayPal account.
                Returned only when the currency of the captured payment is
                different from the currency of the PayPal account where the
                payee wants to credit the funds. The amount is computed as
                <code>net_amount</code> times <code>exchange_rate</code>.
        exchange_rate:
          allOf:
            - $ref: '#/components/schemas/exchange_rate'
            - description: >-
                The exchange rate that determines the amount that is credited to
                the payee's PayPal account. Returned when the currency of the
                captured payment is different from the currency of the PayPal
                account where the payee wants to credit the funds.
        platform_fees:
          description: >-
            An array of platform or partner fees, commissions, or brokerage fees
            that associated with the captured payment.
          type: array
          minItems: 0
          maxItems: 1
          items:
            allOf:
              - $ref: '#/components/schemas/platform_fee'
              - title: platform_fee
    processor_response:
      title: processor_response
      description: >-
        The processor response information for payment requests, such as direct
        credit card transactions.
      type: object
      properties:
        avs_code:
          description: >-
            The address verification code for Visa, Discover, Mastercard, or
            American Express transactions.
          type: string
          enum:
            - A
            - B
            - C
            - D
            - E
            - F
            - G
            - I
            - M
            - 'N'
            - P
            - R
            - S
            - U
            - W
            - X
            - 'Y'
            - Z
            - 'Null'
            - '0'
            - '1'
            - '2'
            - '3'
            - '4'
          x-enumDescriptions:
            '0': For Maestro, all address information matches.
            '1': For Maestro, none of the address information matches.
            '2': For Maestro, part of the address information matches.
            '3': >-
              For Maestro, the merchant did not provide AVS information. It was
              not processed.
            '4': >-
              For Maestro, the address was not checked or the acquirer had no
              response. The service is not available.
            A: >-
              For Visa, Mastercard, or Discover transactions, the address
              matches but the zip code does not match. For American Express
              transactions, the card holder address is correct.
            B: >-
              For Visa, Mastercard, or Discover transactions, the address
              matches. International A.
            C: >-
              For Visa, Mastercard, or Discover transactions, no values match.
              International N.
            D: >-
              For Visa, Mastercard, or Discover transactions, the address and
              postal code match. International X.
            E: >-
              For Visa, Mastercard, or Discover transactions, not allowed for
              Internet or phone transactions. For American Express card holder,
              the name is incorrect but the address and postal code match.
            F: >-
              For Visa, Mastercard, or Discover transactions, the address and
              postal code match. UK-specific X. For American Express card
              holder, the name is incorrect but the address matches.
            G: >-
              For Visa, Mastercard, or Discover transactions, global is
              unavailable. Nothing matches.
            I: >-
              For Visa, Mastercard, or Discover transactions, international is
              unavailable. Not applicable.
            M: >-
              For Visa, Mastercard, or Discover transactions, the address and
              postal code match. For American Express card holder, the name,
              address, and postal code match.
            'N': >-
              For Visa, Mastercard, or Discover transactions, nothing matches.
              For American Express card holder, the address and postal code are
              both incorrect.
            P: >-
              For Visa, Mastercard, or Discover transactions, postal
              international Z. Postal code only.
            R: >-
              For Visa, Mastercard, or Discover transactions, re-try the
              request. For American Express, the system is unavailable.
            S: >-
              For Visa, Mastercard, Discover, or American Express, the service
              is not supported.
            U: >-
              For Visa, Mastercard, or Discover transactions, the service is
              unavailable. For American Express, information is not available.
              For Maestro, the address is not checked or the acquirer had no
              response. The service is not available.
            W: >-
              For Visa, Mastercard, or Discover transactions, whole ZIP code.
              For American Express, the card holder name, address, and postal
              code are all incorrect.
            X: >-
              For Visa, Mastercard, or Discover transactions, exact match of the
              address and the nine-digit ZIP code. For American Express, the
              card holder name, address, and postal code are all incorrect.
            'Y': >-
              For Visa, Mastercard, or Discover transactions, the address and
              five-digit ZIP code match. For American Express, the card holder
              address and postal code are both correct.
            Z: >-
              For Visa, Mastercard, or Discover transactions, the five-digit ZIP
              code matches but no address. For American Express, only the card
              holder postal code is correct.
            'Null': For Maestro, no AVS response was obtained.
          readOnly: true
        cvv_code:
          description: >-
            The card verification value code for for Visa, Discover, Mastercard,
            or American Express.
          type: string
          enum:
            - E
            - I
            - M
            - 'N'
            - P
            - S
            - U
            - X
            - All others
            - '0'
            - '1'
            - '2'
            - '3'
            - '4'
          x-enumDescriptions:
            '0': For Maestro, the CVV2 matched.
            '1': For Maestro, the CVV2 did not match.
            '2': For Maestro, the merchant has not implemented CVV2 code handling.
            '3': >-
              For Maestro, the merchant has indicated that CVV2 is not present
              on card.
            '4': For Maestro, the service is not available.
            E: >-
              For Visa, Mastercard, Discover, or American Express, error -
              unrecognized or unknown response.
            I: >-
              For Visa, Mastercard, Discover, or American Express, invalid or
              null.
            M: >-
              For Visa, Mastercard, Discover, or American Express, the CVV2/CSC
              matches.
            'N': >-
              For Visa, Mastercard, Discover, or American Express, the CVV2/CSC
              does not match.
            P: >-
              For Visa, Mastercard, Discover, or American Express, it was not
              processed.
            S: >-
              For Visa, Mastercard, Discover, or American Express, the service
              is not supported.
            U: >-
              For Visa, Mastercard, Discover, or American Express, unknown - the
              issuer is not certified.
            X: >-
              For Visa, Mastercard, Discover, or American Express, no response.
              For Maestro, the service is not available.
            All others: For Visa, Mastercard, Discover, or American Express, error.
          readOnly: true
        response_code:
          description: Processor response code for the non-PayPal payment processor errors.
          type: string
          enum:
            - '0000'
            - 00N7
            - '0100'
            - '0390'
            - '0500'
            - '0580'
            - '0800'
            - '0880'
            - '0890'
            - '0960'
            - 0R00
            - '1000'
            - 10BR
            - '1300'
            - '1310'
            - '1312'
            - '1317'
            - '1320'
            - '1330'
            - '1335'
            - '1340'
            - '1350'
            - '1352'
            - '1360'
            - '1370'
            - '1380'
            - '1382'
            - '1384'
            - '1390'
            - '1393'
            - '5100'
            - '5110'
            - '5120'
            - '5130'
            - '5135'
            - '5140'
            - '5150'
            - '5160'
            - '5170'
            - '5180'
            - '5190'
            - '5200'
            - '5210'
            - '5400'
            - '5500'
            - '5650'
            - '5700'
            - '5710'
            - '5800'
            - '5900'
            - '5910'
            - '5920'
            - '5930'
            - '5950'
            - '6300'
            - '7600'
            - '7700'
            - '7710'
            - '7800'
            - '7900'
            - '8000'
            - '8010'
            - '8020'
            - '8030'
            - '8100'
            - '8110'
            - '8220'
            - '9100'
            - '9500'
            - '9510'
            - '9520'
            - '9530'
            - '9540'
            - '9600'
            - PCNR
            - PCVV
            - PP06
            - PPRN
            - PPAD
            - PPAB
            - PPAE
            - PPAG
            - PPAI
            - PPAR
            - PPAU
            - PPAV
            - PPAX
            - PPBG
            - PPC2
            - PPCE
            - PPCO
            - PPCR
            - PPCT
            - PPCU
            - PPD3
            - PPDC
            - PPDI
            - PPDV
            - PPDT
            - PPEF
            - PPEL
            - PPER
            - PPEX
            - PPFE
            - PPFI
            - PPFR
            - PPFV
            - PPGR
            - PPH1
            - PPIF
            - PPII
            - PPIM
            - PPIT
            - PPLR
            - PPLS
            - PPMB
            - PPMC
            - PPMD
            - PPNC
            - PPNL
            - PPNM
            - PPNT
            - PPPH
            - PPPI
            - PPPM
            - PPQC
            - PPRE
            - PPRF
            - PPRR
            - PPS0
            - PPS1
            - PPS2
            - PPS3
            - PPS4
            - PPS5
            - PPS6
            - PPSC
            - PPSD
            - PPSE
            - PPTE
            - PPTF
            - PPTI
            - PPTR
            - PPTT
            - PPTV
            - PPUA
            - PPUC
            - PPUE
            - PPUI
            - PPUP
            - PPUR
            - PPVC
            - PPVE
            - PPVT
          x-enumDescriptions:
            '1000': PARTIAL_AUTHORIZATION.
            '1300': INVALID_DATA_FORMAT.
            '1310': INVALID_AMOUNT.
            '1312': INVALID_TRANSACTION_CARD_ISSUER_ACQUIRER.
            '1317': INVALID_CAPTURE_DATE.
            '1320': INVALID_CURRENCY_CODE.
            '1330': INVALID_ACCOUNT.
            '1335': INVALID_ACCOUNT_RECURRING.
            '1340': INVALID_TERMINAL.
            '1350': INVALID_MERCHANT.
            '1352': RESTRICTED_OR_INACTIVE_ACCOUNT.
            '1360': BAD_PROCESSING_CODE.
            '1370': INVALID_MCC.
            '1380': INVALID_EXPIRATION.
            '1382': INVALID_CARD_VERIFICATION_VALUE.
            '1384': INVALID_LIFE_CYCLE_OF_TRANSACTION.
            '1390': INVALID_ORDER.
            '1393': TRANSACTION_CANNOT_BE_COMPLETED.
            '5100': GENERIC_DECLINE.
            '5110': CVV2_FAILURE.
            '5120': INSUFFICIENT_FUNDS.
            '5130': INVALID_PIN.
            '5135': DECLINED_PIN_TRY_EXCEEDED.
            '5140': CARD_CLOSED.
            '5150': >-
              PICKUP_CARD_SPECIAL_CONDITIONS. Try using another card. Do not
              retry the same card.
            '5160': UNAUTHORIZED_USER.
            '5170': AVS_FAILURE.
            '5180': >-
              INVALID_OR_RESTRICTED_CARD. Try using another card. Do not retry
              the same card.
            '5190': SOFT_AVS.
            '5200': DUPLICATE_TRANSACTION.
            '5210': INVALID_TRANSACTION.
            '5400': EXPIRED_CARD.
            '5500': INCORRECT_PIN_REENTER.
            '5650': DECLINED_SCA_REQUIRED.
            '5700': TRANSACTION_NOT_PERMITTED. Outside of scope of accepted business.
            '5710': TX_ATTEMPTS_EXCEED_LIMIT.
            '5800': REVERSAL_REJECTED.
            '5900': INVALID_ISSUE.
            '5910': ISSUER_NOT_AVAILABLE_NOT_RETRIABLE.
            '5920': ISSUER_NOT_AVAILABLE_RETRIABLE.
            '5930': CARD_NOT_ACTIVATED.
            '5950': >-
              DECLINED_DUE_TO_UPDATED_ACCOUNT. External decline as an updated
              card has been issued.
            '6300': ACCOUNT_NOT_ON_FILE.
            '7600': APPROVED_NON_CAPTURE.
            '7700': ERROR_3DS.
            '7710': AUTHENTICATION_FAILED.
            '7800': BIN_ERROR.
            '7900': PIN_ERROR.
            '8000': PROCESSOR_SYSTEM_ERROR.
            '8010': HOST_KEY_ERROR.
            '8020': CONFIGURATION_ERROR.
            '8030': UNSUPPORTED_OPERATION.
            '8100': FATAL_COMMUNICATION_ERROR.
            '8110': RETRIABLE_COMMUNICATION_ERROR.
            '8220': SYSTEM_UNAVAILABLE.
            '9100': DECLINED_PLEASE_RETRY. Retry.
            '9500': >-
              SUSPECTED_FRAUD. Try using another card. Do not retry the same
              card.
            '9510': SECURITY_VIOLATION.
            '9520': >-
              LOST_OR_STOLEN. Try using another card. Do not retry the same
              card.
            '9530': >-
              HOLD_CALL_CENTER. The merchant must call the number on the back of
              the card. POS scenario.
            '9540': REFUSED_CARD.
            '9600': UNRECOGNIZED_RESPONSE_CODE.
            '0000': APPROVED.
            00N7: CVV2_FAILURE_POSSIBLE_RETRY_WITH_CVV.
            '0100': REFERRAL.
            '0390': ACCOUNT_NOT_FOUND.
            '0500': DO_NOT_HONOR.
            '0580': UNAUTHORIZED_TRANSACTION.
            '0800': BAD_RESPONSE_REVERSAL_REQUIRED.
            '0880': CRYPTOGRAPHIC_FAILURE.
            '0890': UNACCEPTABLE_PIN.
            '0960': SYSTEM_MALFUNCTION.
            0R00: CANCELLED_PAYMENT.
            10BR: ISSUER_REJECTED.
            PCNR: CONTINGENCIES_NOT_RESOLVED.
            PCVV: CVV_FAILURE.
            PP06: ACCOUNT_CLOSED. A previously open account is now closed
            PPRN: REATTEMPT_NOT_PERMITTED.
            PPAD: BILLING_ADDRESS.
            PPAB: ACCOUNT_BLOCKED_BY_ISSUER.
            PPAE: AMEX_DISABLED.
            PPAG: ADULT_GAMING_UNSUPPORTED.
            PPAI: AMOUNT_INCOMPATIBLE.
            PPAR: AUTH_RESULT.
            PPAU: MCC_CODE.
            PPAV: ARC_AVS.
            PPAX: AMOUNT_EXCEEDED.
            PPBG: BAD_GAMING.
            PPC2: ARC_CVV.
            PPCE: CE_REGISTRATION_INCOMPLETE.
            PPCO: COUNTRY.
            PPCR: CREDIT_ERROR.
            PPCT: CARD_TYPE_UNSUPPORTED.
            PPCU: CURRENCY_USED_INVALID.
            PPD3: SECURE_ERROR_3DS.
            PPDC: DCC_UNSUPPORTED.
            PPDI: DINERS_REJECT.
            PPDV: AUTH_MESSAGE.
            PPDT: DECLINE_THRESHOLD_BREACH.
            PPEF: EXPIRED_FUNDING_INSTRUMENT.
            PPEL: EXCEEDS_FREQUENCY_LIMIT.
            PPER: INTERNAL_SYSTEM_ERROR.
            PPEX: EXPIRY_DATE.
            PPFE: FUNDING_SOURCE_ALREADY_EXISTS.
            PPFI: INVALID_FUNDING_INSTRUMENT.
            PPFR: RESTRICTED_FUNDING_INSTRUMENT.
            PPFV: FIELD_VALIDATION_FAILED.
            PPGR: GAMING_REFUND_ERROR.
            PPH1: H1_ERROR.
            PPIF: IDEMPOTENCY_FAILURE.
            PPII: INVALID_INPUT_FAILURE.
            PPIM: ID_MISMATCH.
            PPIT: INVALID_TRACE_ID.
            PPLR: LATE_REVERSAL.
            PPLS: LARGE_STATUS_CODE.
            PPMB: MISSING_BUSINESS_RULE_OR_DATA.
            PPMC: BLOCKED_Mastercard.
            PPMD: DEPRECATED The PPMD value has been deprecated.
            PPNC: NOT_SUPPORTED_NRC.
            PPNL: EXCEEDS_NETWORK_FREQUENCY_LIMIT.
            PPNM: NO_MID_FOUND.
            PPNT: NETWORK_ERROR.
            PPPH: NO_PHONE_FOR_DCC_TRANSACTION.
            PPPI: INVALID_PRODUCT.
            PPPM: INVALID_PAYMENT_METHOD.
            PPQC: QUASI_CASH_UNSUPPORTED.
            PPRE: UNSUPPORT_REFUND_ON_PENDING_BC.
            PPRF: INVALID_PARENT_TRANSACTION_STATUS.
            PPRR: MERCHANT_NOT_REGISTERED.
            PPS0: BANKAUTH_ROW_MISMATCH.
            PPS1: BANKAUTH_ROW_SETTLED.
            PPS2: BANKAUTH_ROW_VOIDED.
            PPS3: BANKAUTH_EXPIRED.
            PPS4: CURRENCY_MISMATCH.
            PPS5: CREDITCARD_MISMATCH.
            PPS6: AMOUNT_MISMATCH.
            PPSC: ARC_SCORE.
            PPSD: STATUS_DESCRIPTION.
            PPSE: AMEX_DENIED.
            PPTE: VERIFICATION_TOKEN_EXPIRED.
            PPTF: INVALID_TRACE_REFERENCE.
            PPTI: INVALID_TRANSACTION_ID.
            PPTR: VERIFICATION_TOKEN_REVOKED.
            PPTT: TRANSACTION_TYPE_UNSUPPORTED.
            PPTV: INVALID_VERIFICATION_TOKEN.
            PPUA: USER_NOT_AUTHORIZED.
            PPUC: CURRENCY_CODE_UNSUPPORTED.
            PPUE: UNSUPPORT_ENTITY.
            PPUI: UNSUPPORT_INSTALLMENT.
            PPUP: UNSUPPORT_POS_FLAG.
            PPUR: UNSUPPORTED_REVERSAL.
            PPVC: VALIDATE_CURRENCY.
            PPVE: VALIDATION_ERROR.
            PPVT: VIRTUAL_TERMINAL_UNSUPPORTED.
          readOnly: true
        payment_advice_code:
          description: >-
            The declined payment transactions might have payment advice codes.
            The card networks, like Visa and Mastercard, return payment advice
            codes.
          type: string
          enum:
            - '01'
            - '02'
            - '03'
            - '04'
            - '21'
            - '22'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '40'
            - '43'
          x-enumDescriptions:
            '21': >-
              For Mastercard, the card holder has been unsuccessful at canceling
              recurring payment through merchant. Stop recurring payment
              requests. For Visa, all recurring payments were canceled for the
              card number requested. Stop recurring payment requests.
            '22': For Mastercard, merchant does not qualify for product code.
            '24': For Mastercard, retry after 1 hour.
            '25': For Mastercard, retry after 24 hours.
            '26': For Mastercard, retry after 2 days.
            '27': For Mastercard, retry after 4 days.
            '28': For Mastercard, retry after 6 days.
            '29': For Mastercard, retry after 8 days.
            '30': For Mastercard, retry after 10 days .
            '40': For Mastercard, consumer non-reloadable prepaid card.
            '43': For Mastercard, consumer multi-use virtual card number.
            '01': >-
              For Mastercard, expired card account upgrade or portfolio sale
              conversion. Obtain new account information before next billing
              cycle.
            '02': >-
              For Mastercard, over credit limit or insufficient funds. Retry the
              transaction 72 hours later. For Visa, the card holder wants to
              stop only one specific payment in the recurring payment
              relationship. The merchant must NOT resubmit the same transaction.
              The merchant can continue the billing process in the subsequent
              billing period.
            '03': >-
              For Mastercard, account closed as fraudulent. Obtain another type
              of payment from customer due to account being closed or fraud.
              Possible reason: Account closed as fraudulent. For Visa, the card
              holder wants to stop all recurring payment transactions for a
              specific merchant. Stop recurring payment requests.
            '04': >-
              For Mastercard, token requirements not fulfilled for this token
              type.
          readOnly: true
    activity_timestamps:
      title: activity_timestamps
      description: >-
        The date and time stamps that are common to authorized payment, captured
        payment, and refund transactions.
      type: object
      properties:
        create_time:
          allOf:
            - $ref: '#/components/schemas/date_time'
            - description: >-
                The date and time when the transaction occurred, in [Internet
                date and time
                format](https://tools.ietf.org/html/rfc3339#section-5.6).
              readOnly: true
        update_time:
          allOf:
            - $ref: '#/components/schemas/date_time'
            - description: >-
                The date and time when the transaction was last updated, in
                [Internet date and time
                format](https://tools.ietf.org/html/rfc3339#section-5.6).
              readOnly: true
    related_ids:
      title: Related Identifiers
      description: Identifiers related to a specific resource.
      type: object
      properties:
        order_id:
          description: Order ID related to the resource.
          type: string
          minLength: 1
          maxLength: 20
          pattern: ^[A-Z0-9]+$
        authorization_id:
          description: Authorization ID related to the resource.
          type: string
          minLength: 1
          maxLength: 20
          pattern: ^[A-Z0-9]+$
        capture_id:
          description: Capture ID related to the resource.
          type: string
          minLength: 1
          maxLength: 20
          pattern: ^[A-Z0-9]+$
    email:
      title: email
      description: >-
        The internationalized email address.<blockquote><strong>Note:</strong>
        Up to 64 characters are allowed before and 255 characters are allowed
        after the <code>@</code> sign. However, the generally accepted maximum
        length for an email address is 254 characters. The pattern verifies that
        an unquoted <code>@</code> sign exists.</blockquote>
      type: string
      minLength: 3
      maxLength: 254
      pattern: >-
        ^.*(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]).*$
    account_id-2:
      title: PayPal Account Identifier
      description: The account identifier for a PayPal account.
      type: string
      minLength: 13
      maxLength: 13
      pattern: ^[2-9A-HJ-NP-Z]{13}$
    link_schema:
      title: Link Schema
      description: The request data or link target.
      type: object
      properties:
        additionalItems:
          title: additional_items
          description: Any additional items.
          type: object
        dependencies:
          title: Dependencies
          description: The dependencies.
          type: object
        items:
          title: Items
          description: An item.
          type: object
        definitions:
          title: Definitions
          description: Definitions.
          type: object
        patternProperties:
          title: pattern_properties
          description: The pattern properties.
          type: object
        properties:
          title: Properties
          description: The properties.
          type: object
        allOf:
          title: all_of
          description: >-
            An array of sub-schemas. The data must validate against all
            sub-schemas.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            title: all_of_item
            description: A sub-schema against which the data must validate.
            type: object
        anyOf:
          title: any_of
          description: >-
            An array of sub-schemas. The data must validate against one or more
            sub-schemas.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            title: any_of_item
            description: A sub-schema against which the data must validate.
            type: object
        oneOf:
          title: one_of
          description: >-
            An array of sub-schemas. The data must validate against one
            sub-schema.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            title: one_of_item
            description: A sub-schema against which the data must validate.
            type: object
        not:
          title: Not
          description: Not.
          type: object
        links:
          description: An array of links.
          type: array
          minItems: 0
          maxItems: 32767
          readOnly: true
          items:
            title: link
            description: A link.
            type: object
            readOnly: true
        fragmentResolution:
          title: fragment_resolution
          description: The fragment resolution.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
        media:
          title: Media
          description: The media type and context-encoding scheme.
          type: object
          properties:
            type:
              description: >-
                The media type. See [Multipurpose Internet Mail Extensions
                (MIME) Part Two: Media
                Types](https://tools.ietf.org/html/rfc2046).
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
            binaryEncoding:
              title: binary_encoding
              description: >-
                The content-encoding scheme. See [Multipurpose Internet Mail
                Extensions (MIME) Part One: Format of Internet Message
                Bodies](https://tools.ietf.org/html/rfc2045).
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
        pathStart:
          title: path_start
          description: >-
            To apply this schema to the instances' URIs, start the URIs with
            this value.
          type: string
          minLength: 0
          maxLength: 2147483647
          format: uri
    currency_code:
      description: >-
        The [three-character ISO-4217 currency
        code](/api/rest/reference/currency-codes/) that identifies the currency.
      type: string
      minLength: 3
      maxLength: 3
      pattern: ^[\S\s]*$
    discount_with_breakdown:
      title: discount_with_breakdown
      description: >-
        The discount amount and currency code. For list of supported currencies
        and decimal precision, see the PayPal REST APIs <a
        href="/docs/integration/direct/rest/currency-codes/">Currency Codes</a>.
      type: object
      allOf:
        - $ref: '#/components/schemas/money'
        - type: object
    capture_status_details:
      title: capture_status_details
      description: The details of the captured payment status.
      type: object
      properties:
        reason:
          title: Capture Incomplete Reason
          description: The reason why the captured payment status is `PENDING` or `DENIED`.
          type: string
          enum:
            - BUYER_COMPLAINT
            - CHARGEBACK
            - ECHECK
            - INTERNATIONAL_WITHDRAWAL
            - OTHER
            - PENDING_REVIEW
            - RECEIVING_PREFERENCE_MANDATES_MANUAL_ACTION
            - REFUNDED
            - TRANSACTION_APPROVED_AWAITING_FUNDING
            - UNILATERAL
            - VERIFICATION_REQUIRED
            - DECLINED_BY_RISK_FRAUD_FILTERS
          x-enumDescriptions:
            BUYER_COMPLAINT: >-
              The payer initiated a dispute for this captured payment with
              PayPal.
            CHARGEBACK: >-
              The captured funds were reversed in response to the payer
              disputing this captured payment with the issuer of the financial
              instrument used to pay for this captured payment.
            ECHECK: The payer paid by an eCheck that has not yet cleared.
            INTERNATIONAL_WITHDRAWAL: >-
              Visit your online account. In your **Account Overview**, accept
              and deny this payment.
            OTHER: >-
              No additional specific reason can be provided. For more
              information about this captured payment, visit your account online
              or contact PayPal.
            PENDING_REVIEW: The captured payment is pending manual review.
            RECEIVING_PREFERENCE_MANDATES_MANUAL_ACTION: >-
              The payee has not yet set up appropriate receiving preferences for
              their account. For more information about how to accept or deny
              this payment, visit your account online. This reason is typically
              offered in scenarios such as when the currency of the captured
              payment is different from the primary holding currency of the
              payee.
            REFUNDED: The captured funds were refunded.
            TRANSACTION_APPROVED_AWAITING_FUNDING: >-
              The payer must send the funds for this captured payment. This code
              generally appears for manual EFTs.
            UNILATERAL: The payee does not have a PayPal account.
            VERIFICATION_REQUIRED: The payee's PayPal account is not verified.
            DECLINED_BY_RISK_FRAUD_FILTERS: Risk Filter set by the payee failed for the transaction.
    card_brand:
      title: card_brand
      description: >-
        The card network or brand. Applies to credit, debit, gift, and payment
        cards.
      type: string
      enum:
        - VISA
        - MASTERCARD
        - DISCOVER
        - AMEX
        - SOLO
        - JCB
        - STAR
        - DELTA
        - SWITCH
        - MAESTRO
        - CB_NATIONALE
        - CONFIGOGA
        - CONFIDIS
        - ELECTRON
        - CETELEM
        - CHINA_UNION_PAY
        - DINERS
        - ELO
        - HIPER
        - HIPERCARD
        - RUPAY
        - GE
        - SYNCHRONY
        - EFTPOS
        - CARTE_BANCAIRE
        - STAR_ACCESS
        - PULSE
        - NYCE
        - ACCEL
        - UNKNOWN
      x-enumDescriptions:
        VISA: Visa card.
        MASTERCARD: Mastercard card.
        DISCOVER: Discover card.
        AMEX: American Express card.
        SOLO: Solo debit card.
        JCB: Japan Credit Bureau card.
        STAR: Military Star card.
        DELTA: Delta Airlines card.
        SWITCH: Switch credit card.
        MAESTRO: Maestro credit card.
        CB_NATIONALE: Carte Bancaire (CB) credit card.
        CONFIGOGA: Configoga credit card.
        CONFIDIS: Confidis credit card.
        ELECTRON: Visa Electron credit card.
        CETELEM: Cetelem credit card.
        CHINA_UNION_PAY: China union pay credit card.
        DINERS: >-
          The Diners Club International banking and payment services capability
          network owned by Discover Financial Services (DFS), one of the most
          recognized brands in US financial services.
        ELO: The Brazilian Elo card payment network.
        HIPER: The Hiper - Ingenico ePayment network.
        HIPERCARD: >-
          The Brazilian Hipercard payment network that's widely accepted in the
          retail market.
        RUPAY: The RuPay payment network.
        GE: The GE Credit Union 3Point card payment network.
        SYNCHRONY: The Synchrony Financial (SYF) payment network.
        EFTPOS: >-
          The Electronic Fund Transfer At Point of Sale(EFTPOS) Debit card
          payment network.
        CARTE_BANCAIRE: The Carte Bancaire payment network.
        STAR_ACCESS: The Star Access payment network.
        PULSE: The Pulse payment network.
        NYCE: The NYCE payment network.
        ACCEL: The Accel payment network.
        UNKNOWN: UNKNOWN payment network.
    exchange_rate:
      title: exchange_rate
      description: >-
        The exchange rate that determines the amount to convert from one
        currency to another currency.
      type: object
      readOnly: true
      properties:
        source_currency:
          allOf:
            - $ref: '#/components/schemas/currency_code'
            - description: The source currency from which to convert an amount.
        target_currency:
          allOf:
            - $ref: '#/components/schemas/currency_code'
            - description: The target currency to which to convert an amount.
        value:
          description: >-
            The target currency amount. Equivalent to one unit of the source
            currency. Formatted as integer or decimal value with one to 15
            digits to the right of the decimal point.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^[\S\s]*$
  responses:
    401_error_response:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            generic:
              summary: Generic 'Unauthorized' error.
              description: Example response for unauthorized request.
              value:
                name: AUTHENTICATION_FAILURE
                debug_id: b1d1f06c7246c
                message: >-
                  Authentication failed due to missing Authorization header, or
                  invalid authentication credentials.
    403_error_response:
      description: Forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            generic:
              summary: Generic 'Forbidden' error.
              description: Example response for a forbidden request.
              value:
                name: NOT_AUTHORIZED
                debug_id: b1d1f06c7246c
                message: Authorization failed due to insufficient permissions.
    404_error_response:
      description: Not Found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            generic:
              summary: Generic 'Not Found' error.
              description: >-
                Example response for a request to a resource that does not
                exist.
              value:
                name: RESOURCE_NOT_FOUND
                debug_id: b1d1f06c7246c
                message: The specified resource does not exist.
    500_error_response:
      description: Internal Server Error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            generic:
              summary: Generic internal server error.
              description: >-
                Example response for a request that fails for reasons internal
                to the server.
              value:
                name: INTERNAL_SERVER_ERROR
                debug_id: b1d1f06c7246c
                message: An internal server error has occurred.
    default_response:
      description: Default response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            generic:
              summary: Default response.
              description: >-
                Example catch all response, should not be encountered in
                practice.
              value:
                name: INTERNAL_SERVER_ERROR
                debug_id: b1d1f06c7246c
                message: An internal server error has occurred.
  securitySchemes:
    Oauth2:
      type: oauth2
      description: OAuth 2.0 authentication
      flows:
        clientCredentials:
          tokenUrl: https://api-m.paypal.com/v1/oauth2/token
          scopes:
            https://uri.paypal.com/services/payments/payment/authcapture: >-
              Permission to do non-real time payments like capture on
              authorization
            https://uri.paypal.com/services/payments/refund: Permission to initiate a refund on a capture transaction
            https://uri.paypal.com/services/payments/non-referenced-credit: Permission to initiate non referenced credit
            https://uri.paypal.com/services/payments/realtimepayment: >-
              Permission to do any real time payment, with support for
              sale/authorize/order intents
            https://uri.paypal.com/services/payments/reversepayment: Permission to do any reverse payment
            https://uri.paypal.com/services/payments/payments-ready: Permission to get information about payment readiness.
            Braintree:PaymentsReady: Permission to call PaymentsReady via BrainTree SDK.
            https://uri.paypal.com/services/payments/client-payments-eligibility: >-
              Permission to get information about merchant's eligible payment
              methods.

````