> ## 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.

# Create order

> Creates an order. Merchants and partners can add Level 2 and 3 data to payments to reduce risk and payment processing costs. For more information about processing payments, see <a href="https://developer.paypal.com/docs/checkout/advanced/processing/">checkout</a> or <a href="https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/">multiparty checkout</a>.<blockquote><strong>Note:</strong> For error handling and troubleshooting, see <a href="https://developer.paypal.com/api/rest/reference/orders/v2/errors/#create-order">Orders v2 errors</a>.</blockquote>



## OpenAPI

````yaml /api-reference/openapi-orders.json post /v2/checkout/orders
openapi: 3.0.4
info:
  title: Orders
  description: >-
    An order represents a payment between two or more parties. Use the Orders
    API to create, update, retrieve, authorize, and capture orders.
  version: '2.32'
servers:
  - url: https://api-m.paypal.com
    description: Server for https scheme.
security: []
tags:
  - name: externalcallback
    description: >-
      PayPal will use the callback url defined in the create order request to
      send merchants shipping address and shipping options data while the buyer
      is in the PayPal checkout.
  - name: orders
    description: >-
      Use the `/orders` resource to create, update, retrieve, authorize, capture
      and track orders.
  - name: trackers
    description: >-
      Use the `/trackers` resource to update and retrieve tracking information
      for PayPal orders.
externalDocs:
  url: ../doc/USERGUIDE.md
paths:
  /v2/checkout/orders:
    post:
      tags:
        - orders
      summary: Create order
      description: >-
        Creates an order. Merchants and partners can add Level 2 and 3 data to
        payments to reduce risk and payment processing costs. For more
        information about processing payments, see <a
        href="https://developer.paypal.com/docs/checkout/advanced/processing/">checkout</a>
        or <a
        href="https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/">multiparty
        checkout</a>.<blockquote><strong>Note:</strong> For error handling and
        troubleshooting, see <a
        href="https://developer.paypal.com/api/rest/reference/orders/v2/errors/#create-order">Orders
        v2 errors</a>.</blockquote>
      operationId: orders.create
      parameters:
        - name: PayPal-Request-Id
          description: >-
            The server stores keys for 6 hours. The API callers can request the
            times to up to 72 hours by speaking to their Account Manager. It is
            mandatory for all single-step create order calls (E.g. Create Order
            Request with payment source information like Card, PayPal.vault_id,
            PayPal.billing_agreement_id, etc).
          in: header
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 108
            pattern: ^[\S\s]*$
          examples:
            orders_create_authorize_single_step_paypal_with_vault_id_and_stored_credentials_usage_pattern:
              summary: >-
                Create and authorize an order for a PayPal wallet vaulted
                account holder passing a usage pattern indicator using stored
                credentials (Single Shot).
              description: >-
                Creates an order and authorizes payment with a PayPal wallet
                vault id as the payment source and a usage pattern (billing
                indicator) RECURRING_PREPAID passed using stored credentials.
              value: 7b92603e-77ed-4896-8e78-5dea2050476a
            00_orders_create:
              summary: >-
                Create Order - PayPal Wallet as Payment Source, Resulting in
                PAYER_ACTION_REQUIRED Response
              description: Creates a new order. API caller receives payer-action link.
              value: 7b92603e-77ed-4896-8e78-5dea2050476a
        - name: PayPal-Partner-Attribution-Id
          description: >-
            PayPal Partner can send a PayPal-Partner-Attribution-Id request
            header with the value that they have been assigned by the PayPal
            Partner program. This value is known as a BN Code. In order to
            reward such partners (through partner programs), all the activities
            (including API calls) that they are doing on behalf of the merchants
            need to be tracked.
          in: header
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 36
            pattern: ^[\S\s]*$
        - $ref: '#/components/parameters/paypal_client_metadata_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: 1
            maxLength: 25
            pattern: ^[a-zA-Z=,-]*$
            default: return=minimal
          examples:
            orders_create_create_orders_with_shipping_type_pickup_in_store:
              summary: Create Order - Buy Online Pickup In Store Shipping Type
              description: >-
                Creates an order with minimal parameters and contains the Buy
                Online Pickup in Store-related fields.
              value: return=representation
        - $ref: '#/components/parameters/authorization'
        - $ref: '#/components/parameters/paypal_auth_assertion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/order_request'
            examples:
              00_orders_create:
                summary: >-
                  Create Order - PayPal Wallet as Payment Source, Resulting in
                  PAYER_ACTION_REQUIRED Response
                description: Creates a new order. API caller receives payer-action link.
                value:
                  payment_source:
                    paypal:
                      experience_context:
                        payment_method_preference: IMMEDIATE_PAYMENT_REQUIRED
                        landing_page: LOGIN
                        shipping_preference: GET_FROM_FILE
                        user_action: PAY_NOW
                        return_url: https://example.com/returnUrl
                        cancel_url: https://example.com/cancelUrl
                  purchase_units:
                    - invoice_id: '90210'
                      amount:
                        currency_code: USD
                        value: '230.00'
                        breakdown:
                          item_total:
                            currency_code: USD
                            value: '220.00'
                          shipping:
                            currency_code: USD
                            value: '10.00'
                      items:
                        - name: T-Shirt
                          description: Super Fresh Shirt
                          unit_amount:
                            currency_code: USD
                            value: '20.00'
                          quantity: '1'
                          category: PHYSICAL_GOODS
                          sku: sku01
                          image_url: >-
                            https://example.com/static/images/items/1/tshirt_green.jpg
                          url: >-
                            https://example.com/url-to-the-item-being-purchased-1
                          upc:
                            type: UPC-A
                            code: '123456789012'
                        - name: Shoes
                          description: Running, Size 10.5
                          sku: sku02
                          unit_amount:
                            currency_code: USD
                            value: '100.00'
                          quantity: '2'
                          category: PHYSICAL_GOODS
                          image_url: >-
                            https://example.com/static/images/items/1/shoes_running.jpg
                          url: >-
                            https://example.com/url-to-the-item-being-purchased-2
                          upc:
                            type: UPC-A
                            code: '987654321012'
              create_422_unprocessable_entity_missing_pickup_address:
                summary: >-
                  Create Order - 422 Unprocessable Entity Error - Missing Pickup
                  Address
                description: >-
                  This code sample attempts to create an order but the shipping
                  address is required and `shipping.type` is set to
                  PICKUP_FROM_PERSON 
                value:
                  payment_source:
                    paypal:
                      experience_context:
                        return_url: https://www.example.com/returnURL
                        cancel_url: https://www.example.com/cancelURL
                        shipping_preference: SET_PROVIDED_ADDRESS
                  purchase_units:
                    - reference_id: PUHF
                      amount:
                        currency_code: USD
                        value: '100.00'
                      shipping:
                        type: PICKUP_FROM_PERSON
              orders_create_authorize_single_step_paypal_with_vault_id_and_stored_credentials_usage_pattern:
                summary: >-
                  Create and authorize an order for a PayPal wallet vaulted
                  account holder passing a usage pattern indicator using stored
                  credentials (Single Shot).
                description: >-
                  Creates an order and authorizes payment with a PayPal wallet
                  vault id as the payment source and a usage pattern (billing
                  indicator) RECURRING_PREPAID passed using stored credentials.
                value:
                  purchase_units:
                    - amount:
                        currency_code: USD
                        value: '100.00'
                  payment_source:
                    paypal:
                      vault_id: 2w915838hr181240m
              orders_create_create_orders_with_shipping_type_pickup_in_store:
                summary: Create Order - Buy Online Pickup In Store Shipping Type
                description: >-
                  Creates an order with minimal parameters and contains the Buy
                  Online Pickup in Store-related fields.
                value:
                  purchase_units:
                    - reference_id: PUHF
                      amount:
                        currency_code: USD
                        value: '50.00'
                      payee:
                        email_address: merchant@example.com
                      shipping:
                        address:
                          address_line_1: 123 Townsend St
                          address_line_2: Floor 6
                          admin_area_2: San Francisco
                          admin_area_1: CA
                          postal_code: '94107'
                          country_code: US
                        type: PICKUP_IN_STORE
              orders_create_simple:
                summary: Create Order - Minimal Request and Response
                description: >-
                  Creates an order with only required parameters. By default,
                  uses the minimal representation.
                value:
                  purchase_units:
                    - amount:
                        currency_code: USD
                        value: '100.00'
      responses:
        '200':
          description: >-
            A successful response to an idempotent request returns the HTTP `200
            OK` status code with a JSON response body that shows order details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/order'
              examples:
                00_orders_create:
                  summary: >-
                    Create Order - PayPal Wallet as Payment Source, Resulting in
                    PAYER_ACTION_REQUIRED Response
                  description: Creates a new order. API caller receives payer-action link.
                  value:
                    id: 5O190127TN364715T
                    payment_source:
                      paypal: {}
                    links:
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T
                        rel: self
                        method: GET
                      - href: >-
                          https://www.paypal.com/checkoutnow?token=5O190127TN364715T
                        rel: payer-action
                        method: GET
        '201':
          description: >-
            A successful request returns the HTTP `201 Created` status code and
            a JSON response body that includes by default a minimal response
            with the ID, status, and HATEOAS links. If you require the complete
            order resource representation, you must pass the <a
            href="https://developer.paypal.com/docs/api/orders/v2/#orders-create-header-parameters"><code>Prefer:
            return=representation</code> request header</a>. This header value
            is not the default.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/order'
              examples:
                orders_create_authorize_single_step_paypal_with_vault_id_and_stored_credentials_usage_pattern:
                  summary: >-
                    Create and authorize an order for a PayPal wallet vaulted
                    account holder passing a usage pattern indicator using
                    stored credentials (Single Shot).
                  description: >-
                    Creates an order and authorizes payment with a PayPal wallet
                    vault id as the payment source and a usage pattern (billing
                    indicator) RECURRING_PREPAID passed using stored
                    credentials.
                  value:
                    id: 8K832279M55989614
                    payment_source:
                      paypal:
                        email_address: buyer@paypal.com
                        account_id: XQHSN372NGSP2
                        account_status: UNVERIFIED
                        name:
                          given_name: Tom
                          surname: Business
                        phone_number:
                          national_number: '8127081430'
                        address:
                          country_code: US
                    purchase_units:
                      - reference_id: default
                        amount:
                          currency_code: USD
                          value: '100.00'
                        payee:
                          email_address: seller@paypal.com
                          merchant_id: Q7C9N6S4YRQXG
                        shipping:
                          name:
                            full_name: Tom Business
                          address:
                            address_line_1: 123 Fake St.
                            admin_area_2: Baton Rouge
                            admin_area_1: LA
                            postal_code: '70802'
                            country_code: US
                        payments:
                          authorizations:
                            - status: CREATED
                              id: 7X550106NA4440028
                              amount:
                                currency_code: USD
                                value: '100.00'
                              seller_protection:
                                status: ELIGIBLE
                                dispute_categories:
                                  - UNAUTHORIZED_TRANSACTION
                              expiration_time: '2024-06-05T18:46:54Z'
                              links:
                                - href: >-
                                    https://api-m.paypal.com/v2/payments/authorizations/7X550106NA4440028
                                  rel: self
                                  method: GET
                                - href: >-
                                    https://api-m.paypal.com/v2/payments/authorizations/7X550106NA4440028/capture
                                  rel: capture
                                  method: POST
                                - href: >-
                                    https://api-m.paypal.com/v2/payments/authorizations/7X550106NA4440028/void
                                  rel: void
                                  method: POST
                                - href: >-
                                    https://api-m.paypal.com/v2/checkout/orders/8K832279M55989614
                                  rel: up
                                  method: GET
                              create_time: '2024-05-07T18:46:54Z'
                              update_time: '2024-05-07T18:46:54Z'
                    payer:
                      name:
                        given_name: Tom
                        surname: Business
                      email_address: buyer@paypal.com
                      payer_id: XQHSN372NGSP2
                      phone:
                        phone_number:
                          national_number: '8127081430'
                      address:
                        country_code: US
                    create_time: '2024-05-07T18:46:15Z'
                    update_time: '2024-05-07T18:46:54Z'
                    links:
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/8K832279M55989614
                        rel: self
                        method: GET
                orders_create_create_orders_with_shipping_type_pickup_in_store:
                  summary: Create Order - Buy Online Pickup In Store Shipping Type
                  description: >-
                    Creates an order with minimal parameters and contains the
                    Buy Online Pickup in Store-related fields.
                  value:
                    id: 4SP74185RW2405200
                    purchase_units:
                      - reference_id: PUHF
                        amount:
                          currency_code: USD
                          value: '50.00'
                        payee:
                          email_address: merchant@example.com
                        shipping:
                          address:
                            address_line_1: 123 Townsend St
                            address_line_2: Floor 6
                            admin_area_2: San Francisco
                            admin_area_1: CA
                            postal_code: '94107'
                            country_code: US
                          type: PICKUP_IN_STORE
                    links:
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/4SP74185RW2405200
                        rel: self
                        method: GET
                      - href: >-
                          https://www.paypal.com/checkoutnow?token=4SP74185RW2405200
                        rel: approve
                        method: GET
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/4SP74185RW2405200
                        rel: edit
                        method: PATCH
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/4SP74185RW2405200/authorize
                        rel: authorize
                        method: POST
                orders_create_simple:
                  summary: Create Order - Minimal Request and Response
                  description: >-
                    Creates an order with only required parameters. By default,
                    uses the minimal representation.
                  value:
                    id: 5O190127TN364715T
                    links:
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T
                        rel: self
                        method: GET
                      - href: >-
                          https://www.paypal.com/checkoutnow?token=5O190127TN364715T
                        rel: approve
                        method: GET
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T
                        rel: edit
                        method: PATCH
                      - href: >-
                          https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T/capture
                        rel: capture
                        method: POST
        '202':
          description: >-
            The request has been accepted for processing, but the processing has
            not been completed yet. The server returns the HTTP `202 Accepted`
            status code to indicate that the request is valid and will be
            handled asynchronously.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/order'
        '400':
          description: >-
            Request is not well-formed, syntactically incorrect, or violates
            schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              examples:
                create_400_bad_request:
                  summary: >-
                    Create Order - 400 Bad Request Error - Purchase Unit is
                    Empty
                  description: >-
                    This code sample attempts to create an order with empty
                    purchase units. The request fails.
                  value:
                    name: INVALID_REQUEST
                    message: >-
                      Request is not well-formed, syntactically incorrect, or
                      violates schema.
                    debug_id: 10398537340c8
                    details:
                      - field: /purchase_units
                        value: '[]'
                        location: body
                        issue: INVALID_ARRAY_MIN_ITEMS
                        description: >-
                          The number of items in an array parameter is too
                          small.
                    links:
                      - href: >-
                          https://developer.paypal.com/api/orders/v2/#error-INVALID_ARRAY_MIN_ITEMS
                        rel: information_link
        '401':
          $ref: '#/components/responses/401_error_response'
        '403':
          $ref: '#/components/responses/403_error_response'
        '422':
          description: >-
            The requested action could not be performed, semantically incorrect,
            or failed business validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              examples:
                create_422_unprocessable_entity_missing_pickup_address:
                  summary: >-
                    Create Order - 422 Unprocessable Entity Error - Missing
                    Pickup Address
                  description: >-
                    This code sample attempts to create an order but the
                    shipping address is required and `shipping.type` is set to
                    PICKUP_FROM_PERSON 
                  value:
                    name: UNPROCESSABLE_ENTITY
                    details:
                      - field: /purchase_units/@reference_id=='PUHF'/shipping/address
                        issue: MISSING_SHIPPING_ADDRESS
                        description: >-
                          The shipping address is required when
                          `shipping_preference=SET_PROVIDED_ADDRESS`.
                    message: >-
                      The requested action could not be performed, semantically
                      incorrect, or failed business validation.
                    debug_id: f200264a4e02a
                    links:
                      - href: >-
                          https://developer.paypal.com/api/rest/reference/orders/v2/errors/#MISSING_SHIPPING_ADDRESS
                        rel: information_link
                        method: GET
        '500':
          $ref: '#/components/responses/500_error_response'
        default:
          $ref: '#/components/responses/default_response'
      security:
        - Oauth2:
            - https://uri.paypal.com/services/payments/payment
            - >-
              https://uri.paypal.com/services/payments/orders/deprecating-jssdk-migration-for-limited-merchants
components:
  parameters:
    paypal_client_metadata_id:
      name: PayPal-Client-Metadata-Id
      in: header
      description: >-
        A GUID value originating from Fraudnet and Dyson passed from external
        API clients via HTTP header. The value is used by Risk decisions to
        correlate calls which, in turn, might result in lower decline rates..
      required: false
      schema:
        $ref: '#/components/schemas/guid'
      examples:
        guid:
          summary: A GUID.
          description: A paypal-client-metadata-id header with a randomized value.
          value: 1295065d-6f34-42dc-ac65-fac0c86af250
    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:
    order_request:
      title: Order Request
      description: The order request details.
      type: object
      required:
        - intent
        - purchase_units
      properties:
        intent:
          $ref: '#/components/schemas/checkout_payment_intent'
        payer:
          allOf:
            - $ref: '#/components/schemas/payer'
            - description: >-
                DEPRECATED. The customer is also known as the payer. The Payer
                object was intended to only be used with the
                `payment_source.paypal` object. In order to make this design
                more clear, the details in the `payer` object are now available
                under `payment_source.paypal`. Please use
                `payment_source.paypal`.
                <b>DEPRECATED</b><br><table><tr><th>See</th><th>Since
                Version</th></tr><tr><td>payment_source.paypal</td><td>2.9</td></tr></table>
              deprecated: true
        purchase_units:
          description: >-
            An array of purchase units. Each purchase unit establishes a
            contract between a payer and the payee. Each purchase unit
            represents either a full or partial order that the payer intends to
            purchase from the payee.
          type: array
          minItems: 1
          maxItems: 10
          items:
            allOf:
              - $ref: '#/components/schemas/purchase_unit_request'
              - title: purchase_unit
                description: >-
                  The purchase unit. Establishes a contract between a payer and
                  the payee.
        payment_source:
          $ref: '#/components/schemas/payment_source'
        application_context:
          allOf:
            - $ref: '#/components/schemas/order_application_context'
            - title: application_context
              description: >-
                Customize the payer experience during the approval process for
                the payment with PayPal.
    order:
      title: Order
      description: The order details.
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/activity_timestamps'
            - title: activity_timestamps
        - type: object
          title: Order
          description: The order details.
          properties:
            id:
              description: The ID of the order.
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
              readOnly: true
            payment_source:
              allOf:
                - $ref: '#/components/schemas/payment_source_response'
            intent:
              allOf:
                - $ref: '#/components/schemas/checkout_payment_intent'
            payer:
              allOf:
                - $ref: '#/components/schemas/payer'
                - description: >-
                    DEPRECATED. The customer is also known as the payer. The
                    Payer object was intended to only be used with the
                    `payment_source.paypal` object. In order to make this design
                    more clear, the details in the `payer` object are now
                    available under `payment_source.paypal`. Please use
                    `payment_source.paypal`.
                    <b>DEPRECATED</b><br><table><tr><th>See</th><th>Since
                    Version</th></tr><tr><td>payment_source.paypal</td><td>2.9</td></tr></table>
                  deprecated: true
            purchase_units:
              description: >-
                An array of purchase units. Each purchase unit establishes a
                contract between a customer and merchant. Each purchase unit
                represents either a full or partial order that the customer
                intends to purchase from the merchant.
              type: array
              minItems: 1
              maxItems: 10
              items:
                allOf:
                  - $ref: '#/components/schemas/purchase_unit'
                  - title: purchase_unit
                    description: >-
                      A purchase unit. Establishes a contract between a customer
                      and merchant.
            status:
              allOf:
                - $ref: '#/components/schemas/order_status'
                - readOnly: true
            links:
              description: >-
                An array of request-related HATEOAS links. To complete payer
                approval, use the `approve` link to redirect the payer. The API
                caller has 6 hours (default setting, this which can be changed
                by your account manager to 24/48/72 hours to accommodate your
                use case) from the time the order is created, to redirect your
                payer. Once redirected, the API caller has 6 hours for the payer
                to approve the order and either authorize or capture the order.
                If you are not using the PayPal JavaScript SDK to initiate
                PayPal Checkout (in context) ensure that you include
                `application_context.return_url` is specified or you will get
                "We're sorry, Things don't appear to be working at the moment"
                after the payer approves the payment.
              type: array
              minItems: 0
              maxItems: 32767
              readOnly: true
              items:
                allOf:
                  - $ref: '#/components/schemas/link_description-2'
                  - title: link_description
                    description: >-
                      A request-related [HATEOAS
                      link](/api/rest/responses/#hateoas-links). To complete
                      payer approval, use the `approve` link with the `GET`
                      method.
    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
    guid:
      title: GUID
      description: A Globally Unique Identifier (GUID) value.
      type: string
      minLength: 1
      maxLength: 68
      pattern: ^[A-Za-z0-9-{}(),]*$
    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: ^.*$
    checkout_payment_intent:
      title: checkout_payment_intent
      description: >-
        The intent to either capture payment immediately or authorize a payment
        for an order after order creation.
      type: string
      enum:
        - CAPTURE
        - AUTHORIZE
    payer:
      title: payer
      description: >-
        The customer who approves and pays for the order. The customer is also
        known as the payer.
      type: object
      allOf:
        - $ref: '#/components/schemas/payer_base'
        - type: object
          properties:
            name:
              allOf:
                - $ref: '#/components/schemas/name'
                - description: >-
                    The name of the payer. Supports only the `given_name` and
                    `surname` properties.
                  not:
                    anyOf:
                      - required:
                          - prefix
                      - required:
                          - middle_name
                      - required:
                          - suffix
                      - required:
                          - alternate_full_name
                      - required:
                          - full_name
            phone:
              allOf:
                - $ref: '#/components/schemas/phone_with_type'
                - description: >-
                    The phone number of the customer. Available only when you
                    enable the **Contact Telephone Number** option in the <a
                    href="https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments">**Profile
                    & Settings**</a> for the merchant's PayPal account. The
                    `phone.phone_number` supports only `national_number`.
            birth_date:
              allOf:
                - $ref: '#/components/schemas/date_no_time'
                - description: The birth date of the payer in `YYYY-MM-DD` format.
            tax_info:
              allOf:
                - $ref: '#/components/schemas/tax_info'
                - description: >-
                    The tax information of the payer. Required only for
                    Brazilian payer's. Both `tax_id` and `tax_id_type` are
                    required.
            address:
              allOf:
                - $ref: '#/components/schemas/address_portable'
                - description: >-
                    The address of the payer. Supports only the
                    `address_line_1`, `address_line_2`, `admin_area_1`,
                    `admin_area_2`, `postal_code`, and `country_code`
                    properties. Also referred to as the billing address of the
                    customer.
                  not:
                    anyOf:
                      - required:
                          - address_line_3
                      - required:
                          - admin_area_3
                      - required:
                          - admin_area_4
                      - required:
                          - address_details
    purchase_unit_request:
      title: Purchase Unit Request
      description: >-
        The purchase unit request. Includes required information for the payment
        contract.
      type: object
      required:
        - amount
      properties:
        reference_id:
          description: >-
            The API caller-provided external ID for the purchase unit. Required
            for multiple purchase units when you must update the order through
            `PATCH`. If you omit this value and the order contains only one
            purchase unit, PayPal sets this value to `default`.
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^[\S\s]*$
        amount:
          allOf:
            - $ref: '#/components/schemas/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. 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>.
        payee:
          allOf:
            - $ref: '#/components/schemas/payee'
            - description: The merchant who receives payment for this transaction.
        payment_instruction:
          $ref: '#/components/schemas/payment_instruction'
        description:
          description: >-
            <blockquote>This field supports up to 3,000 characters, but
            <strong>any content beyond 127 characters (including spaces) will be
            truncated. The 127 character limit is reflected in the
            response</strong> representation of this field.</blockquote>The
            purchase description. The maximum length of the character is
            dependent on the type of characters used. The character length is
            specified assuming a US ASCII character. Depending on type of
            character; (e.g. accented character, Japanese characters) the number
            of characters that that can be specified as input might not equal
            the permissible max length.
          type: string
          minLength: 1
          maxLength: 3000
          pattern: ^[\S\s]*$
        custom_id:
          description: >-
            The API caller-provided external ID. Used to reconcile client
            transactions with PayPal transactions. Appears in transaction and
            settlement reports but is not visible to the payer.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\S\s]*$
        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. invoice_id values are required to be unique
            within each merchant account by default. Although the uniqueness
            validation is configurable, disabling this behavior will remove the
            account's ability to use invoice_id in other APIs as an identifier.
            It is highly recommended to keep a unique invoice_id for each Order.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        soft_descriptor:
          description: >-
            <blockquote>This field supports up to 127 characters, but
            <strong>any content beyond 22 characters (including spaces) will be
            truncated. The 22 character limit is reflected in the
            response</strong> representation of this field.</blockquote>The soft
            descriptor is the dynamic text used to construct the statement
            descriptor that appears on a payer's card statement.<br><br>If an
            Order is paid using the "PayPal Wallet", the statement descriptor
            will appear in following format on the payer's card statement:
            <code><var>PAYPAL_prefix</var>+(space)+<var>merchant_descriptor</var>+(space)+
            <var>soft_descriptor</var></code><blockquote><strong>Note:</strong>
            The merchant descriptor is the descriptor of the merchant’s payment
            receiving preferences which can be seen by logging into the merchant
            account
            https://www.sandbox.paypal.com/businessprofile/settings/info/edit</blockquote>The
            <code>PAYPAL</code> prefix uses 8 characters. Only the first 22
            characters will be displayed in the statement. <br>For example,
            if:<ul><li>The PayPal prefix toggle is <code>PAYPAL
            *</code>.</li><li>The merchant descriptor in the profile is
            <code>Janes Gift</code>.</li><li>The soft descriptor is
            <code>800-123-1234</code>.</li></ul>Then, the statement descriptor
            on the card is <code>PAYPAL * Janes Gift 80</code>.
          type: string
          minLength: 1
          maxLength: 1000
          pattern: ^[\S\s]*$
        items:
          description: An array of items that the customer purchases from the merchant.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            allOf:
              - $ref: '#/components/schemas/item_request'
              - title: item
                description: The item.
        shipping:
          allOf:
            - $ref: '#/components/schemas/shipping_detail'
            - description: The name and address of the person to whom to ship the items.
        supplementary_data:
          allOf:
            - $ref: '#/components/schemas/supplementary_data'
            - description: Contains Supplementary Data.
    payment_source:
      title: payment_source
      description: The payment source definition.
      type: object
      properties:
        card:
          $ref: '#/components/schemas/card_request'
        token:
          $ref: '#/components/schemas/token'
        paypal:
          allOf:
            - $ref: '#/components/schemas/paypal_wallet'
            - description: >-
                Indicates that PayPal Wallet is the payment source. Main use of
                this selection is to provide additional instructions associated
                with this choice like vaulting.
        bancontact:
          allOf:
            - $ref: '#/components/schemas/bancontact_request'
            - title: bancontact
              description: >-
                Bancontact is the most popular online payment in Belgium. [More
                Details](https://www.bancontact.com/).
        blik:
          allOf:
            - $ref: '#/components/schemas/blik_request'
            - title: blik
              description: >-
                BLIK is a mobile payment system, created by Polish Payment
                Standard in order to allow millions of users to pay in shops,
                payout cash in ATMs and make online purchases and payments.
                [More Details](https://blikmobile.pl/).
        eps:
          allOf:
            - $ref: '#/components/schemas/eps_request'
            - title: eps
              description: >-
                The eps transfer is an online payment method developed by many
                Austrian banks. [More
                Details](https://www.eps-ueberweisung.at/).
        giropay:
          allOf:
            - $ref: '#/components/schemas/giropay_request'
            - title: giropay
              description: >-
                Giropay is an Internet payment System in Germany, based on
                online banking. [More Details](https://giropay.de/).
        ideal:
          allOf:
            - $ref: '#/components/schemas/ideal_request'
            - title: ideal
              description: >-
                The Dutch payment method iDEAL is an online payment method that
                enables consumers to pay online through their own bank. [More
                Details](https://www.ideal.nl/).
        mybank:
          allOf:
            - $ref: '#/components/schemas/mybank_request'
            - title: mybank
              description: >-
                MyBank is an e-authorisation solution which enables safe digital
                payments and identity authentication through a consumer’s own
                online banking portal or mobile application. [More
                Details](https://www.mybank.eu/).
        p24:
          allOf:
            - $ref: '#/components/schemas/p24_request'
            - title: p24
              description: >-
                P24 (Przelewy24) is a secure and fast online bank transfer
                service linked to all the major banks in Poland. [More
                Details](https://www.przelewy24.pl/).
        sofort:
          allOf:
            - $ref: '#/components/schemas/sofort_request'
            - title: sofort
              description: >-
                SOFORT Banking is a real-time bank transfer payment method that
                buyers use to transfer funds directly to merchants from their
                bank accounts. [More Details](https://www.klarna.com/sofort/).
        trustly:
          allOf:
            - $ref: '#/components/schemas/trustly_request'
            - title: trustly
              description: >-
                Trustly is a payment method that allows customers to shop and
                pay from their bank account. [More
                Details](https://www.trustly.net/).
        apple_pay:
          allOf:
            - $ref: '#/components/schemas/apple_pay_request'
            - title: applepay
              description: >-
                ApplePay payment source, allows buyer to pay using ApplePay,
                both on Web as well as on Native.
        google_pay:
          allOf:
            - $ref: '#/components/schemas/google_pay_request'
            - title: googlepay
              description: Google Pay payment source, allows buyer to pay using Google Pay.
        venmo:
          allOf:
            - $ref: '#/components/schemas/venmo_wallet_request'
            - title: venmo
              description: >-
                Information needed to indicate that Venmo is being used to fund
                the payment.
        crypto:
          allOf:
            - $ref: '#/components/schemas/crypto_request'
            - title: crypto
              description: Indicates that Crypto Wallet is the payment source.
    order_application_context:
      title: application_context
      description: >-
        Customizes the payer experience during the approval process for the
        payment with PayPal.<blockquote><strong>Note:</strong> Partners and
        Marketplaces might configure <code>brand_name</code> and
        <code>shipping_preference</code> during partner account setup, which
        overrides the request values.</blockquote>
      type: object
      properties:
        brand_name:
          description: >-
            DEPRECATED. The label that overrides the business name in the PayPal
            account on the PayPal site. The fields in `application_context` are
            now available in the `experience_context` object under the
            `payment_source` which supports them (eg.
            `payment_source.paypal.experience_context.brand_name`). Please
            specify this field in the `experience_context` object instead of the
            `application_context` object.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        locale:
          allOf:
            - $ref: '#/components/schemas/language'
            - description: >-
                DEPRECATED. The BCP 47-formatted locale of pages that the PayPal
                payment experience shows. PayPal supports a five-character code.
                For example, `da-DK`, `he-IL`, `id-ID`, `ja-JP`, `no-NO`,
                `pt-BR`, `ru-RU`, `sv-SE`, `th-TH`, `zh-CN`, `zh-HK`, or
                `zh-TW`.  The fields in `application_context` are now available
                in the `experience_context` object under the `payment_source`
                which supports them (eg.
                `payment_source.paypal.experience_context.locale`). Please
                specify this field in the `experience_context` object instead of
                the `application_context` object.
        landing_page:
          title: Order Application Context Landing Page
          description: >-
            DEPRECATED. DEPRECATED. The type of landing page to show on the
            PayPal site for customer checkout.  The fields in
            `application_context` are now available in the `experience_context`
            object under the `payment_source` which supports them (eg.
            `payment_source.paypal.experience_context.landing_page`). Please
            specify this field in the `experience_context` object instead of the
            `application_context` object.
            <b>DEPRECATED</b><br><table><tr><th>See</th><th>Since
            Version</th></tr><tr><td>payment_source.paypal.experience_context.landing_page</td><td>2.9</td></tr></table>
          type: string
          enum:
            - LOGIN
            - BILLING
            - NO_PREFERENCE
          default: NO_PREFERENCE
          deprecated: true
        shipping_preference:
          title: Order Application Context Shipping Preference
          description: >-
            DEPRECATED. DEPRECATED. The shipping preference:<ul><li>Displays the
            shipping address to the customer.</li><li>Enables the customer to
            choose an address on the PayPal site.</li><li>Restricts the customer
            from changing the address during the payment-approval
            process.</li></ul>.  The fields in `application_context` are now
            available in the `experience_context` object under the
            `payment_source` which supports them (eg.
            `payment_source.paypal.experience_context.shipping_preference`).
            Please specify this field in the `experience_context` object instead
            of the `application_context` object.
            <b>DEPRECATED</b><br><table><tr><th>See</th><th>Since
            Version</th></tr><tr><td>payment_source.paypal.experience_context.shipping_preference</td><td>2.9</td></tr></table>
          type: string
          enum:
            - GET_FROM_FILE
            - NO_SHIPPING
            - SET_PROVIDED_ADDRESS
          default: GET_FROM_FILE
          deprecated: true
        user_action:
          description: >-
            DEPRECATED. Configures a <strong>Continue</strong> or <strong>Pay
            Now</strong> checkout flow.  The fields in `application_context` are
            now available in the `experience_context` object under the
            `payment_source` which supports them (eg.
            `payment_source.paypal.experience_context.user_action`). Please
            specify this field in the `experience_context` object instead of the
            `application_context` object.
          type: string
          enum:
            - CONTINUE
            - PAY_NOW
          default: CONTINUE
        payment_method:
          allOf:
            - $ref: '#/components/schemas/payment_method'
            - description: >-
                DEPRECATED. The customer and merchant payment preferences. The
                fields in `application_context` are now available in the
                `experience_context` object under the `payment_source` which
                supports them (eg.
                `payment_source.paypal.experience_context.payment_method_selected`).
                Please specify this field in the `experience_context` object
                instead of the `application_context` object..
        return_url:
          description: >-
            DEPRECATED. The URL where the customer is redirected after the
            customer approves the payment. The fields in `application_context`
            are now available in the `experience_context` object under the
            `payment_source` which supports them (eg.
            `payment_source.paypal.experience_context.return_url`). Please
            specify this field in the `experience_context` object instead of the
            `application_context` object.
          type: string
          minLength: 0
          maxLength: 2147483647
          format: uri
        cancel_url:
          description: >-
            DEPRECATED. The URL where the customer is redirected after the
            customer cancels the payment. The fields in `application_context`
            are now available in the `experience_context` object under the
            `payment_source` which supports them (eg.
            `payment_source.paypal.experience_context.cancel_url`). Please
            specify this field in the `experience_context` object instead of the
            `application_context` object.
          type: string
          minLength: 0
          maxLength: 2147483647
          format: uri
        stored_payment_source:
          allOf:
            - $ref: '#/components/schemas/stored_payment_source'
            - description: >-
                DEPRECATED. Provides additional details to process a payment
                using a `payment_source` that has been stored or is intended to
                be stored (also referred to as stored_credential or
                card-on-file).<br/>Parameter
                compatibility:<br/><ul><li>`payment_type=ONE_TIME` is compatible
                only with `payment_initiator=CUSTOMER`.</li><li>`usage=FIRST` is
                compatible only with
                `payment_initiator=CUSTOMER`.</li><li>`previous_transaction_reference`
                or `previous_network_transaction_reference` is compatible only
                with `payment_initiator=MERCHANT`.</li><li>Only one of the
                parameters - `previous_transaction_reference` and
                `previous_network_transaction_reference` - can be present in the
                request.</li></ul>.  The fields in `stored_payment_source` are
                now available in the `stored_credential` object under the
                `payment_source` which supports them (eg.
                `payment_source.card.stored_credential.payment_initiator`).
                Please specify this field in the `payment_source` object instead
                of the `application_context` object.
                <b>DEPRECATED</b><br><table><tr><th>See</th><th>Since
                Version</th></tr><tr><td>payment_source.card.stored_credential</td><td>2.9</td></tr></table>
              deprecated: 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
    payment_source_response:
      title: payment_source_response
      description: The payment source used to fund the payment.
      type: object
      properties:
        card:
          $ref: '#/components/schemas/card_response'
        paypal:
          $ref: '#/components/schemas/paypal_wallet_response'
        bancontact:
          $ref: '#/components/schemas/bancontact'
        blik:
          $ref: '#/components/schemas/blik'
        eps:
          $ref: '#/components/schemas/eps'
        giropay:
          $ref: '#/components/schemas/giropay'
        ideal:
          $ref: '#/components/schemas/ideal'
        mybank:
          $ref: '#/components/schemas/mybank'
        p24:
          $ref: '#/components/schemas/p24'
        sofort:
          $ref: '#/components/schemas/sofort'
        trustly:
          $ref: '#/components/schemas/trustly'
        apple_pay:
          $ref: '#/components/schemas/apple_pay'
        google_pay:
          $ref: '#/components/schemas/google_pay'
        venmo:
          $ref: '#/components/schemas/venmo_wallet_response'
        crypto:
          $ref: '#/components/schemas/crypto'
    purchase_unit:
      title: Purchase Unit
      description: >-
        The purchase unit details. Used to capture required information for the
        payment contract.
      type: object
      properties:
        reference_id:
          description: >-
            The API caller-provided external ID for the purchase unit. Required
            for multiple purchase units when you must update the order through
            `PATCH`. If you omit this value and the order contains only one
            purchase unit, PayPal sets this value to `default`.
            <blockquote><strong>Note:</strong> If there are multiple purchase
            units, <code>reference_id</code> is required for each purchase
            unit.</blockquote>
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^[\S\s]*$
        amount:
          $ref: '#/components/schemas/amount_with_breakdown'
        payee:
          allOf:
            - $ref: '#/components/schemas/payee'
            - description: The merchant who receives payment for this transaction.
        payment_instruction:
          $ref: '#/components/schemas/payment_instruction'
        description:
          description: The purchase description.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        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: 1
          maxLength: 255
          pattern: ^[\S\s]*$
        invoice_id:
          description: The API caller-provided external invoice ID for this order.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        id:
          description: >-
            The PayPal-generated ID for the purchase unit. This ID appears in
            both the payer's transaction history and the emails that the payer
            receives. In addition, this ID is available in transaction and
            settlement reports that merchants and API callers can use to
            reconcile transactions. This ID is only available when an order is
            saved by calling <code>v2/checkout/orders/id/save</code>.
          type: string
          minLength: 1
          maxLength: 19
          pattern: ^[\S\s]*$
        soft_descriptor:
          description: >-
            The payment descriptor on account transactions on the customer's
            credit card statement, that PayPal sends to processors. The maximum
            length of the soft descriptor information that you can pass in the
            API field is 22 characters, in the following format:<code>22 -
            len(PAYPAL * (8)) - len(<var>Descriptor in Payment Receiving
            Preferences of Merchant account</var> + 1)</code>The PAYPAL prefix
            uses 8 characters.<br/><br/>The soft descriptor supports the
            following ASCII characters:<ul><li>Alphanumeric
            characters</li><li>Dashes</li><li>Asterisks</li><li>Periods
            (.)</li><li>Spaces</li></ul>For Wallet payments marketplace
            integrations:<ul><li>The merchant descriptor in the Payment
            Receiving Preferences must be the marketplace name.</li><li>You
            can't use the remaining space to show the customer service
            number.</li><li>The remaining spaces can be a combination of seller
            name and country.</li></ul><br/>For unbranded payments (Direct Card)
            marketplace integrations, use a combination of the seller name and
            phone number.
          type: string
          minLength: 1
          maxLength: 22
          pattern: ^[\S\s]*$
        items:
          description: An array of items that the customer purchases from the merchant.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            allOf:
              - $ref: '#/components/schemas/item'
              - title: item
                description: An item.
        shipping:
          allOf:
            - $ref: '#/components/schemas/shipping_with_tracking_details'
            - description: The shipping address and method.
        supplementary_data:
          allOf:
            - $ref: '#/components/schemas/supplementary_data'
            - description: >-
                Supplementary data about this payment. Merchants and partners
                can add Level 2 and 3 data to payments to reduce risk and
                payment processing costs. For more information about processing
                payments, see <a
                href="https://developer.paypal.com/docs/checkout/advanced/processing/">checkout</a>
                or <a
                href="https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/">multiparty
                checkout</a>.
        payments:
          allOf:
            - $ref: '#/components/schemas/payment_collection'
            - description: The comprehensive history of payments for the purchase unit.
              readOnly: true
    order_status:
      title: Order Status
      description: The order status.
      type: string
      enum:
        - CREATED
        - SAVED
        - APPROVED
        - VOIDED
        - COMPLETED
        - PAYER_ACTION_REQUIRED
    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
        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.
    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
        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.
    payer_base:
      title: payer_base
      description: >-
        The customer who approves and pays for the order. The customer is also
        known as the payer.
      type: object
      properties:
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: The email address of the payer.
        payer_id:
          allOf:
            - $ref: '#/components/schemas/account_id'
            - description: The PayPal-assigned ID for the payer.
              readOnly: true
    name:
      title: Name
      description: The name of the party.
      type: object
      properties:
        prefix:
          description: The prefix, or title, to the party's name.
          type: string
          minLength: 0
          maxLength: 140
          pattern: ^[\S\s]*$
        given_name:
          description: When the party is a person, the party's given, or first, name.
          type: string
          minLength: 0
          maxLength: 140
          pattern: ^[\S\s]*$
        surname:
          description: >-
            When the party is a person, the party's surname or family name. Also
            known as the last name. Required when the party is a person. Use
            also to store multiple surnames including the matronymic, or
            mother's, surname.
          type: string
          minLength: 0
          maxLength: 140
          pattern: ^[\S\s]*$
        middle_name:
          description: >-
            When the party is a person, the party's middle name. Use also to
            store multiple middle names including the patronymic, or father's,
            middle name.
          type: string
          minLength: 0
          maxLength: 140
          pattern: ^[\S\s]*$
        suffix:
          description: The suffix for the party's name.
          type: string
          minLength: 0
          maxLength: 140
          pattern: ^[\S\s]*$
        full_name:
          description: When the party is a person, the party's full name.
          type: string
          minLength: 0
          maxLength: 300
          pattern: ^[\S\s]*$
    phone_with_type:
      title: phone_with_type
      description: The phone information.
      type: object
      required:
        - phone_number
      properties:
        phone_type:
          $ref: '#/components/schemas/phone_type'
        phone_number:
          allOf:
            - $ref: '#/components/schemas/phone_number_without_country_code'
            - description: >-
                The phone number, in its canonical international [E.164
                numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).
                Supports only the `national_number` property.
    date_no_time:
      description: >-
        The stand-alone date, in [Internet date and time
        format](https://tools.ietf.org/html/rfc3339#section-5.6). To represent
        special legal values, such as a date of birth, you should use dates with
        no associated time or time-zone data. Whenever possible, use the
        standard `date_time` type. This regular expression does not validate all
        dates. For example, February 31 is valid and nothing is known about leap
        years.
      type: string
      minLength: 10
      maxLength: 10
      pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$
    tax_info:
      title: tax_info
      description: >-
        The tax ID of the customer. The customer is also known as the payer.
        Both `tax_id` and `tax_id_type` are required.
      type: object
      required:
        - tax_id
        - tax_id_type
      properties:
        tax_id:
          description: The customer's tax ID value.
          type: string
          minLength: 1
          maxLength: 14
          pattern: ^.*([a-zA-Z0-9]).*$
        tax_id_type:
          description: The customer's tax ID type.
          type: string
          enum:
            - BR_CPF
            - BR_CNPJ
    address_portable:
      title: Portable Postal Address (Medium-Grained)
      description: >-
        The portable international postal address. Maps to
        [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata)
        and HTML 5.1 [Autofilling form controls: the autocomplete
        attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
      type: object
      required:
        - country_code
      properties:
        address_line_1:
          description: >-
            The first line of the address, such as number and street, for
            example, `173 Drury Lane`. Needed for data entry, and Compliance and
            Risk checks. This field needs to pass the full address.
          type: string
          minLength: 0
          maxLength: 300
          pattern: ^[\S\s]*$
        address_line_2:
          description: >-
            The second line of the address, for example, a suite or apartment
            number.
          type: string
          minLength: 0
          maxLength: 300
          pattern: ^[\S\s]*$
        address_line_3:
          description: >-
            The third line of the address, if needed. Examples include a street
            complement for Brazil, direction text, such as `next to Walmart`, or
            a landmark in an Indian address.
          type: string
          minLength: 0
          maxLength: 100
          pattern: ^[\S\s]*$
        admin_area_4:
          description: >-
            The neighborhood, ward, or district. This is smaller than
            `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal
            sorting code that is used in Guernsey and many French territories,
            such as French Guiana.</li><li>The fine-grained administrative
            levels in China.</li></ul>
          type: string
          minLength: 0
          maxLength: 100
          pattern: ^[\S\s]*$
        admin_area_3:
          description: >-
            The sub-locality, suburb, neighborhood, or district. This is smaller
            than `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb,
            *bairro*, or neighborhood.</li><li>India. Sub-locality or district.
            Street name information isn't always available, but a sub-locality
            or district can be a very small area.</li></ul>
          type: string
          minLength: 0
          maxLength: 100
          pattern: ^[\S\s]*$
        admin_area_2:
          description: A city, town, or village. Smaller than `admin_area_level_1`.
          type: string
          minLength: 0
          maxLength: 120
          pattern: ^[\S\s]*$
        admin_area_1:
          description: >-
            The highest-level sub-division in a country, which is usually a
            province, state, or ISO-3166-2 subdivision. This data is formatted
            for postal delivery, for example, `CA` and not `California`. Value,
            by country, is:<ul><li>UK. A county.</li><li>US. A
            state.</li><li>Canada. A province.</li><li>Japan. A
            prefecture.</li><li>Switzerland. A *kanton*.</li></ul>
          type: string
          minLength: 0
          maxLength: 300
          pattern: ^[\S\s]*$
        postal_code:
          description: >-
            The postal code, which is the ZIP code or equivalent. Typically
            required for countries with a postal code or an equivalent. See
            [postal code](https://en.wikipedia.org/wiki/Postal_code).
          type: string
          minLength: 0
          maxLength: 60
          pattern: ^[\S\s]*$
        country_code:
          $ref: '#/components/schemas/country_code'
        address_details:
          title: Address Details
          description: >-
            The non-portable additional address details include fine-grain
            address information for Compliance, Risk, and other scenarios. This
            isn't portable with common third-party and open source applications.
            This can include data that is redundant with core fields. For
            example, `address_portable.address_line_1` is usually a combination
            of `address_details.street_number`, `street_name`, and
            `street_type`.
          type: object
          properties:
            street_number:
              description: The street number.
              type: string
              minLength: 0
              maxLength: 100
              pattern: ^[\S\s]*$
            street_name:
              description: The street name. Just `Drury` in `Drury Lane`.
              type: string
              minLength: 0
              maxLength: 100
              pattern: ^[\S\s]*$
            street_type:
              description: >-
                The street type. For example, avenue, boulevard, road, or
                expressway.
              type: string
              minLength: 0
              maxLength: 100
              pattern: ^[\S\s]*$
            delivery_service:
              description: >-
                The delivery service. Post office box, bag number, or post
                office name.
              type: string
              minLength: 0
              maxLength: 100
              pattern: ^[\S\s]*$
            building_name:
              description: >-
                A named locations that represents the premise. Usually a
                building name or number or collection of buildings with a common
                name or number. For example, <code>Craven House</code>.
              type: string
              minLength: 0
              maxLength: 100
              pattern: ^[\S\s]*$
            sub_building:
              description: >-
                The first-order entity below a named building or location that
                represents the sub-premise. Usually a single building within a
                collection of buildings with a common name. Can be a flat,
                story, floor, room, or apartment.
              type: string
              minLength: 0
              maxLength: 100
              pattern: ^[\S\s]*$
    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'
    payee:
      title: payee
      description: >-
        The merchant who receives the funds and fulfills the order. The merchant
        is also known as the payee.
      type: object
      allOf:
        - $ref: '#/components/schemas/payee_base'
        - type: object
    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: ^.*$
    item_request:
      title: item_request
      description: The details for the items to be purchased.
      type: object
      required:
        - name
        - quantity
        - unit_amount
      properties:
        name:
          description: >-
            The item name or title. <blockquote>This field supports up to 3000
            characters, but <strong>any content beyond 127 characters (including
            spaces) will be truncated. The 127 character limit is reflected in
            the response</strong> representation of this field</blockquote>.
          type: string
          minLength: 1
          maxLength: 3000
          pattern: ^[\S\s]*$
        unit_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The item price or rate per unit. If you specify
                <code>unit_amount</code>,
                <code>purchase_units[].amount.breakdown.item_total</code> is
                required. Must equal <code>unit_amount * quantity</code> for all
                items. <code>unit_amount.value</code> can not be a negative
                number.
        tax:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The item tax for each unit. If <code>tax</code> is specified,
                <code>purchase_units[].amount.breakdown.tax_total</code> is
                required. Must equal <code>tax * quantity</code> for all items.
                <code>tax.value</code> can not be a negative number.
        quantity:
          description: The item quantity. Must be a whole number.
          type: string
          minLength: 0
          maxLength: 10
          pattern: ^[1-9][0-9]{0,9}$
        description:
          description: >-
            <blockquote>This field supports up to 4000 characters, but
            <strong>any content beyond 2048 characters (including spaces) will
            be truncated. The 2048 character limit is reflected in the
            response</strong> representation of this field</blockquote>.
          type: string
          minLength: 0
          maxLength: 4000
          pattern: ^[\S\s]*$
        sku:
          description: The stock keeping unit (SKU) for the item.
          type: string
          minLength: 0
          maxLength: 127
          pattern: ^[\S\s]*$
        url:
          description: >-
            The URL to the item being purchased. Visible to buyer and used in
            buyer experiences.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        category:
          description: The item category type.
          type: string
          enum:
            - DIGITAL_GOODS
            - PHYSICAL_GOODS
            - DONATION
        image_url:
          description: >-
            The URL of the item's image. File type and size restrictions apply.
            An image that violates these restrictions will not be honored.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        upc:
          allOf:
            - $ref: '#/components/schemas/universal_product_code'
            - description: The Universal Product Code of the item.
        billing_plan:
          $ref: '#/components/schemas/order_billing_plan'
    shipping_detail:
      title: shipping_detail
      description: The shipping details.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - description: >-
                The name of the person to whom to ship the items. Supports only
                the `full_name` property.
              not:
                anyOf:
                  - required:
                      - prefix
                  - required:
                      - given_name
                  - required:
                      - surname
                  - required:
                      - middle_name
                  - required:
                      - suffix
                  - required:
                      - alternate_full_name
        email_address:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the recipient of the shipped items, which
                may belong to either the payer, or an alternate contact, for
                delivery.
        phone_number:
          allOf:
            - $ref: '#/components/schemas/phone'
            - description: >-
                The phone number of the recipient of the shipped items, which
                may belong to either the payer, or an alternate contact, for
                delivery. [Format - canonical international [E.164 numbering
                plan](https://www.itu.int/rec/T-REC-E.164/en)]
              not:
                required:
                  - extension_number
        type:
          title: Fulfillment Type
          description: >-
            A classification for the method of purchase fulfillment (e.g
            shipping, in-store pickup, etc). Either `type` or `options` may be
            present, but not both.
          type: string
          enum:
            - SHIPPING
            - PICKUP_IN_PERSON
            - PICKUP_IN_STORE
            - PICKUP_FROM_PERSON
          default: SHIPPING
        options:
          description: >-
            An array of shipping options that the payee or merchant offers to
            the payer to ship or pick up their items.
          type: array
          minItems: 0
          maxItems: 30
          items:
            allOf:
              - $ref: '#/components/schemas/shipping_option'
              - title: shipping_option
                description: >-
                  The option that the payee or merchant offers to the payer to
                  ship or pick up their items.
        address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The address of the person to whom to ship the items. Supports
                only the `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
                `admin_area_1` is required for addresses located in Argentina,
                Brazil, China, Canada, India, Indonesia, Japan, Mexico,
                Thailand, and the United States.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
    supplementary_data:
      title: supplementary_data
      description: >-
        Supplementary data about a payment. This object passes information that
        can be used to improve risk assessments and processing costs, for
        example, by providing Level 2 and Level 3 payment data.
      type: object
      properties:
        card:
          allOf:
            - $ref: '#/components/schemas/card_supplementary_data'
            - description: >-
                Merchants and partners can add Level 2 and 3 data to payments to
                reduce risk and payment processing costs. For more information
                about processing payments, see <a
                href="https://developer.paypal.com/docs/checkout/advanced/processing/">checkout</a>
                or <a
                href="https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/">multiparty
                checkout</a>.
        risk:
          allOf:
            - $ref: '#/components/schemas/risk_supplementary_data'
            - description: >-
                Merchants and partners can add additional customer parameters
                that can help with better fraud protection and reduced risk for
                unbranded card payments.
    card_request:
      title: card_request
      description: >-
        The payment card to use to fund a payment. Can be a credit or debit
        card.<blockquote><strong>Note:</strong> Passing card number, cvv and
        expiry directly via the API requires <a
        href="https://www.pcisecuritystandards.org/pci_security/completing_self_assessment">
        PCI SAQ D compliance</a>. <br>*PayPal offers a mechanism by which you do
        not have to take on the <strong>PCI SAQ D</strong> burden by using
        hosted fields - refer to <a
        href="https://developer.paypal.com/docs/checkout/advanced/integrate/">this
        Integration Guide</a>*.</blockquote>
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/card'
            - not:
                anyOf:
                  - required:
                      - id
                  - required:
                      - last_digits
                  - required:
                      - card_type
                  - required:
                      - type
                  - required:
                      - brand
        - type: object
          properties:
            vault_id:
              allOf:
                - $ref: '#/components/schemas/vault_id'
                - description: >-
                    The PayPal-generated ID for the saved card payment source.
                    Typically stored on the merchant's server.
            single_use_token:
              allOf:
                - $ref: '#/components/schemas/single_use_token'
                - description: >-
                    The PayPal-generated, short-lived, one-time-use token, used
                    to communicate payment information to PayPal for transaction
                    processing.
            stored_credential:
              $ref: '#/components/schemas/card_stored_credential'
            network_token:
              allOf:
                - $ref: '#/components/schemas/network_token_request'
                - description: >-
                    A 3rd party network token refers to a network token that the
                    merchant provisions from and vaults with an external TSP
                    (Token Service Provider) other than PayPal.
            experience_context:
              allOf:
                - $ref: '#/components/schemas/card_experience_context'
                - {}
    token:
      title: token
      description: The tokenized payment source to fund a payment.
      type: object
      required:
        - id
        - type
      properties:
        id:
          description: The PayPal-generated ID for the token.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9a-zA-Z_-]+$
        type:
          description: The tokenization method that generated the ID.
          type: string
          enum:
            - BILLING_AGREEMENT
    paypal_wallet:
      title: paypal_wallet
      description: A resource that identifies a PayPal Wallet is used for payment.
      type: object
      properties:
        vault_id:
          allOf:
            - $ref: '#/components/schemas/vault_id'
            - description: >-
                The PayPal-generated ID for the payment_source stored within the
                Vault.
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: The email address of the PayPal account holder.
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - description: >-
                The name of the PayPal account holder. Supports only the
                `given_name` and `surname` properties.
              not:
                anyOf:
                  - required:
                      - prefix
                  - required:
                      - middle_name
                  - required:
                      - suffix
                  - required:
                      - alternate_full_name
                  - required:
                      - full_name
        phone:
          allOf:
            - $ref: '#/components/schemas/phone_with_type'
            - description: >-
                The phone number of the customer. Available only when you enable
                the **Contact Telephone Number** option in the <a
                href="https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments">**Profile
                & Settings**</a> for the merchant's PayPal account. The
                `phone.phone_number` supports only `national_number`.
        birth_date:
          allOf:
            - $ref: '#/components/schemas/date_no_time'
            - description: >-
                The birth date of the PayPal account holder in `YYYY-MM-DD`
                format.
        tax_info:
          allOf:
            - $ref: '#/components/schemas/tax_info'
            - description: >-
                The tax information of the PayPal account holder. Required only
                for Brazilian PayPal account holder's. Both `tax_id` and
                `tax_id_type` are required.
        address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The address of the PayPal account holder. Supports only the
                `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
                Also referred to as the billing address of the customer.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
        attributes:
          allOf:
            - $ref: '#/components/schemas/paypal_wallet_attributes'
            - title: paypal_wallet_attributes
              description: Additional attributes associated with the use of this wallet.
        experience_context:
          $ref: '#/components/schemas/paypal_wallet_experience_context'
        billing_agreement_id:
          $ref: '#/components/schemas/billing_agreement_id'
        stored_credential:
          $ref: '#/components/schemas/paypal_wallet_stored_credential'
    bancontact_request:
      title: bancontact_request
      description: Information needed to pay using Bancontact.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    blik_request:
      title: blik_request
      description: Information needed to pay using BLIK.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        email:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/blik_experience_context'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
        level_0:
          allOf:
            - $ref: '#/components/schemas/blik_seamless'
            - description: The level_0 integration flow object.
        one_click:
          allOf:
            - $ref: '#/components/schemas/blik_one_click'
            - description: The one-click integration flow object.
    eps_request:
      title: eps_request
      description: Information needed to pay using eps.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    giropay_request:
      title: giropay_request
      description: Information needed to pay using giropay.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    ideal_request:
      title: ideal_request
      description: Information needed to pay using iDEAL.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    mybank_request:
      title: mybank_request
      description: Information needed to pay using MyBank.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    p24_request:
      title: p24_request
      description: Information needed to pay using P24 (Przelewy24).
      type: object
      required:
        - country_code
        - email
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        email:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    sofort_request:
      title: sofort_request
      description: Information needed to pay using Sofort.
      type: object
      required:
        - country_code
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    trustly_request:
      title: trustly_request
      description: Information needed to pay using Trustly.
      type: object
      required:
        - country_code
        - email
        - name
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        email:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    apple_pay_request:
      title: apple_pay_request
      description: Information needed to pay using ApplePay.
      type: object
      properties:
        id:
          description: >-
            ApplePay transaction identifier, this will be the unique identifier
            for this transaction provided by Apple. The pattern is defined by an
            external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 250
          pattern: ^.*$
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - description: Name on the account holder associated with apple pay.
        email_address:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with apple
                pay.
        phone_number:
          allOf:
            - $ref: '#/components/schemas/phone_number_without_country_code'
            - description: >-
                The phone number, in its canonical international [E.164
                numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).
                Supports only the `national_number` property.
        decrypted_token:
          allOf:
            - $ref: '#/components/schemas/apple_pay_decrypted_token_data'
            - description: The decrypted payload details for the apple pay token.
        stored_credential:
          $ref: '#/components/schemas/card_stored_credential'
        vault_id:
          allOf:
            - $ref: '#/components/schemas/vault_id'
            - description: >-
                The PayPal-generated ID for the saved apple pay payment_source.
                This ID should be stored on the merchant's server so the saved
                payment source can be used for future transactions.
        attributes:
          $ref: '#/components/schemas/apple_pay_attributes'
        experience_context:
          $ref: '#/components/schemas/apple_pay_experience_context'
    google_pay_request:
      title: google_pay_request
      description: Information needed to pay using Google Pay.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - description: Name on the account holder associated with Google Pay.
        email_address:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with Google
                Pay.
        phone_number:
          allOf:
            - $ref: >-
                #/components/schemas/phone_with_national_required_and_country_code
            - description: >-
                The phone number of account holder, in its canonical
                international [E.164 numbering plan
                format](https://www.itu.int/rec/T-REC-E.164/en). Supports only
                the `national_number` property.
        card:
          allOf:
            - $ref: '#/components/schemas/google_pay_card'
            - description: The payment card information.
              not:
                anyOf:
                  - required:
                      - number
                  - required:
                      - expiry
                  - required:
                      - last_digits
        decrypted_token:
          allOf:
            - $ref: '#/components/schemas/google_pay_decrypted_token_data'
            - description: The decrypted payload details for the Google Pay token.
        assurance_details:
          allOf:
            - $ref: '#/components/schemas/assurance_details'
            - description: >-
                Information about what validation has been performed on the
                returned payment credentials.
        experience_context:
          $ref: '#/components/schemas/google_pay_experience_context'
    venmo_wallet_request:
      title: venmo_wallet_request
      description: Information needed to pay using Venmo.
      type: object
      properties:
        vault_id:
          allOf:
            - $ref: '#/components/schemas/vault_id'
            - description: >-
                The PayPal-generated ID for the saved Venmo wallet
                payment_source. This ID should be stored on the merchant's
                server so the saved payment source can be used for future
                transactions.
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: The email address of the payer.
        experience_context:
          $ref: '#/components/schemas/venmo_wallet_experience_context'
        attributes:
          allOf:
            - $ref: '#/components/schemas/venmo_wallet_attributes'
            - description: Additional attributes associated with the use of this wallet.
    crypto_request:
      title: crypto_request
      description: Crypto payment used to fund the transaction.
      type: object
      required:
        - country_code
        - experience_context
        - name
      properties:
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code'
            - description: The two-character ISO 3166-1 purchase country code.
        name:
          allOf:
            - $ref: '#/components/schemas/crypto_account_holder_name'
            - description: The name of the account holder associated with Crypto wallet.
        experience_context:
          allOf:
            - $ref: >-
                #/components/schemas/experience_context_base_without_brand_shipping
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
    language:
      description: >-
        The [language tag](https://tools.ietf.org/html/bcp47#section-2) for the
        language in which to localize the error-related strings, such as
        messages, issues, and suggested actions. The tag is made up of the [ISO
        639-2 language
        code](https://www.loc.gov/standards/iso639-2/php/code_list.php), the
        optional [ISO-15924 script
        tag](https://www.unicode.org/iso15924/codelists.html), and the [ISO-3166
        alpha-2 country code](/api/rest/reference/country-codes/) or [M49 region
        code](https://unstats.un.org/unsd/methodology/m49/).
      type: string
      minLength: 2
      maxLength: 10
      pattern: ^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}|[0-9]{3}))?$
    payment_method:
      title: payment_method
      description: The customer and merchant payment preferences.
      type: object
      properties:
        payee_preferred:
          $ref: '#/components/schemas/payee_payment_method_preference'
        standard_entry_class_code:
          description: >-
            NACHA (the regulatory body governing the ACH network) requires that
            API callers (merchants, partners) obtain the consumer’s explicit
            authorization before initiating a transaction. To stay compliant,
            you’ll need to make sure that you retain a compliant authorization
            for each transaction that you originate to the ACH Network using
            this API. ACH transactions are categorized (using SEC codes) by how
            you capture authorization from the Receiver (the person whose bank
            account is being debited or credited). PayPal supports the following
            SEC codes.
          type: string
          enum:
            - TEL
            - WEB
            - CCD
            - PPD
          default: WEB
    stored_payment_source:
      title: stored_payment_source
      description: >-
        Provides additional details to process a payment using a
        `payment_source` that has been stored or is intended to be stored (also
        referred to as stored_credential or card-on-file).<br/>Parameter
        compatibility:<br/><ul><li>`payment_type=ONE_TIME` is compatible only
        with `payment_initiator=CUSTOMER`.</li><li>`usage=FIRST` is compatible
        only with
        `payment_initiator=CUSTOMER`.</li><li>`previous_transaction_reference`
        or `previous_network_transaction_reference` is compatible only with
        `payment_initiator=MERCHANT`.</li><li>Only one of the parameters -
        `previous_transaction_reference` and
        `previous_network_transaction_reference` - can be present in the
        request.</li></ul>
      type: object
      required:
        - payment_initiator
        - payment_type
      properties:
        payment_initiator:
          $ref: '#/components/schemas/payment_initiator'
        payment_type:
          $ref: '#/components/schemas/stored_payment_source_payment_type'
        usage:
          $ref: '#/components/schemas/stored_payment_source_usage_type'
        previous_network_transaction_reference:
          $ref: '#/components/schemas/network_transaction_reference'
    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})$
    card_response:
      title: card_response
      description: >-
        The payment card to use to fund a payment. Card can be a credit or debit
        card.
      type: object
      properties:
        name:
          description: The card holder's name as it appears on the card.
          type: string
          minLength: 2
          maxLength: 300
          pattern: ^[\S\s]*$
        last_digits:
          description: The last digits of the payment card.
          type: string
          minLength: 0
          maxLength: 2147483647
          pattern: ^.*[0-9]{2,}.*$
          readOnly: true
        brand:
          allOf:
            - $ref: '#/components/schemas/card_brand'
            - description: The card brand or network. Typically used in the response.
              readOnly: true
        available_networks:
          description: Array of brands or networks associated with the card.
          type: array
          minItems: 1
          maxItems: 256
          readOnly: true
          items:
            allOf:
              - $ref: '#/components/schemas/card_brand'
              - title: card_brand
        type:
          allOf:
            - $ref: '#/components/schemas/card_type'
            - description: The payment card type.
        authentication_result:
          $ref: '#/components/schemas/authentication_response'
        attributes:
          $ref: '#/components/schemas/card_attributes_response'
        from_request:
          $ref: '#/components/schemas/card_from_request'
        expiry:
          allOf:
            - $ref: '#/components/schemas/date_year_month'
            - description: >-
                The card expiration year and month, in [Internet date
                format](https://tools.ietf.org/html/rfc3339#section-5.6).
        bin_details:
          allOf:
            - $ref: '#/components/schemas/bin_details'
            - description: Bank Identification Number (BIN) details used to fund a payment.
        stored_credential:
          $ref: '#/components/schemas/card_stored_credential'
    paypal_wallet_response:
      title: paypal_wallet_response
      description: The PayPal Wallet response.
      type: object
      properties:
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: The email address of the PayPal account holder.
        account_id:
          allOf:
            - $ref: '#/components/schemas/account_id-2'
            - description: The PayPal-assigned ID for the PayPal account holder.
              readOnly: true
        account_status:
          description: >-
            The account status indicates whether the buyer has verified the
            financial details associated with their PayPal account.
          type: string
          enum:
            - VERIFIED
            - UNVERIFIED
          readOnly: true
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - description: >-
                The name of the PayPal account holder. Supports only the
                `given_name` and `surname` properties.
              not:
                anyOf:
                  - required:
                      - prefix
                  - required:
                      - middle_name
                  - required:
                      - suffix
                  - required:
                      - alternate_full_name
                  - required:
                      - full_name
        phone_type:
          $ref: '#/components/schemas/phone_type'
        phone_number:
          allOf:
            - $ref: '#/components/schemas/phone-3'
            - description: >-
                The phone number, in its canonical international [E.164
                numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).
                Available only when you enable the **Contact Telephone Number**
                option in the <a
                href="https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments">**Profile
                & Settings**</a> for the merchant's PayPal account. Supports
                only the `national_number` property.
        birth_date:
          allOf:
            - $ref: '#/components/schemas/date_no_time'
            - description: >-
                The birth date of the PayPal account holder in `YYYY-MM-DD`
                format.
        business_name:
          description: >-
            The business name of the PayPal account holder (populated for
            business accounts only)
          type: string
          minLength: 0
          maxLength: 300
          pattern: ^.*$
        tax_info:
          allOf:
            - $ref: '#/components/schemas/tax_info'
            - description: >-
                The tax information of the PayPal account holder. Required only
                for Brazilian PayPal account holder's. Both `tax_id` and
                `tax_id_type` are required.
        address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The address of the PayPal account holder. Supports only the
                `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
                Also referred to as the billing address of the customer.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
        attributes:
          $ref: '#/components/schemas/paypal_wallet_attributes_response'
        stored_credential:
          $ref: '#/components/schemas/paypal_wallet_stored_credential'
        experience_status:
          description: >-
            This field indicates the status of PayPal's Checkout experience
            throughout the order lifecycle. The values reflect the current stage
            of the checkout process.
          type: string
          enum:
            - NOT_STARTED
            - IN_PROGRESS
            - CANCELED
            - APPROVED
          readOnly: true
    bancontact:
      title: bancontact
      description: Information used to pay Bancontact.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
        iban_last_chars:
          $ref: '#/components/schemas/iban_last_chars'
        card_last_digits:
          description: The last digits of the card used to fund the Bancontact payment.
          type: string
          minLength: 4
          maxLength: 4
          pattern: ^[0-9]{4}$
    blik:
      title: blik
      description: Information used to pay using BLIK.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        email:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        one_click:
          allOf:
            - $ref: '#/components/schemas/blik_one_click_response'
            - description: The one-click integration flow object.
    eps:
      title: eps
      description: Information used to pay using eps.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
    giropay:
      title: giropay
      description: Information needed to pay using giropay.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
    ideal:
      title: ideal
      description: Information used to pay using iDEAL.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
        iban_last_chars:
          $ref: '#/components/schemas/iban_last_chars'
    mybank:
      title: mybank
      description: Information used to pay using MyBank.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
        iban_last_chars:
          $ref: '#/components/schemas/iban_last_chars'
    p24:
      title: p24
      description: Information used to pay using P24(Przelewy24).
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        email:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - title: name
              description: The two-character ISO 3166-1 country code.
        payment_descriptor:
          description: P24 generated payment description.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^[\S\s]*$
        method_id:
          description: >-
            Numeric identifier of the payment scheme or bank used for the
            payment.
          type: string
          minLength: 1
          maxLength: 300
          pattern: ^[\S\s]*$
        method_description:
          description: Friendly name of the payment scheme or bank used for the payment.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^[\S\s]*$
    sofort:
      title: sofort
      description: Information used to pay using Sofort.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
        iban_last_chars:
          $ref: '#/components/schemas/iban_last_chars'
    trustly:
      title: trustly
      description: Information needed to pay using Trustly.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - title: name
              description: >-
                The name of the account holder associated with this payment
                method.
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: The two-character ISO 3166-1 country code.
        email:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        bic:
          allOf:
            - $ref: '#/components/schemas/bic'
            - description: The bank identification code (BIC).
        iban_last_chars:
          $ref: '#/components/schemas/iban_last_chars'
    apple_pay:
      title: apple_pay
      description: Information needed to pay using ApplePay.
      type: object
      properties:
        id:
          description: >-
            ApplePay transaction identifier, this will be the unique identifier
            for this transaction provided by Apple. The pattern is defined by an
            external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 250
          pattern: ^.*$
        token:
          description: >-
            Encrypted ApplePay token, containing card information. This token
            would be base64encoded. The pattern is defined by an external party
            and supports Unicode.
          type: string
          minLength: 1
          maxLength: 10000
          pattern: ^.*$
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - description: Name on the wallet.
        email_address:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with this
                payment method.
        phone_number:
          allOf:
            - $ref: '#/components/schemas/phone'
            - description: >-
                The phone number, in its canonical international [E.164
                numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).
                Supports only the `national_number` property.
              not:
                anyOf:
                  - required:
                      - country_code
                  - required:
                      - extension_number
        card:
          allOf:
            - $ref: '#/components/schemas/apple_pay_card_response'
            - description: The payment card information.
        attributes:
          allOf:
            - $ref: '#/components/schemas/apple_pay_attributes_response'
            - description: Additional attributes associated with apple pay.
        stored_credential:
          $ref: '#/components/schemas/card_stored_credential'
    google_pay:
      title: google_pay
      description: Google Pay Wallet payment data.
      type: object
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/full_name'
            - description: Name on the account holder associated with Google Pay.
        email_address:
          allOf:
            - $ref: '#/components/schemas/email_address'
            - description: >-
                The email address of the account holder associated with Google
                Pay.
        phone_number:
          allOf:
            - $ref: >-
                #/components/schemas/phone_with_national_required_and_country_code
            - description: >-
                The phone number of account holder, in its canonical
                international [E.164 numbering plan
                format](https://www.itu.int/rec/T-REC-E.164/en). Supports only
                the `national_number` property.
        card:
          allOf:
            - $ref: '#/components/schemas/google_pay_card_response'
            - description: The Card from Google Pay Wallet used to fund the payment.
    venmo_wallet_response:
      title: venmo_wallet_response
      description: Venmo wallet response.
      type: object
      properties:
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: The email address of the payer.
        account_id:
          allOf:
            - $ref: '#/components/schemas/account_id-2'
            - description: >-
                This is an immutable system-generated id for a user's Venmo
                account.
              readOnly: true
        user_name:
          description: The Venmo user name chosen by the user, also know as a Venmo handle.
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]*$
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - description: >-
                The name associated with the Venmo account. Supports only the
                `given_name` and `surname` properties.
              not:
                anyOf:
                  - required:
                      - prefix
                  - required:
                      - middle_name
                  - required:
                      - suffix
                  - required:
                      - alternate_full_name
                  - required:
                      - full_name
        phone_number:
          allOf:
            - $ref: '#/components/schemas/phone-3'
            - description: >-
                The phone number associated with the Venmo account, in its
                canonical international [E.164 numbering plan
                format](https://www.itu.int/rec/T-REC-E.164/en). Supports only
                the `national_number` property.
        address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The address of the payer. Supports only the `address_line_1`,
                `address_line_2`, `admin_area_1`, `admin_area_2`, `postal_code`,
                and `country_code` properties. Also referred to as the billing
                address of the customer.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
        return_flow:
          description: >-
            Merchant preference on how the buyer can navigate back to merchant
            website post approving the transaction on the Venmo App.
          type: string
          enum:
            - AUTO
            - MANUAL
          default: AUTO
          readOnly: true
        attributes:
          $ref: '#/components/schemas/venmo_wallet_attributes_response'
    crypto:
      title: crypto
      description: Pay With Crypto details response object.
      type: object
      properties:
        country_code:
          allOf:
            - $ref: '#/components/schemas/country_code'
            - description: The two-character ISO 3166-1 purchase country code.
        name:
          allOf:
            - $ref: '#/components/schemas/crypto_account_holder_name'
            - description: The name of the account holder associated with Crypto wallet.
        experience_context:
          allOf:
            - $ref: '#/components/schemas/experience_context_base'
            - description: >-
                Customizes the payer experience during the approval process for
                the payment.
              not:
                anyOf:
                  - required:
                      - brand_name
                  - required:
                      - shipping_preference
    item:
      title: item
      description: The details for the items to be purchased.
      type: object
      required:
        - name
        - quantity
        - unit_amount
      properties:
        name:
          description: The item name or title.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        unit_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The item price or rate per unit. If you specify
                <code>unit_amount</code>,
                <code>purchase_units[].amount.breakdown.item_total</code> is
                required. Must equal <code>unit_amount * quantity</code> for all
                items. <code>unit_amount.value</code> can not be a negative
                number.
        tax:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The item tax for each unit. If <code>tax</code> is specified,
                <code>purchase_units[].amount.breakdown.tax_total</code> is
                required. Must equal <code>tax * quantity</code> for all items.
                <code>tax.value</code> can not be a negative number.
        quantity:
          description: The item quantity. Must be a whole number.
          type: string
          minLength: 0
          maxLength: 10
          pattern: ^[1-9][0-9]{0,9}$
        description:
          description: The detailed item description.
          type: string
          minLength: 0
          maxLength: 2048
          pattern: ^[\S\s]*$
        sku:
          description: The stock keeping unit (SKU) for the item.
          type: string
          minLength: 0
          maxLength: 127
          pattern: ^[\S\s]*$
        url:
          description: >-
            The URL to the item being purchased. Visible to buyer and used in
            buyer experiences.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        category:
          description: The item category type.
          type: string
          enum:
            - DIGITAL_GOODS
            - PHYSICAL_GOODS
            - DONATION
        image_url:
          description: >-
            The URL of the item's image. File type and size restrictions apply.
            An image that violates these restrictions will not be honored.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        upc:
          allOf:
            - $ref: '#/components/schemas/universal_product_code'
            - description: The Universal Product Code of the item.
        billing_plan:
          $ref: '#/components/schemas/order_billing_plan'
    shipping_with_tracking_details:
      title: shipping_with_tracking_details
      description: The order shipping details.
      type: object
      allOf:
        - $ref: '#/components/schemas/shipping_detail'
        - type: object
          properties:
            phone_number:
              allOf:
                - $ref: >-
                    #/components/schemas/phone_with_national_required_and_country_code
                - description: >-
                    The phone number of the recipient of the shipped items,
                    which may belong to either the payer, or an alternate
                    contact, for delivery.
            trackers:
              description: An array of trackers for a transaction.
              type: array
              minItems: 0
              maxItems: 32767
              items:
                $ref: '#/components/schemas/tracker'
    payment_collection:
      title: Payment Collection
      description: >-
        The collection of payments, or transactions, for a purchase unit in an
        order. For example, authorized payments, captured payments, and refunds.
      type: object
      properties:
        authorizations:
          description: >-
            An array of authorized payments for a purchase unit. A purchase unit
            can have zero or more authorized payments.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            allOf:
              - $ref: '#/components/schemas/authorization_with_additional_data'
              - title: authorizations
                description: The authorized payment for a purchase unit.
        captures:
          description: >-
            An array of captured payments for a purchase unit. A purchase unit
            can have zero or more captured payments.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            allOf:
              - $ref: '#/components/schemas/capture'
              - title: capture
                description: The captured payment for a purchase unit.
        refunds:
          description: >-
            An array of refunds for a purchase unit. A purchase unit can have
            zero or more refunds.
          type: array
          minItems: 0
          maxItems: 32767
          items:
            allOf:
              - $ref: '#/components/schemas/refund'
              - title: refund
                description: A refund for a purchase unit.
    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
    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
    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:
      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}$
    phone_type:
      title: Phone Type
      description: The phone type.
      type: string
      enum:
        - FAX
        - HOME
        - MOBILE
        - OTHER
        - PAGER
    phone_number_without_country_code:
      title: Phone Number Format Requiring National Number Excluding Country Code
      description: >-
        A structured representation of a phone number conforming to the
        international [E.164 numbering plan
        format](https://www.itu.int/rec/T-REC-E.164/en),requiring only the
        national_number field.
      type: object
      required:
        - national_number
      properties:
        national_number:
          description: >-
            The national number, in its canonical international [E.164 numbering
            plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined
            length of the country calling code (CC) and the national number must
            not be greater than 15 digits. The national number consists of a
            national destination code (NDC) and subscriber number (SN).
          type: string
          minLength: 1
          maxLength: 14
          pattern: ^[0-9]{1,14}?$
    country_code:
      description: >-
        The [2-character ISO 3166-1 code](/api/rest/reference/country-codes/)
        that identifies the country or region.<blockquote><strong>Note:</strong>
        The country code for Great Britain is <code>GB</code> and not
        <code>UK</code> as used in the top-level domain names for that country.
        Use the `C2` country code for China worldwide for comparable
        uncontrolled price (CUP) method, bank card, and cross-border
        transactions.</blockquote>
      type: string
      minLength: 2
      maxLength: 2
      pattern: ^([A-Z]{2}|C2)$
    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.
    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'
            - description: The encrypted PayPal account ID of the merchant.
    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
      default: INSTANT
    universal_product_code:
      title: universal_product_code
      description: The Universal Product Code of the item.
      type: object
      required:
        - code
        - type
      properties:
        type:
          title: Universal Product Code Type
          description: The Universal Product Code type.
          type: string
          enum:
            - UPC-A
            - UPC-B
            - UPC-C
            - UPC-D
            - UPC-E
            - UPC-2
            - UPC-5
        code:
          description: The UPC product code of the item.
          type: string
          minLength: 6
          maxLength: 17
          pattern: ^[0-9]{0,17}$
    order_billing_plan:
      title: order_billing_plan
      description: >-
        Metadata for merchant-managed recurring billing plans. Valid only during
        the saved payment method token or billing agreement creation.
      type: object
      required:
        - billing_cycles
      properties:
        billing_cycles:
          description: >-
            An array of billing cycles for trial billing and regular billing. A
            plan can have at most two trial cycles and only one regular cycle.
          type: array
          minItems: 1
          maxItems: 3
          items:
            $ref: '#/components/schemas/billing_cycle'
        setup_fee:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The setup fee for the recurring plan. Ensure its part of the
                item amount.
        name:
          description: Name of the recurring plan.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[A-Za-z0-9() +',.:-]+$
    email_address:
      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])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-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])+)\])$
    phone:
      title: Phone
      description: >-
        The phone number, in its canonical international [E.164 numbering plan
        format](https://www.itu.int/rec/T-REC-E.164/en).
      type: object
      required:
        - country_code
        - national_number
      properties:
        country_code:
          title: country_calling_code
          description: >-
            The country calling code (CC), in its canonical international [E.164
            numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The
            combined length of the CC and the national number must not be
            greater than 15 digits. The national number consists of a national
            destination code (NDC) and subscriber number (SN).
          type: string
          minLength: 1
          maxLength: 3
          pattern: ^[0-9]{1,3}?$
        national_number:
          description: >-
            The national number, in its canonical international [E.164 numbering
            plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined
            length of the country calling code (CC) and the national number must
            not be greater than 15 digits. The national number consists of a
            national destination code (NDC) and subscriber number (SN).
          type: string
          minLength: 1
          maxLength: 14
          pattern: ^[0-9]{1,14}?$
        extension_number:
          description: The extension number.
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]{1,15}?$
    shipping_option:
      title: shipping_option
      description: >-
        The options that the payee or merchant offers to the payer to ship or
        pick up their items.
      type: object
      required:
        - id
        - label
        - selected
      properties:
        id:
          description: A unique ID that identifies a payer-selected shipping option.
          type: string
          minLength: 0
          maxLength: 127
          pattern: ^[\S\s]*$
        label:
          description: >-
            A description that the payer sees, which helps them choose an
            appropriate shipping option. For example, `Free Shipping`, `USPS
            Priority Shipping`, `Expédition prioritaire USPS`, or `USPS yōuxiān
            fā huò`. Localize this description to the payer's locale.
          type: string
          minLength: 0
          maxLength: 127
          pattern: ^[\S\s]*$
        type:
          allOf:
            - $ref: '#/components/schemas/shipping_type'
            - description: A classification for the method of purchase fulfillment.
        amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: The shipping cost for the selected option.
        selected:
          description: >-
            If the API request sets `selected = true`, it represents the
            shipping option that the payee or merchant expects to be
            pre-selected for the payer when they first view the
            `shipping.options` in the PayPal Checkout experience. As part of the
            response if a `shipping.option` contains `selected=true`, it
            represents the shipping option that the payer selected during the
            course of checkout with PayPal. Only one `shipping.option` can be
            set to `selected=true`.
          type: boolean
    card_supplementary_data:
      title: card_supplementary_data
      description: >-
        Merchants and partners can add Level 2 and 3 data to payments to reduce
        risk and payment processing costs. For more information about processing
        payments, see <a
        href="https://developer.paypal.com/docs/checkout/advanced/processing/">checkout</a>
        or <a
        href="https://developer.paypal.com/docs/multiparty/checkout/advanced/processing/">multiparty
        checkout</a>.
      type: object
      properties:
        level_2:
          $ref: '#/components/schemas/level_2_card_processing_data'
        level_3:
          $ref: '#/components/schemas/level_3_card_processing_data'
    risk_supplementary_data:
      title: risk_supplementary_data
      description: >-
        Additional information necessary to evaluate the risk profile of a
        transaction.
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/participant_metadata'
    card:
      title: card
      description: >-
        The payment card to use to fund a payment. Can be a credit or debit
        card.
      type: object
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/instrument_id'
            - description: The PayPal-generated ID for the card.
              readOnly: true
        name:
          description: The card holder's name as it appears on the card.
          type: string
          minLength: 1
          maxLength: 300
          pattern: ^.{1,300}$
        number:
          description: The primary account number (PAN) for the payment card.
          type: string
          minLength: 13
          maxLength: 19
          pattern: ^[0-9]{13,19}$
        expiry:
          allOf:
            - $ref: '#/components/schemas/date_year_month'
            - description: >-
                The card expiration year and month, in [Internet date
                format](https://tools.ietf.org/html/rfc3339#section-5.6) For
                example: 2028-04
        security_code:
          description: >-
            The three- or four-digit security code of the card. Also known as
            the CVV, CVC, CVN, CVE, or CID. This parameter cannot be present in
            the request when `payment_initiator=MERCHANT`.
          type: string
          minLength: 3
          maxLength: 4
          pattern: ^[0-9]{3,4}$
        last_digits:
          description: The last digits of the payment card.
          type: string
          minLength: 2
          maxLength: 4
          pattern: ^[0-9]{2,4}$
          readOnly: true
        card_type:
          allOf:
            - $ref: '#/components/schemas/card_brand'
            - description: >-
                The card brand or network. Typically used in the response.
                <b>DEPRECATED</b><br><table><tr><th>See</th></tr><tr><td>type</td></tr></table>
              deprecated: true
              readOnly: true
        type:
          allOf:
            - $ref: '#/components/schemas/card_type'
            - description: The payment card type.
        brand:
          allOf:
            - $ref: '#/components/schemas/card_brand'
            - description: The card brand or network. Typically used in the response.
        billing_address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The billing address for this card. Supports only the
                `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
        attributes:
          allOf:
            - $ref: '#/components/schemas/card_attributes'
            - title: card_attributes
              description: Additional attributes associated with the use of this card.
    vault_id:
      title: vault_id
      description: >-
        The PayPal-generated ID for the vaulted payment source. This ID should
        be stored on the merchant's server so the saved payment source can be
        used for future transactions.
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9a-zA-Z_-]+$
    single_use_token:
      title: single_use_token
      description: >-
        The PayPal-generated, short-lived, one-time-use token, used to
        communicate payment information to PayPal for transaction processing.
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9a-zA-Z_-]+$
    card_stored_credential:
      title: card_stored_credential
      description: >-
        Provides additional details to process a payment using a `card` that has
        been stored or is intended to be stored (also referred to as
        stored_credential or card-on-file).<br/>Parameter
        compatibility:<br/><ul><li>`payment_type=ONE_TIME` is compatible only
        with `payment_initiator=CUSTOMER`.</li><li>`usage=FIRST` is compatible
        only with
        `payment_initiator=CUSTOMER`.</li><li>`previous_transaction_reference`
        or `previous_network_transaction_reference` is compatible only with
        `payment_initiator=MERCHANT`.</li><li>Only one of the parameters -
        `previous_transaction_reference` and
        `previous_network_transaction_reference` - can be present in the
        request.</li></ul>
      type: object
      required:
        - payment_initiator
        - payment_type
      properties:
        payment_initiator:
          $ref: '#/components/schemas/payment_initiator'
        payment_type:
          $ref: '#/components/schemas/stored_payment_source_payment_type'
        usage:
          $ref: '#/components/schemas/stored_payment_source_usage_type'
        previous_network_transaction_reference:
          $ref: '#/components/schemas/network_transaction_reference'
    network_token_request:
      title: network_token
      description: The Third Party Network token used to fund a payment.
      type: object
      required:
        - expiry
        - number
      properties:
        number:
          description: Third party network token number.
          type: string
          minLength: 13
          maxLength: 19
          pattern: ^[0-9]{13,19}$
        expiry:
          allOf:
            - $ref: '#/components/schemas/date_year_month'
            - description: >-
                The card expiration year and month, in [Internet date
                format](https://tools.ietf.org/html/rfc3339#section-5.6).
        cryptogram:
          description: >-
            An Encrypted one-time use value that's sent along with Network
            Token. This field is not required to be present for recurring
            transactions.
          type: string
          minLength: 28
          maxLength: 32
          pattern: ^.*$
        eci_flag:
          $ref: '#/components/schemas/eci_flag'
        token_requestor_id:
          description: >-
            A TRID, or a Token Requestor ID, is an identifier used by merchants
            to request network tokens from card networks. A TRID is a precursor
            to obtaining a network token for a credit card primary account
            number (PAN), and will aid in enabling secure card on file (COF)
            payments and reducing fraud.
          type: string
          minLength: 1
          maxLength: 11
          pattern: ^[0-9A-Z_]+$
    card_experience_context:
      title: card_experience_context
      description: Customizes the payer experience during the 3DS Approval for payment.
      type: object
      properties:
        return_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer will be redirected upon successfully
                completing the 3DS challenge.
              type: string
              minLength: 10
              maxLength: 4000
              format: uri
        cancel_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer will be redirected upon cancelling
                the 3DS challenge.
              type: string
              minLength: 10
              maxLength: 4000
              format: uri
    paypal_wallet_attributes:
      title: paypal_wallet_attributes
      description: Additional attributes associated with the use of this PayPal Wallet.
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/paypal_wallet_customer'
        vault:
          allOf:
            - $ref: '#/components/schemas/vault_paypal_wallet_base'
            - description: >-
                Attributes used to provide the instructions during vaulting of
                the PayPal Wallet.
              not:
                required:
                  - shipping
    paypal_wallet_experience_context:
      title: paypal_wallet_experience_context
      description: >-
        Customizes the payer experience during the approval process for payment
        with PayPal.<blockquote><strong>Note:</strong> Partners and Marketplaces
        might configure <code>brand_name</code> and
        <code>shipping_preference</code> during partner account setup, which
        overrides the request values.</blockquote>
      type: object
      properties:
        brand_name:
          description: >-
            The label that overrides the business name in the PayPal account on
            the PayPal site. The pattern is defined by an external party and
            supports Unicode.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^.*$
        locale:
          allOf:
            - $ref: '#/components/schemas/language'
            - description: >-
                The BCP 47-formatted locale of pages that the PayPal payment
                experience shows. PayPal supports a five-character code. For
                example, `da-DK`, `he-IL`, `id-ID`, `ja-JP`, `no-NO`, `pt-BR`,
                `ru-RU`, `sv-SE`, `th-TH`, `zh-CN`, `zh-HK`, or `zh-TW`.
        shipping_preference:
          description: The location from which the shipping address is derived.
          type: string
          enum:
            - GET_FROM_FILE
            - NO_SHIPPING
            - SET_PROVIDED_ADDRESS
          default: GET_FROM_FILE
        contact_preference:
          description: >-
            The preference to display the contact information (buyer’s shipping
            email & phone number) on PayPal's checkout for easy merchant-buyer
            communication.
          type: string
          enum:
            - NO_CONTACT_INFO
            - UPDATE_CONTACT_INFO
            - RETAIN_CONTACT_INFO
          default: NO_CONTACT_INFO
        return_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer will be redirected upon approving a
                payment.
              format: uri
        cancel_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer will be redirected upon cancelling
                the payment approval.
              format: uri
        app_switch_context:
          allOf:
            - $ref: '#/components/schemas/app_switch_context'
            - description: >-
                Merchants can use this to switch buyers from their
                website/application to the PayPal consumer app to review and
                approve the transaction.
        landing_page:
          description: >-
            The type of landing page to show on the PayPal site for customer
            checkout.
          type: string
          enum:
            - LOGIN
            - GUEST_CHECKOUT
            - NO_PREFERENCE
            - BILLING
          default: NO_PREFERENCE
        user_action:
          description: >-
            Configures a <strong>Continue</strong> or <strong>Pay Now</strong>
            checkout flow.
          type: string
          enum:
            - CONTINUE
            - PAY_NOW
          default: CONTINUE
        payment_method_preference:
          description: The merchant-preferred payment methods.
          type: string
          enum:
            - UNRESTRICTED
            - IMMEDIATE_PAYMENT_REQUIRED
          default: UNRESTRICTED
        order_update_callback_config:
          allOf:
            - $ref: '#/components/schemas/callback_configuration'
            - description: >-
                Merchant provided Order Update callback configuration for PayPal
                Wallet.PayPal will call back merchant when the specified event
                occurs.we recommend merchants to pass both the shipping_options
                and shipping_address callback events. Not supported when
                `shipping.type` is specified or when
                'application_context.shipping_preference' is set as
                'NO_SHIPPING' or 'SET_PROVIDED_ADDRESS'.
    billing_agreement_id:
      title: billing_agreement_id
      description: >-
        The PayPal billing agreement ID. References an approved recurring
        payment for goods or services.
      type: string
      minLength: 2
      maxLength: 128
      pattern: ^[a-zA-Z0-9-]+$
    paypal_wallet_stored_credential:
      title: paypal_wallet_stored_credential
      description: >-
        Provides additional details to process a payment using the PayPal wallet
        billing agreement or a vaulted payment method that has been stored or is
        intended to be stored.
      type: object
      required:
        - payment_initiator
      properties:
        payment_initiator:
          $ref: '#/components/schemas/payment_initiator'
        charge_pattern:
          allOf:
            - $ref: '#/components/schemas/charge_pattern'
            - description: >-
                DEPRECATED. Expected business/pricing model for the billing
                agreement, Please use usage_pattern instead.
                <b>DEPRECATED</b><br><table><tr><th>See</th></tr><tr><td>usage_pattern</td></tr></table>
              deprecated: true
        usage_pattern:
          $ref: '#/components/schemas/charge_pattern'
        usage:
          $ref: '#/components/schemas/stored_payment_source_usage_type'
    full_name:
      title: name
      description: The full name representation like Mr J Smith.
      type: string
      minLength: 3
      maxLength: 300
      pattern: ^[\S\s]*$
    country_code-2:
      description: >-
        The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/)
        that identifies the country or region.<blockquote><strong>Note:</strong>
        The country code for Great Britain is <code>GB</code> and not
        <code>UK</code> as used in the top-level domain names for that country.
        Use the `C2` country code for China worldwide for comparable
        uncontrolled price (CUP) method, bank card, and cross-border
        transactions.</blockquote>
      type: string
      minLength: 2
      maxLength: 2
      pattern: ^([A-Z]{2}|C2)$
    experience_context_base:
      title: experience_context_base
      description: >-
        Customizes the payer experience during the approval process for the
        payment.
      type: object
      properties:
        brand_name:
          description: >-
            The label that overrides the business name in the PayPal account on
            the PayPal site. The pattern is defined by an external party and
            supports Unicode.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^.*$
        locale:
          allOf:
            - $ref: '#/components/schemas/language'
            - description: >-
                The BCP 47-formatted locale of pages that the PayPal payment
                experience shows. PayPal supports a five-character code. For
                example, `da-DK`, `he-IL`, `id-ID`, `ja-JP`, `no-NO`, `pt-BR`,
                `ru-RU`, `sv-SE`, `th-TH`, `zh-CN`, `zh-HK`, or `zh-TW`.
        shipping_preference:
          description: The location from which the shipping address is derived.
          type: string
          enum:
            - GET_FROM_FILE
            - NO_SHIPPING
            - SET_PROVIDED_ADDRESS
          default: GET_FROM_FILE
        return_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                approves the payment.
              format: uri
        cancel_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                cancels the payment.
              format: uri
    blik_experience_context:
      title: blik_experience_context
      description: >-
        Customizes the payer experience during the approval process for the BLIK
        payment.
      type: object
      allOf:
        - $ref: '#/components/schemas/experience_context_base'
        - type: object
          properties:
            consumer_ip:
              allOf:
                - $ref: '#/components/schemas/ip_address'
                - description: >-
                    The IP address of the consumer. It could be either IPv4 or
                    IPv6.
            consumer_user_agent:
              description: >-
                The payer's User Agent. For example, Mozilla/5.0 (Macintosh;
                Intel Mac OS X x.y; rv:42.0).
              type: string
              minLength: 1
              maxLength: 256
              pattern: ^.*$
    blik_seamless:
      title: blik_level_0
      description: Information used to pay using BLIK level_0 flow.
      type: object
      required:
        - auth_code
      properties:
        auth_code:
          description: The 6-digit code used to authenticate a consumer within BLIK.
          type: string
          minLength: 6
          maxLength: 6
          pattern: ^[0-9]{6}$
    blik_one_click:
      title: blik_one_click
      description: Information used to pay using BLIK one-click flow.
      type: object
      required:
        - consumer_reference
      properties:
        auth_code:
          description: The 6-digit code used to authenticate a consumer within BLIK.
          type: string
          minLength: 6
          maxLength: 6
          pattern: ^[0-9]{6}$
        consumer_reference:
          description: >-
            The merchant generated, unique reference serving as a primary
            identifier for accounts connected between Blik and a merchant.
          type: string
          minLength: 3
          maxLength: 64
          pattern: ^[ -~]{3,64}$
        alias_label:
          description: >-
            A bank defined identifier used as a display name to allow the payer
            to differentiate between multiple registered bank accounts.
          type: string
          minLength: 8
          maxLength: 35
          pattern: ^[ -~]{8,35}$
        alias_key:
          description: >-
            A Blik-defined identifier for a specific Blik-enabled bank account
            that is associated with a given merchant. Used only in conjunction
            with a Consumer Reference.
          type: string
          minLength: 1
          maxLength: 19
          pattern: ^[0-9]+$
    bic:
      title: BIC
      description: >-
        The business identification code (BIC). In payments systems, a BIC is
        used to identify a specific business, most commonly a bank.
      type: string
      minLength: 8
      maxLength: 11
      pattern: ^[A-Z-a-z0-9]{4}[A-Z-a-z]{2}[A-Z-a-z0-9]{2}([A-Z-a-z0-9]{3})?$
    apple_pay_decrypted_token_data:
      title: apple_pay_decrypted_token_data
      description: >-
        Information about the Payment data obtained by decrypting Apple Pay
        token.
      type: object
      required:
        - tokenized_card
      properties:
        transaction_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The transaction amount for the payment that the payer has
                approved on apple platform.
        tokenized_card:
          allOf:
            - $ref: '#/components/schemas/card'
            - description: Apple Pay tokenized credit card used to pay.
              not:
                anyOf:
                  - required:
                      - id
                  - required:
                      - security_code
                  - required:
                      - last_digits
                  - required:
                      - authentication_results
                  - required:
                      - attributes
        device_manufacturer_id:
          description: >-
            Apple Pay Hex-encoded device manufacturer identifier. The pattern is
            defined by an external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^.*$
        payment_data_type:
          description: >-
            Indicates the type of payment data passed, in case of Non China the
            payment data is 3DSECURE and for China it is EMV.
          type: string
          enum:
            - 3DSECURE
            - EMV
        payment_data:
          allOf:
            - $ref: '#/components/schemas/apple_pay_payment_data'
            - description: >-
                Apple Pay payment data object which contains the cryptogram,
                eci_indicator and other data.
    apple_pay_attributes:
      title: apple_pay_attributes
      description: Additional attributes associated with apple pay.
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/customer'
        vault:
          $ref: '#/components/schemas/v3_vault_instruction_base'
    apple_pay_experience_context:
      title: apple_pay_experience_context
      description: >-
        Customizes the payer experience during the approval process for the
        payment.
      type: object
      required:
        - cancel_url
        - return_url
      properties:
        return_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                approves the payment.
              format: uri
        cancel_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                cancels the payment.
              format: uri
    phone_with_national_required_and_country_code:
      title: >-
        Phone Number Schema with Required National Number and Optional Country
        Code
      description: >-
        A structured representation of a phone number conforming to the
        international [E.164 numbering plan
        format](https://www.itu.int/rec/T-REC-E.164/en),requiring the
        national_number field and optionally supporting the country_code.
      type: object
      required:
        - national_number
      properties:
        country_code:
          title: country_calling_code
          description: >-
            The country calling code (CC), in its canonical international [E.164
            numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The
            combined length of the CC and the national number must not be
            greater than 15 digits. The national number consists of a national
            destination code (NDC) and subscriber number (SN).
          type: string
          minLength: 1
          maxLength: 3
          pattern: ^[0-9]{1,3}?$
        national_number:
          description: >-
            The national number, in its canonical international [E.164 numbering
            plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined
            length of the country calling code (CC) and the national number must
            not be greater than 15 digits. The national number consists of a
            national destination code (NDC) and subscriber number (SN).
          type: string
          minLength: 1
          maxLength: 14
          pattern: ^[0-9]{1,14}?$
    google_pay_card:
      title: google_pay_card
      description: >-
        The payment card used to fund a Google Pay payment. Can be a credit or
        debit card.
      type: object
      properties:
        name:
          description: The card holder's name as it appears on the card.
          type: string
          minLength: 1
          maxLength: 300
          pattern: ^.{1,300}$
        number:
          description: The primary account number (PAN) for the payment card.
          type: string
          minLength: 13
          maxLength: 19
          pattern: ^[0-9]{13,19}$
        expiry:
          allOf:
            - $ref: '#/components/schemas/date_year_month'
            - description: >-
                The card expiration year and month, in [Internet date
                format](https://tools.ietf.org/html/rfc3339#section-5.6).
        last_digits:
          description: The last digits of the payment card.
          type: string
          minLength: 2
          maxLength: 4
          pattern: ^[0-9]{2,4}$
          readOnly: true
        type:
          allOf:
            - $ref: '#/components/schemas/card_type'
            - description: The payment card type.
        brand:
          allOf:
            - $ref: '#/components/schemas/card_brand'
            - description: The card brand or network. Typically used in the response.
        billing_address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The billing address for this card. Supports only the
                `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
    google_pay_decrypted_token_data:
      title: google_pay_decrypted_token_data
      description: >-
        Details shared by Google for the merchant to be shared with PayPal. This
        is required to process the transaction using the Google Pay payment
        method.
      type: object
      required:
        - authentication_method
        - card
        - payment_method
      properties:
        message_id:
          description: >-
            A unique ID that identifies the message in case it needs to be
            revoked or located at a later time.
          type: string
          minLength: 1
          maxLength: 250
          pattern: ^.*$
        message_expiration:
          description: >-
            Date and time at which the message expires as UTC milliseconds since
            epoch. Integrators should reject any message that's expired.
          type: string
          minLength: 13
          maxLength: 13
          pattern: ^\d{13}$
        payment_method:
          description: >-
            The type of the payment credential. Currently, only CARD is
            supported.
          type: string
          enum:
            - CARD
        card:
          description: Google Pay tokenized credit card used to pay.
          allOf:
            - $ref: '#/components/schemas/google_pay_card'
            - required:
                - number
                - expiry
        authentication_method:
          description: Authentication Method which is used for the card transaction.
          type: string
          enum:
            - PAN_ONLY
            - CRYPTOGRAM_3DS
        cryptogram:
          description: >-
            Base-64 cryptographic identifier used by card schemes to validate
            the token verification result. This is a conditionally required
            field if authentication_method is CRYPTOGRAM_3DS.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^[\S\s]*$
        eci_indicator:
          description: >-
            Electronic Commerce Indicator may not always be present. It is only
            returned for tokens on the Visa card network. This value is passed
            through in the payment authorization request.
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^.*$
    assurance_details:
      title: assurance_details
      description: >-
        Information about cardholder possession validation and cardholder
        identification and verifications (ID&V).
      type: object
      properties:
        account_verified:
          description: >-
            If true, indicates that Cardholder possession validation has been
            performed on returned payment credential.
          type: boolean
          default: false
        card_holder_authenticated:
          description: >-
            If true, indicates that identification and verifications (ID&V) was
            performed on the returned payment credential.If false, the same
            risk-based authentication can be performed as you would for card
            transactions. This risk-based authentication can include, but not
            limited to, step-up with 3D Secure protocol if applicable.
          type: boolean
          default: false
    google_pay_experience_context:
      title: google_pay_experience_context
      description: >-
        Customizes the payer experience during the approval process for the
        payment.
      type: object
      required:
        - cancel_url
        - return_url
      properties:
        return_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                approves the payment.
              format: uri
        cancel_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                cancels the payment.
              format: uri
    venmo_wallet_experience_context:
      title: venmo_wallet_experience_context
      description: >-
        Customizes the buyer experience during the approval process for payment
        with Venmo.<blockquote><strong>Note:</strong> Partners and Marketplaces
        might configure <code>shipping_preference</code> during partner account
        setup, which overrides the request values.</blockquote>
      type: object
      properties:
        brand_name:
          description: >-
            The business name of the merchant. The pattern is defined by an
            external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^.*$
        shipping_preference:
          description: The location from which the shipping address is derived.
          type: string
          enum:
            - GET_FROM_FILE
            - NO_SHIPPING
            - SET_PROVIDED_ADDRESS
          default: GET_FROM_FILE
        order_update_callback_config:
          allOf:
            - $ref: '#/components/schemas/callback_configuration'
            - description: >-
                Merchant provided Order Update callback configuration for Venmo
                Wallet.Venmo will call back merchant when the specified event
                occurs.we recommend merchants to pass both the shipping_options
                and shipping_address callback events. Not supported when
                `shipping.type` is specified or when
                'application_context.shipping_preference' is set as
                'NO_SHIPPING' or 'SET_PROVIDED_ADDRESS'.
        user_action:
          description: >-
            Configures a <strong>Continue</strong> or <strong>Pay Now</strong>
            checkout flow.
          type: string
          enum:
            - CONTINUE
            - PAY_NOW
          default: CONTINUE
    venmo_wallet_attributes:
      title: venmo_wallet_attributes
      description: Additional attributes associated with the use of this Venmo Wallet.
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/venmo_wallet_customer'
        vault:
          allOf:
            - $ref: '#/components/schemas/vault_venmo_wallet_base'
            - description: >-
                Attributes used to provide the instructions during vaulting of
                the Venmo Wallet.
    crypto_account_holder_name:
      title: crypto_account_holder_name
      description: Crypto account holder name.
      type: object
      required:
        - given_name
        - surname
      properties:
        prefix:
          description: The prefix, or title, to the account holder's name.
          type: string
          minLength: 1
          maxLength: 140
          pattern: ^[\S\s]*$
        given_name:
          description: >-
            When the account holder is a person, the account holder's given, or
            first, name.
          type: string
          minLength: 1
          maxLength: 140
          pattern: ^[\S\s]*$
        surname:
          description: >-
            When the account holder is a person, the account holder's surname or
            family name. Also known as the last name. Required when the account
            holder is a person. Use also to store multiple surnames including
            the matronymic, or mother's, surname.
          type: string
          minLength: 1
          maxLength: 140
          pattern: ^[\S\s]*$
        middle_name:
          description: >-
            When the account holder is a person, the account holder's middle
            name. Use also to store multiple middle names including the
            patronymic, or father's, middle name.
          type: string
          minLength: 1
          maxLength: 140
          pattern: ^[\S\s]*$
    experience_context_base_without_brand_shipping:
      title: experience_context_base
      description: >-
        Customizes the payer experience during the approval process for the
        payment.
      type: object
      required:
        - cancel_url
        - return_url
      properties:
        locale:
          allOf:
            - $ref: '#/components/schemas/language'
            - description: >-
                The BCP 47-formatted locale of pages that the PayPal payment
                experience shows. PayPal supports a five-character code. For
                example, `da-DK`, `he-IL`, `id-ID`, `ja-JP`, `no-NO`, `pt-BR`,
                `ru-RU`, `sv-SE`, `th-TH`, `zh-CN`, `zh-HK`, or `zh-TW`.
        return_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                approves the payment.
              format: uri
        cancel_url:
          allOf:
            - $ref: '#/components/schemas/url'
            - description: >-
                The URL where the customer is redirected after the customer
                cancels the payment.
              format: uri
    payee_payment_method_preference:
      title: payee_payment_method_preference
      description: The merchant-preferred payment methods.
      type: string
      enum:
        - UNRESTRICTED
        - IMMEDIATE_PAYMENT_REQUIRED
      default: UNRESTRICTED
    payment_initiator:
      title: payment_initiator
      description: The person or party who initiated or triggered the payment.
      type: string
      enum:
        - CUSTOMER
        - MERCHANT
    stored_payment_source_payment_type:
      title: stored_payment_source_payment_type
      description: Indicates the type of the stored payment_source payment.
      type: string
      enum:
        - ONE_TIME
        - RECURRING
        - UNSCHEDULED
    stored_payment_source_usage_type:
      title: stored_payment_source_usage_type
      description: >-
        Indicates if this is a `first` or `subsequent` payment using a stored
        payment source (also referred to as stored credential or card on file).
      type: string
      enum:
        - FIRST
        - SUBSEQUENT
        - DERIVED
      default: DERIVED
    network_transaction_reference:
      title: network_transaction_reference
      description: Reference values used by the card network to identify a transaction.
      type: object
      required:
        - id
      allOf:
        - $ref: '#/components/schemas/network_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
    card_type:
      title: card_type
      description: Type of card. i.e Credit, Debit and so on.
      type: string
      enum:
        - CREDIT
        - DEBIT
        - PREPAID
        - STORE
        - UNKNOWN
    authentication_response:
      title: authentication_response
      description: Results of Authentication such as 3D Secure.
      type: object
      properties:
        liability_shift:
          $ref: '#/components/schemas/liability_shift'
        three_d_secure:
          $ref: '#/components/schemas/three_d_secure_authentication_response'
    card_attributes_response:
      title: card_attributes_response
      description: Additional attributes associated with the use of this card.
      type: object
      properties:
        vault:
          $ref: '#/components/schemas/card_vault_response'
    card_from_request:
      title: card_from_request
      description: Representation of card details as received in the request.
      type: object
      properties:
        expiry:
          allOf:
            - $ref: '#/components/schemas/date_year_month'
            - description: >-
                The card expiration year and month, in [Internet date
                format](https://tools.ietf.org/html/rfc3339#section-5.6).
        last_digits:
          description: The last digits of the payment card.
          type: string
          minLength: 2
          maxLength: 4
          pattern: ^.*[0-9]{2,}.*$
          readOnly: true
    date_year_month:
      description: >-
        The year and month, in ISO-8601 `YYYY-MM` date format. See [Internet
        date and time format](https://tools.ietf.org/html/rfc3339#section-5.6).
      type: string
      minLength: 7
      maxLength: 7
      pattern: ^[0-9]{4}-(0[1-9]|1[0-2])$
    bin_details:
      title: bin_details
      description: Bank Identification Number (BIN) details used to fund a payment.
      type: object
      properties:
        bin:
          description: >-
            The Bank Identification Number (BIN) signifies the number that is
            being used to identify the granular level details (except the PII
            information) of the card.
          type: string
          minLength: 1
          maxLength: 25
          pattern: ^[0-9]+$
        issuing_bank:
          description: The issuer of the card instrument.
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^[\S\s]*$
        bin_country_code:
          allOf:
            - $ref: '#/components/schemas/country_code-2'
            - description: >-
                The [two-character ISO-3166-1 country
                code](/docs/integration/direct/rest/country-codes/) of the bank.
        products:
          description: >-
            The type of card product assigned to the BIN by the issuer. These
            values are defined by the issuer and may change over time. Some
            examples include: PREPAID_GIFT, CONSUMER, CORPORATE.
          type: array
          minItems: 1
          maxItems: 256
          items:
            title: products
            description: This value provides the category of the BIN.
            type: string
            minLength: 1
            maxLength: 255
            pattern: ^[\S\s]*$
    account_id-2:
      description: >-
        The PayPal payer ID, which is a masked version of the PayPal account
        number intended for use with third parties. The account number is
        reversibly encrypted and a proprietary variant of Base32 is used to
        encode the result.
      type: string
      minLength: 13
      maxLength: 13
      pattern: ^[2-9A-HJ-NP-Z]{13}$
    phone-3:
      title: Phone Number
      description: >-
        The phone number in its canonical international [E.164 numbering plan
        format](https://www.itu.int/rec/T-REC-E.164/en).
      type: object
      required:
        - national_number
      properties:
        national_number:
          description: >-
            The national number, in its canonical international [E.164 numbering
            plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined
            length of the country calling code (CC) and the national number must
            not be greater than 15 digits. The national number consists of a
            national destination code (NDC) and subscriber number (SN).
          type: string
          minLength: 1
          maxLength: 14
          pattern: ^[0-9]{1,14}?$
    paypal_wallet_attributes_response:
      title: paypal_wallet_attributes_response
      description: Additional attributes associated with the use of a PayPal Wallet.
      type: object
      properties:
        vault:
          $ref: '#/components/schemas/paypal_wallet_vault_response'
        cobranded_cards:
          description: >-
            An array of merchant cobranded cards used by buyer to complete an
            order. This array will be present if a merchant has onboarded their
            cobranded card with PayPal and provided corresponding label(s).
          type: array
          minItems: 0
          maxItems: 25
          items:
            allOf:
              - $ref: '#/components/schemas/cobranded_card'
              - title: cobranded_card
    iban_last_chars:
      title: iban_last_chars
      description: The last characters of the IBAN used to pay.
      type: string
      minLength: 4
      maxLength: 34
      pattern: ^.*[a-zA-Z0-9]{4}.*$
    blik_one_click_response:
      title: blik_one_click_response
      description: Information used to pay using BLIK one-click flow.
      type: object
      properties:
        consumer_reference:
          description: >-
            The merchant generated, unique reference serving as a primary
            identifier for accounts connected between Blik and a merchant.
          type: string
          minLength: 3
          maxLength: 64
          pattern: ^[ -~]{3,64}$
    apple_pay_card_response:
      title: apple_pay_card_response
      description: The Card from Apple Pay Wallet used to fund the payment.
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/card_response'
            - not:
                anyOf:
                  - required:
                      - id
                  - required:
                      - last_n_chars
                  - required:
                      - issuer
        - type: object
          properties:
            name:
              description: The card holder's name as it appears on the card.
              type: string
              minLength: 0
              maxLength: 300
              pattern: ^[\S\s]*$
            billing_address:
              allOf:
                - $ref: '#/components/schemas/address_portable'
                - description: >-
                    The billing address for this card. Supports only the
                    `address_line_1`, `address_line_2`, `admin_area_1`,
                    `admin_area_2`, `postal_code`, and `country_code`
                    properties.
                  not:
                    anyOf:
                      - required:
                          - address_line_3
                      - required:
                          - admin_area_3
                      - required:
                          - admin_area_4
                      - required:
                          - address_details
            country_code:
              allOf:
                - $ref: '#/components/schemas/country_code-2'
                - description: The country where the card is issued.
    apple_pay_attributes_response:
      title: apple_pay_attributes_response
      description: Additional attributes associated with the use of Apple Pay.
      type: object
      properties:
        vault:
          $ref: '#/components/schemas/vault_response'
    google_pay_card_response:
      title: google_pay_card_response
      description: >-
        The payment card to use to fund a Google Pay payment response. Can be a
        credit or debit card.
      type: object
      properties:
        name:
          description: The card holder's name as it appears on the card.
          type: string
          minLength: 1
          maxLength: 300
          pattern: ^.{1,300}$
        last_digits:
          description: The last digits of the payment card.
          type: string
          minLength: 2
          maxLength: 4
          pattern: ^[0-9]{2,4}$
          readOnly: true
        type:
          allOf:
            - $ref: '#/components/schemas/card_type'
            - description: The payment card type.
        brand:
          allOf:
            - $ref: '#/components/schemas/card_brand'
            - description: The card brand or network. Typically used in the response.
        billing_address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The billing address for this card. Supports only the
                `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
        authentication_result:
          $ref: '#/components/schemas/authentication_response'
    venmo_wallet_attributes_response:
      title: venmo_wallet_attributes_response
      description: Additional attributes associated with the use of a Venmo Wallet.
      type: object
      properties:
        vault:
          $ref: '#/components/schemas/venmo_vault_response'
    tracker:
      title: tracker
      description: The tracking response on creation of tracker.
      type: object
      allOf:
        - type: object
          properties:
            id:
              description: The tracker id.
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
              readOnly: true
            status:
              $ref: '#/components/schemas/tracker_status'
            items:
              description: An array of details of items in the shipment.
              type: array
              minItems: 0
              maxItems: 32767
              items:
                allOf:
                  - $ref: '#/components/schemas/tracker_item'
                  - title: tracker_item
                    description: Items in a shipment.
            links:
              description: An array of request-related HATEOAS links.
              type: array
              minItems: 0
              maxItems: 32767
              readOnly: true
              items:
                allOf:
                  - $ref: '#/components/schemas/link_description-2'
                  - title: link_description
                    description: >-
                      A request-related [HATEOAS
                      link](/api/rest/responses/#hateoas-links).
        - $ref: '#/components/schemas/activity_timestamps'
    authorization_with_additional_data:
      title: authorization_with_additional_data
      description: >-
        The authorization with additional payment details, such as risk
        assessment and processor response. These details are populated only for
        certain payment methods.
      type: object
      allOf:
        - $ref: '#/components/schemas/authorization'
        - type: object
          properties:
            processor_response:
              allOf:
                - $ref: '#/components/schemas/processor_response'
                - description: The processor response for card transactions.
                  readOnly: true
    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'
    refund:
      title: refund
      description: The refund information.
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/refund_status'
        - title: Refund Properties
          description: >-
            The detailed properties of the refund transaction, including
            identifiers, amounts, breakdowns, and associated metadata.
          type: object
          properties:
            id:
              description: The PayPal-generated ID for the refund.
              type: string
              minLength: 0
              maxLength: 2147483647
              pattern: ^[\S\s]*$
              readOnly: true
            amount:
              allOf:
                - $ref: '#/components/schemas/money'
                - description: The amount that the payee refunded to the payer.
                  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: 1
              maxLength: 255
              pattern: ^[A-Za-z0-9-_.,]*$
            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]+$
            note_to_payer:
              description: >-
                The reason for the refund. 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
            seller_payable_breakdown:
              title: Seller Payable Breakdown
              description: The breakdown of the refund.
              type: object
              readOnly: true
              properties:
                gross_amount:
                  allOf:
                    - $ref: '#/components/schemas/money'
                    - description: The amount that the payee refunded to the payer.
                      readOnly: true
                paypal_fee:
                  allOf:
                    - $ref: '#/components/schemas/money'
                    - description: >-
                        The PayPal fee that was refunded to the payer in the
                        currency of the transaction. This fee might not match
                        the PayPal fee that the payee paid when the payment was
                        captured.
                      readOnly: true
                paypal_fee_in_receivable_currency:
                  allOf:
                    - $ref: '#/components/schemas/money'
                    - description: >-
                        The PayPal fee that was refunded to the payer in the
                        receivable currency. Returned only in cases when the
                        receivable currency is different from transaction
                        currency. Example 'CNY'.
                      readOnly: true
                net_amount:
                  allOf:
                    - $ref: '#/components/schemas/money'
                    - description: >-
                        The net amount that the payee's account is debited in
                        the transaction currency. The net amount is calculated
                        as <code>gross_amount</code> minus
                        <code>paypal_fee</code> minus
                        <code>platform_fees</code>.
                      readOnly: true
                net_amount_in_receivable_currency:
                  allOf:
                    - $ref: '#/components/schemas/money'
                    - description: >-
                        The net amount that the payee's account is debited in
                        the receivable currency. Returned only in cases when the
                        receivable currency is different from transaction
                        currency. Example 'CNY'.
                      readOnly: true
                platform_fees:
                  description: >-
                    An array of platform or partner fees, commissions, or
                    brokerage fees for the refund.
                  type: array
                  minItems: 0
                  maxItems: 1
                  items:
                    allOf:
                      - $ref: '#/components/schemas/platform_fee'
                      - title: platform_fee
                net_amount_breakdown:
                  description: >-
                    An array of breakdown values for the net amount. Returned
                    when the currency of the refund is different from the
                    currency of the PayPal account where the payee holds their
                    funds.
                  type: array
                  minItems: 0
                  maxItems: 32767
                  readOnly: true
                  items:
                    allOf:
                      - $ref: '#/components/schemas/net_amount_breakdown_item'
                      - title: net_amount_breakdown_item
                total_refunded_amount:
                  allOf:
                    - $ref: '#/components/schemas/money'
                    - description: >-
                        The total amount refunded from the original capture to
                        date. For example, if a payer makes a $100 purchase and
                        was refunded $20 a week ago and was refunded $30 in this
                        refund, the `gross_amount` is $30 for this refund and
                        the `total_refunded_amount` is $50.
            payer:
              allOf:
                - $ref: '#/components/schemas/payee_base'
                - description: >-
                    The details associated with the merchant for this
                    transaction.
                  readOnly: true
            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
        - allOf:
            - $ref: '#/components/schemas/activity_timestamps'
    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
    billing_cycle:
      title: billing_cycle
      description: >-
        The billing cycle providing details of the billing frequency, amount,
        duration and if the billing cycle is a free, discounted or regular
        billing cycle. The sequence of the billing cycle will be in the
        following order - free trial billing cycle(s), discounted trial billing
        cycle(s), regular billing cycle(s).
      type: object
      required:
        - tenure_type
      properties:
        tenure_type:
          description: >-
            The tenure type of the billing cycle identifies if the billing cycle
            is a trial(free or discounted) or regular billing cycle.
          type: string
          enum:
            - REGULAR
            - TRIAL
        pricing_scheme:
          allOf:
            - $ref: '#/components/schemas/pricing_scheme'
            - description: >-
                The active pricing scheme for this billing cycle. A free trial
                billing cycle does not require a pricing scheme.
        total_cycles:
          description: >-
            The number of times this billing cycle gets executed. Trial billing
            cycles can only be executed a finite number of times (value between
            <code>1</code> and <code>999</code> for <code>total_cycles</code>).
            Regular billing cycles can be executed infinite times (value of
            <code>0</code> for <code>total_cycles</code>) or a finite number of
            times (value between <code>1</code> and <code>999</code> for
            <code>total_cycles</code>).
          type: integer
          minimum: 0
          maximum: 999
          default: 1
        sequence:
          description: >-
            The order in which this cycle is to run among other billing cycles.
            For example, a trial billing cycle has a `sequence` of `1` while a
            regular billing cycle has a `sequence` of `2`, so that trial cycle
            runs before the regular cycle.
          type: integer
          minimum: 1
          maximum: 3
          default: 1
        start_date:
          allOf:
            - $ref: '#/components/schemas/date_no_time'
            - description: >-
                The start date for the billing cycle, in YYYY-MM-DD. This field
                should be not be provided if the billing cycle starts at the
                time of checkout. When this field is not provided, the billing
                cycle amount will be included in any data validations confirming
                that the total provided by the merchant match the sum of
                individual items due at the time of checkout. Only one billing
                cycle (with sequence equal to 1) can have a no start date.
    shipping_type:
      title: shipping_type
      description: A classification for the method of purchase fulfillment.
      type: string
      enum:
        - SHIPPING
        - PICKUP
        - PICKUP_IN_STORE
        - PICKUP_FROM_PERSON
      default: SHIPPING
    level_2_card_processing_data:
      title: level_2
      description: >-
        The level 2 card processing data collections. If your merchant account
        has been configured for Level 2 processing this field will be passed to
        the processor on your behalf. Please contact your PayPal Technical
        Account Manager to define level 2 data for your business.
      type: object
      properties:
        invoice_id:
          description: >-
            Use this field to pass a purchase identification value of up to 127
            ASCII characters. The length of this field will be adjusted to meet
            network specifications (25chars for Visa and Mastercard, 17chars for
            Amex), and the original invoice ID will still be displayed in your
            existing reports.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\w‘\-.,":;\!?]*$
        tax_total:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >
                Use this field to break down the amount of tax included in the
                total purchase amount. The value provided here will not add to
                the total purchase amount. The value can't be negative, and in
                most cases, it must be greater than zero in order to qualify for
                lower interchange rates. 
                 Value, by country, is:

                    UK. A county.
                    US. A state.
                    Canada. A province.
                    Japan. A prefecture.
                    Switzerland. A kanton.
    level_3_card_processing_data:
      title: level_3
      description: >-
        The level 3 card processing data collections, If your merchant account
        has been configured for Level 3 processing this field will be passed to
        the processor on your behalf. Please contact your PayPal Technical
        Account Manager to define level 3 data for your business.
      type: object
      properties:
        shipping_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                Use this field to break down the shipping cost included in the
                total purchase amount. The value provided here will not add to
                the total purchase amount. The value cannot be negative.
        duty_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                Use this field to break down the duty amount included in the
                total purchase amount. The value provided here will not add to
                the total purchase amount. The value cannot be negative.
        discount_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                Use this field to break down the discount amount included in the
                total purchase amount. The value provided here will not add to
                the total purchase amount. The value cannot be negative.
        shipping_address:
          allOf:
            - $ref: '#/components/schemas/address_portable'
            - description: >-
                The address of the person to whom to ship the items. Supports
                only the `address_line_1`, `address_line_2`, `admin_area_1`,
                `admin_area_2`, `postal_code`, and `country_code` properties.
              not:
                anyOf:
                  - required:
                      - address_line_3
                  - required:
                      - admin_area_3
                  - required:
                      - admin_area_4
                  - required:
                      - address_details
        ships_from_postal_code:
          description: Use this field to specify the postal code of the shipping location.
          type: string
          minLength: 1
          maxLength: 60
          pattern: ^[a-zA-Z0-9_'.-]*$
        line_items:
          description: >-
            A list of the items that were purchased with this payment. If your
            merchant account has been configured for Level 3 processing this
            field will be passed to the processor on your behalf.
          type: array
          minItems: 1
          maxItems: 100
          items:
            allOf:
              - $ref: '#/components/schemas/line_item'
              - title: line_item
    participant_metadata:
      title: participant_metadata
      description: Profile information of the sender or receiver.
      type: object
      properties:
        ip_address:
          allOf:
            - $ref: '#/components/schemas/ip_address'
            - description: >-
                The consumer's IP address, which can be represented in either
                IPv4 or IPv6 format.
    instrument_id:
      description: The identifier of the instrument.
      type: string
      minLength: 1
      maxLength: 256
      pattern: ^[A-Za-z0-9-_.+=]+$
    card_attributes:
      title: card_attributes
      description: Additional attributes associated with the use of this card.
      type: object
      properties:
        customer:
          $ref: '#/components/schemas/card_customer'
        vault:
          allOf:
            - $ref: '#/components/schemas/vault_instruction_base'
            - description: Instruction to vault the card based on the specified strategy.
        verification:
          allOf:
            - $ref: '#/components/schemas/card_verification'
            - description: >-
                Instruction to optionally verify the card based on the specified
                strategy.
    eci_flag:
      description: >-
        Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data
        elements that indicate the transaction was processed electronically.
        This should be passed on the authorization transaction to the
        Gateway/Processor.
      type: string
      enum:
        - MASTERCARD_NON_3D_SECURE_TRANSACTION
        - MASTERCARD_ATTEMPTED_AUTHENTICATION_TRANSACTION
        - MASTERCARD_FULLY_AUTHENTICATED_TRANSACTION
        - FULLY_AUTHENTICATED_TRANSACTION
        - ATTEMPTED_AUTHENTICATION_TRANSACTION
        - NON_3D_SECURE_TRANSACTION
    url:
      description: Describes the URL.
      type: string
      minLength: 0
      maxLength: 2147483647
      format: uri
    paypal_wallet_customer:
      title: paypal_wallet_customer
      description: The details about a customer in PayPal's system of record.
      type: object
      allOf:
        - $ref: '#/components/schemas/customer'
        - type: object
          properties:
            merchant_customer_id:
              description: >-
                Merchants and partners may already have a data-store where their
                customer information is persisted. Use merchant_customer_id to
                associate the PayPal-generated customer.id to your
                representation of a customer.
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^[0-9a-zA-Z-_.^*$@#]+$
    vault_paypal_wallet_base:
      title: vault_paypal_wallet_base
      description: >-
        Resource consolidating common request and response attributes for
        vaulting PayPal Wallet.
      type: object
      required:
        - usage_type
      allOf:
        - $ref: '#/components/schemas/vault_instruction_base'
        - type: object
          properties:
            description:
              description: >-
                The description displayed to PayPal consumer on the approval
                flow for PayPal, as well as on the PayPal payment token
                management experience on PayPal.com.
              type: string
              minLength: 1
              maxLength: 128
              pattern: ^[\S\s]*$
            usage_pattern:
              title: PayPal Payment Token Usage Pattern
              description: Expected business/pricing model for the billing agreement.
              type: string
              enum:
                - IMMEDIATE
                - DEFERRED
                - RECURRING_PREPAID
                - RECURRING_POSTPAID
                - THRESHOLD_PREPAID
                - THRESHOLD_POSTPAID
                - SUBSCRIPTION_PREPAID
                - SUBSCRIPTION_POSTPAID
                - UNSCHEDULED_PREPAID
                - UNSCHEDULED_POSTPAID
                - INSTALLMENT_PREPAID
                - INSTALLMENT_POSTPAID
            shipping:
              allOf:
                - $ref: '#/components/schemas/shipping_detail'
                - description: The shipping address for the Payer.
                  not:
                    required:
                      - options
            usage_type:
              title: PayPal Payment Token Usage Type
              description: The usage type associated with the PayPal payment token.
              type: string
              enum:
                - MERCHANT
                - PLATFORM
            customer_type:
              title: PayPal Payment Token Customer Type
              description: >-
                The customer type associated with the PayPal payment token. This
                is to indicate whether the customer acting on the merchant /
                platform is either a business or a consumer.
              type: string
              enum:
                - CONSUMER
                - BUSINESS
              default: CONSUMER
            permit_multiple_payment_tokens:
              description: >-
                Create multiple payment tokens for the same payer,
                merchant/platform combination. Use this when the customer has
                not logged in at merchant/platform. The payment token thus
                generated, can then also be used to create the customer account
                at merchant/platform. Use this also when multiple payment tokens
                are required for the same payer, different customer at
                merchant/platform. This helps to identify customers distinctly
                even though they may share the same PayPal account. This only
                applies to PayPal payment source.
              type: boolean
              default: false
    app_switch_context:
      title: Merchant App Switch Details & Preferences
      description: >-
        Merchant provided details of the native app or mobile web browser to
        facilitate buyer's app switch to the PayPal consumer app.
      type: object
      properties:
        native_app:
          $ref: '#/components/schemas/native_app_context'
        mobile_web:
          $ref: '#/components/schemas/mobile_web_context'
    callback_configuration:
      title: callback_configuration
      description: CallBack Configuration that the merchant can provide to PayPal/Venmo.
      type: object
      required:
        - callback_events
        - callback_url
      properties:
        callback_events:
          description: >-
            An array of callback events merchant can subscribe to for the
            corresponding callback url.
          type: array
          minItems: 1
          maxItems: 5
          uniqueItems: true
          items:
            title: callback events
            description: CallBack event.
            type: string
            enum:
              - SHIPPING_ADDRESS
              - SHIPPING_OPTIONS
        callback_url:
          description: >-
            Merchant provided CallBack url.PayPal/Venmo will use this url to
            call the merchant back when the events occur .PayPal/Venmo expects a
            secured url usually in the https format.merchant can append the cart
            id or other params part of the url as query or path params.
          type: string
          minLength: 10
          maxLength: 2040
          format: uri
    charge_pattern:
      description: Expected business/pricing model for the billing agreement.
      type: string
      enum:
        - IMMEDIATE
        - DEFERRED
        - RECURRING_PREPAID
        - RECURRING_POSTPAID
        - THRESHOLD_PREPAID
        - THRESHOLD_POSTPAID
        - SUBSCRIPTION_PREPAID
        - SUBSCRIPTION_POSTPAID
        - UNSCHEDULED_PREPAID
        - UNSCHEDULED_POSTPAID
        - INSTALLMENT_PREPAID
        - INSTALLMENT_POSTPAID
    ip_address:
      title: IP Address
      description: >-
        An Internet Protocol address (IP address). This address assigns a
        numerical label to each device that is connected to a computer network
        through the Internet Protocol. Supports IPv4 and IPv6 addresses.
      type: string
      minLength: 7
      maxLength: 39
      pattern: >-
        ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$
    apple_pay_payment_data:
      title: apple_pay_payment_data
      description: >-
        Information about the decrypted apple pay payment data for the token
        like cryptogram, eci indicator.
      type: object
      properties:
        cryptogram:
          description: >-
            Online payment cryptogram, as defined by 3D Secure. The pattern is
            defined by an external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^.*$
        eci_indicator:
          description: >-
            ECI indicator, as defined by 3- Secure. The pattern is defined by an
            external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 256
          pattern: ^.*$
        emv_data:
          description: >-
            Encoded Apple Pay EMV Payment Structure used for payments in China.
            The pattern is defined by an external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^.*$
        pin:
          description: >-
            Bank Key encrypted Apple Pay PIN. The pattern is defined by an
            external party and supports Unicode.
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^.*$
    customer:
      title: customer
      description: >-
        This object represents a merchant’s customer, allowing them to store
        contact details, and track all payments associated with the same
        customer.
      type: object
      properties:
        id:
          $ref: '#/components/schemas/merchant_partner_customer_id'
        email_address:
          allOf:
            - $ref: '#/components/schemas/email'
            - description: >-
                Email address of the customer as provided to the merchant or on
                file with the merchant. Email Address is required if you are
                processing the transaction using PayPal Guest Processing which
                is offered to select partners and merchants.
        phone:
          allOf:
            - $ref: '#/components/schemas/phone_with_type'
            - description: >-
                The phone number of the customer as provided to the merchant or
                on file with the merchant. The `phone.phone_number` supports
                only `national_number`.
        name:
          allOf:
            - $ref: '#/components/schemas/name'
            - description: >-
                The full name of the customer as provided to the merchant or on
                file with the merchant.
              not:
                anyOf:
                  - required:
                      - prefix
                  - required:
                      - middle_name
                  - required:
                      - suffix
                  - required:
                      - alternate_full_name
                  - required:
                      - full_name
    v3_vault_instruction_base:
      title: v3_vault_instruction_base
      description: >-
        Base vaulting specification. The object can be extended for specific use
        cases within each payment_source that supports vaulting.
      type: object
      required:
        - store_in_vault
      properties:
        store_in_vault:
          $ref: '#/components/schemas/store_in_vault_instruction'
    venmo_wallet_customer:
      title: venmo_wallet_customer
      description: >-
        This object represents a merchant’s customer, allowing them to store
        contact details, and track all payments associated with the same
        customer.
      type: object
      allOf:
        - $ref: '#/components/schemas/customer'
        - type: object
    vault_venmo_wallet_base:
      title: vault_Venmo_wallet_base
      description: >-
        Resource consolidating common request and response attirbutes for
        vaulting Venmo Wallet.
      type: object
      required:
        - usage_type
      allOf:
        - $ref: '#/components/schemas/v3_vault_instruction_base'
        - type: object
          properties:
            description:
              description: >-
                The description displayed to Venmo consumer on the approval flow
                for Venmo, as well as on the Venmo payment token management
                experience on Venmo.com.
              type: string
              minLength: 1
              maxLength: 128
              pattern: ^[a-zA-Z0-9_'\-., :;\!?"]*$
            usage_pattern:
              title: Venmo Payment Token Usage Pattern
              description: Expected business/pricing model for the billing agreement.
              type: string
              enum:
                - IMMEDIATE
                - DEFERRED
                - RECURRING_PREPAID
                - RECURRING_POSTPAID
                - THRESHOLD_PREPAID
                - THRESHOLD_POSTPAID
            usage_type:
              title: Venmo Payment Token Usage Type
              description: The usage type associated with the Venmo payment token.
              type: string
              enum:
                - MERCHANT
                - PLATFORM
            customer_type:
              title: Venmo Payment Token Customer Type
              description: >-
                The customer type associated with the Venmo payment token. This
                is to indicate whether the customer acting on the merchant /
                platform is either a business or a consumer.
              type: string
              enum:
                - CONSUMER
                - BUSINESS
              default: CONSUMER
            permit_multiple_payment_tokens:
              description: >-
                Create multiple payment tokens for the same payer,
                merchant/platform combination. Use this when the customer has
                not logged in at merchant/platform. The payment token thus
                generated, can then also be used to create the customer account
                at merchant/platform. Use this also when multiple payment tokens
                are required for the same payer, different customer at
                merchant/platform. This helps to identify customers distinctly
                even though they may share the same Venmo account.
              type: boolean
              default: false
    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]+$
    liability_shift:
      title: liability_shift
      description: Liability shift indicator. The outcome of the issuer's authentication.
      type: string
      enum:
        - 'NO'
        - POSSIBLE
        - UNKNOWN
    three_d_secure_authentication_response:
      title: three_d_secure_authentication_response
      description: Results of 3D Secure Authentication.
      type: object
      properties:
        authentication_status:
          allOf:
            - $ref: '#/components/schemas/pares_status'
            - description: The outcome of the issuer's authentication.
        enrollment_status:
          allOf:
            - $ref: '#/components/schemas/enrolled'
            - description: Status of authentication eligibility.
    card_vault_response:
      title: card_vault_response
      description: The details about a saved Card payment source.
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/vault_response'
            - not:
                required:
                  - customer
        - type: object
          properties:
            customer:
              allOf:
                - $ref: '#/components/schemas/card_customer'
    paypal_wallet_vault_response:
      title: paypal_wallet_vault_response
      description: The details about a saved PayPal Wallet payment source.
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/vault_response'
            - not:
                required:
                  - customer
        - type: object
          properties:
            customer:
              $ref: '#/components/schemas/paypal_wallet_customer'
    cobranded_card:
      title: cobranded_card
      description: Details about the merchant cobranded card used for order purchase.
      type: object
      properties:
        labels:
          description: Array of labels for the cobranded card.
          type: array
          minItems: 1
          maxItems: 25
          items:
            title: label
            description: Label for the cobranded card.
            type: string
            minLength: 1
            maxLength: 256
            pattern: ^[\S\s]*$
        payee:
          allOf:
            - $ref: '#/components/schemas/payee_base'
            - title: payee
              description: Merchant associated with the purchase.
              not:
                required:
                  - client_id
        amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: Amount that was charged to the cobranded card.
    vault_response:
      title: vault_response
      description: The details about a saved payment source.
      type: object
      properties:
        id:
          description: The PayPal-generated ID for the saved payment source.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\S\s]*$
        status:
          title: Vault Status
          description: The vault status.
          type: string
          enum:
            - VAULTED
            - CREATED
            - APPROVED
        customer:
          allOf:
            - $ref: '#/components/schemas/customer'
            - not:
                anyOf:
                  - required:
                      - email_address
                  - required:
                      - phone
        links:
          description: An array of request-related HATEOAS links.
          type: array
          minItems: 1
          maxItems: 10
          readOnly: true
          items:
            allOf:
              - $ref: '#/components/schemas/link_description'
              - title: link_description
                description: >-
                  A request-related [HATEOAS
                  link](/docs/api/reference/api-responses/#hateoas-links).
    venmo_vault_response:
      title: venmo_vault_response
      description: The details about a saved venmo payment source.
      type: object
      allOf:
        - allOf:
            - $ref: '#/components/schemas/vault_response'
            - not:
                required:
                  - customer
        - type: object
          properties:
            customer:
              allOf:
                - $ref: '#/components/schemas/venmo_wallet_customer'
    tracker_status:
      title: Tracker Status
      description: The status of the item shipment.
      type: string
      enum:
        - CANCELLED
        - SHIPPED
    tracker_item:
      title: tracker_item
      description: The details of the items in the shipment.
      type: object
      properties:
        name:
          description: The item name or title.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        quantity:
          description: The item quantity. Must be a whole number.
          type: string
          minLength: 1
          maxLength: 10
          pattern: ^[1-9][0-9]{0,9}$
        sku:
          description: >-
            The stock keeping unit (SKU) for the item. This can contain unicode
            characters.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        url:
          description: >-
            The URL to the item being purchased. Visible to buyer and used in
            buyer experiences.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        image_url:
          description: >-
            The URL of the item's image. File type and size restrictions apply.
            An image that violates these restrictions will not be honored.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        upc:
          allOf:
            - $ref: '#/components/schemas/universal_product_code'
            - description: The Universal Product Code of the item.
    authorization:
      title: authorization
      description: The authorized payment transaction.
      type: object
      allOf:
        - $ref: '#/components/schemas/authorization_status'
        - type: object
          properties:
            id:
              description: The PayPal-generated ID for the authorized 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 authorized 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
            expiration_time:
              allOf:
                - $ref: '#/components/schemas/date_time'
                - description: >-
                    The date and time when the authorized payment expires, in
                    [Internet date and time
                    format](https://tools.ietf.org/html/rfc3339#section-5.6).
                  readOnly: true
            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
        - $ref: '#/components/schemas/activity_timestamps'
    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'
          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'
          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
          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'
          readOnly: true
    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
          readOnly: true
        status_details:
          allOf:
            - $ref: '#/components/schemas/capture_status_details'
            - description: The details of the captured payment status.
              readOnly: true
    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
          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
    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
    refund_status:
      title: refund_status
      description: The refund status with details.
      type: object
      properties:
        status:
          title: Refund Status With Details
          description: The status of the refund.
          type: string
          enum:
            - CANCELLED
            - FAILED
            - PENDING
            - COMPLETED
          readOnly: true
        status_details:
          allOf:
            - $ref: '#/components/schemas/refund_status_details'
            - description: The details of the refund status.
              readOnly: true
    net_amount_breakdown_item:
      title: net_amount_breakdown
      description: >-
        The net amount. Returned when the currency of the refund is different
        from the currency of the PayPal account where the merchant holds their
        funds.
      type: object
      properties:
        payable_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: The net amount debited from the merchant's PayPal account.
              readOnly: true
        converted_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: The converted payable amount.
              readOnly: true
        exchange_rate:
          allOf:
            - $ref: '#/components/schemas/exchange_rate'
            - description: >-
                The exchange rate that determines the amount that was debited
                from the merchant's PayPal account.
              readOnly: true
    pricing_scheme:
      title: pricing_scheme
      description: The pricing scheme details.
      type: object
      required:
        - pricing_model
      properties:
        price:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The price the customer will be charged based on the pricing
                model
        pricing_model:
          description: The pricing model for the billing cycle.
          type: string
          enum:
            - FIXED
            - VARIABLE
            - AUTO_RELOAD
        reload_threshold_amount:
          allOf:
            - $ref: '#/components/schemas/money'
            - description: >-
                The threshold amount on which the reload charge would be
                triggered. This will be associated with the account-balance
                where if the account-balance goes below this amount then
                customer would incur reload charge.
    line_item:
      title: line_item
      description: >-
        The line items for this purchase. If your merchant account has been
        configured for Level 3 processing this field will be passed to the
        processor on your behalf.
      type: object
      allOf:
        - $ref: '#/components/schemas/item_without_category_tax_or_amount'
        - type: object
          properties:
            unit_amount:
              allOf:
                - $ref: '#/components/schemas/money'
                - description: >-
                    The item price or rate per unit. Must equal
                    <code>unit_amount * quantity</code> for all items.
                    <code>unit_amount.value</code> can not be a negative number.
            tax:
              allOf:
                - $ref: '#/components/schemas/money'
                - description: >-
                    The item tax for each unit. Must equal <code>tax *
                    quantity</code> for all items. <code>tax.value</code> can
                    not be a negative number.
            commodity_code:
              description: >-
                Code used to classify items purchased and track the total amount
                spent across various categories of products and services.
                Different corporate purchasing organizations may use different
                standards, but the United Nations Standard Products and Services
                Code (UNSPSC) is frequently used.
              type: string
              minLength: 1
              maxLength: 12
              pattern: ^[a-zA-Z0-9_'.-]*$
            discount_amount:
              allOf:
                - $ref: '#/components/schemas/money'
                - description: >-
                    Use this field to break down the discount amount included in
                    the total purchase amount. The value provided here will not
                    add to the total purchase amount. The value cannot be
                    negative.
            total_amount:
              allOf:
                - $ref: '#/components/schemas/money'
                - description: >-
                    The subtotal for all items. Must equal the sum of
                    (items[].unit_amount * items[].quantity) for all items.
                    item_total.value can not be a negative number.
            unit_of_measure:
              description: >-
                Unit of measure is a standard used to express the magnitude of a
                quantity in international trade. Most commonly used (but not
                limited to) examples are: Acre (ACR), Ampere (AMP), Centigram
                (CGM), Centimetre (CMT), Cubic inch (INQ), Cubic metre (MTQ),
                Fluid ounce (OZA), Foot (FOT), Hour (HUR), Item (ITM), Kilogram
                (KGM), Kilometre (KMT), Kilowatt (KWT), Liquid gallon (GLL),
                Liter (LTR), Pounds (LBS), Square foot (FTK).
              type: string
              minLength: 1
              maxLength: 12
              pattern: ^[a-zA-Z0-9_'.-]*$
    card_customer:
      title: card_customer
      description: The details about a customer in PayPal's system of record.
      type: object
      allOf:
        - $ref: '#/components/schemas/customer'
        - type: object
          properties:
            merchant_customer_id:
              description: >-
                Merchants and partners may already have a data-store where their
                customer information is persisted. Use merchant_customer_id to
                associate the PayPal-generated customer.id to your
                representation of a customer.
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^[0-9a-zA-Z-_.^*$@#]+$
    vault_instruction_base:
      title: vault_instruction_base
      description: >-
        Basic vault instruction specification that can be extended by specific
        payment sources that supports vaulting.
      type: object
      properties:
        store_in_vault:
          $ref: '#/components/schemas/store_in_vault_instruction'
    card_verification:
      title: Card Verification
      description: >-
        The API caller can opt in to verify the card through PayPal offered
        verification services (e.g. Smart Dollar Auth, 3DS).
      type: object
      properties:
        method:
          title: card_verification
          description: The method used for card verification.
          type: string
          enum:
            - SCA_ALWAYS
            - SCA_WHEN_REQUIRED
            - 3D_SECURE
            - AVS_CVV
          default: SCA_WHEN_REQUIRED
    native_app_context:
      title: App Switch Preferences on Native App
      description: >-
        Merchant provided, buyer's native app preferences to app switch to the
        PayPal consumer app.
      type: object
      properties:
        os_type:
          description: Operating System type of the device that the buyer is using.
          type: string
          enum:
            - ANDROID
            - IOS
            - OTHER
          readOnly: true
        os_version:
          description: Operating System version of the device that the buyer is using.
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^.*$
          readOnly: true
    mobile_web_context:
      title: Mobile Web App Switch Context
      description: >-
        Buyer's mobile web browser context to app switch to the PayPal consumer
        app.
      type: object
      properties:
        return_flow:
          description: >-
            Merchant preference on how the buyer can navigate back to merchant
            website post approving the transaction on the PayPal App.
          type: string
          enum:
            - AUTO
            - MANUAL
          default: AUTO
          readOnly: true
        buyer_user_agent:
          description: >-
            User agent from the request originating from the buyer's device.
            This will be used to identify the buyer's operating system and
            browser versions. NOTE: Merchants must not alter or modify the
            buyer's device user agent.
          type: string
          minLength: 1
          maxLength: 512
          pattern: ^.*$
    merchant_partner_customer_id:
      title: merchant_partner_customer_id
      description: The unique ID for a customer generated by PayPal.
      type: string
      minLength: 1
      maxLength: 22
      pattern: ^[0-9a-zA-Z_-]+$
    store_in_vault_instruction:
      title: store_in_vault_instruction
      description: Defines how and when the payment source gets vaulted.
      type: string
      enum:
        - ON_SUCCESS
    pares_status:
      description: >-
        Transactions status result identifier. The outcome of the issuer's
        authentication.
      type: string
      enum:
        - 'Y'
        - 'N'
        - U
        - A
        - C
        - R
        - D
        - I
    enrolled:
      description: Status of Authentication eligibility.
      type: string
      enum:
        - 'Y'
        - 'N'
        - U
        - B
    authorization_status:
      title: authorization_status
      description: The status fields and status details for an authorized payment.
      type: object
      properties:
        status:
          title: Authorization Status
          description: The status for the authorized payment.
          type: string
          enum:
            - CREATED
            - CAPTURED
            - DENIED
            - PARTIALLY_CAPTURED
            - VOIDED
            - PENDING
          readOnly: true
        status_details:
          allOf:
            - $ref: '#/components/schemas/authorization_status_details'
            - description: The details of the authorized order pending status.
              readOnly: true
    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
    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]*$
    refund_status_details:
      title: refund_status_details
      description: The details of the refund status.
      type: object
      properties:
        reason:
          title: Refund Incomplete Reason
          description: The reason why the refund has the `PENDING` or `FAILED` status.
          type: string
          enum:
            - ECHECK
    item_without_category_tax_or_amount:
      title: item
      description: The details for the items to be purchased.
      type: object
      required:
        - name
        - quantity
      properties:
        name:
          description: The item name or title.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[\S\s]*$
        quantity:
          description: The item quantity. Must be a whole number.
          type: string
          minLength: 0
          maxLength: 10
          pattern: ^[1-9][0-9]{0,9}$
        description:
          description: The detailed item description.
          type: string
          minLength: 0
          maxLength: 2048
          pattern: ^[\S\s]*$
        sku:
          description: The stock keeping unit (SKU) for the item.
          type: string
          minLength: 0
          maxLength: 127
          pattern: ^[\S\s]*$
        url:
          description: >-
            The URL to the item being purchased. Visible to buyer and used in
            buyer experiences.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        image_url:
          description: >-
            The URL of the item's image. File type and size restrictions apply.
            An image that violates these restrictions will not be honored.
          type: string
          minLength: 1
          maxLength: 2048
          format: uri
        upc:
          allOf:
            - $ref: '#/components/schemas/universal_product_code'
            - description: The Universal Product Code of the item.
        billing_plan:
          $ref: '#/components/schemas/order_billing_plan'
    authorization_status_details:
      title: authorization_status_details
      description: The details of the authorized payment status.
      type: object
      properties:
        reason:
          title: Authorization Incomplete Reason
          description: The reason why the authorized status is `PENDING`.
          type: string
          enum:
            - PENDING_REVIEW
            - DECLINED_BY_RISK_FRAUD_FILTERS
  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.
    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: Manage payments and checkout workflow.
            https://uri.paypal.com/services/payments/payment/reference-transaction: Permission to initiate reference transaction
            https://uri.paypal.com/services/payments/initiatepayment: Initiates payments and checkout workflows.
            https://uri.paypal.com/services/payments/orders/deprecating-jssdk-migration-for-limited-merchants: >-
              Allows client-side integration on Create, Get, Patch, Authorize &
              Capture Order endpoints.
            https://uri.paypal.com/services/payments/orders/client_sdk_orders_api: >-
              Enables secure client-side integration on confirm payment source
              endpoint
            https://uri.paypal.com/services/payments/orders/provision-card: Manage card provisioning merchants.

````