> This page is for Afterpay.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.cash.app/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.cash.app/_mcp/server.

### Schema (`response.body`)

```yaml
openapi: 3.1.0
info:
  title: API
  version: 1.0.0
paths:
  /authorize-payment-schema-test:
    get:
      operationId: subpackageSchemas_get-authorize-payment-schema-test
      summary: Get AuthorizePayment Schema Test
      description: AuthorizePayment schema.
      tags:
        - subpackage_schemas
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Schemas_get-authorize-payment-schema-test_Response_200
tags:
  - name: subpackage_schemas
servers:
  - url: https://global-api-sandbox.afterpay.com
    description: Sandbox
  - url: https://global-api.afterpay.com
    description: Production
components:
  schemas:
    MoneyCurrency:
      type: string
      enum:
        - AUD
        - NZD
        - USD
        - CAD
        - GBP
      title: MoneyCurrency
    Money:
      type: object
      properties:
        amount:
          type: string
          description: >-
            The amount as a string representation of a decimal number, rounded
            to 2 decimal places.
        currency:
          $ref: '#/components/schemas/MoneyCurrency'
      required:
        - amount
        - currency
      description: Object containing amount and currency
      title: Money
    ContactCountryCode:
      type: string
      enum:
        - AU
        - NZ
        - US
        - CA
        - GB
      title: ContactCountryCode
    Contact:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        line1:
          type: string
          maxLength: 128
          description: First line of the address
        line2:
          type: string
          maxLength: 128
          description: 'Second line of the address '
        area1:
          type: string
          maxLength: 128
          description: |-
            - AU: Suburb
            - NZ: Town or City
            - UK: Postal Town
            - US: City
            - Canada: City
        area2:
          type: string
          maxLength: 128
          description: |-
            - NZ: suburb
            - UK: village or local area.
        region:
          type: string
          maxLength: 128
          description: |-
            - AU: State 
            - NZ: Region
            - UK: County
            - US: State
            - CA: Province or Territory
        postcode:
          type: string
          maxLength: 128
        countryCode:
          $ref: '#/components/schemas/ContactCountryCode'
        phoneNumber:
          type: string
          description: >-
            The phone number, in [E.123](https://en.wikipedia.org/wiki/E.123)
            format.
      required:
        - name
        - line1
        - area1
        - region
        - postcode
        - countryCode
      description: >
        This data model is used for storing an individual's contact information.
        Mandatory fields such as **name**, **line1**, **area1**, **region**,
        **postcode**, and **countryCode** help in capturing vital information
        about a user's location. 


        The `line2` and `area2` fields provide additional space for extended
        addresses, while `phoneNumber` can be used to store the user's contact
        number.



        <Warning Title="Important Note">
          The `area1`, `area2` and `region` properties feature localized terminology based on country. Refer to the property descriptions for insights on each country's specific usage 
        </Warning>
      title: Contact
    InitiationActor:
      type: string
      enum:
        - CUSTOMER
        - MERCHANT
      description: The party who initiated the order
      title: InitiationActor
    Initiation:
      type: object
      properties:
        actor:
          $ref: '#/components/schemas/InitiationActor'
          description: The party who initiated the order
      required:
        - actor
      title: Initiation
    SubscriptionType:
      type: string
      enum:
        - FIXED
        - VARIABLE
      title: SubscriptionType
    SubscriptionInterval:
      type: string
      enum:
        - DAY
        - WEEK
        - MONTH
        - YEAR
      title: SubscriptionInterval
    Subscription:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SubscriptionType'
        interval:
          $ref: '#/components/schemas/SubscriptionInterval'
        intervalCount:
          type: integer
          description: >-
            A positive integer that specifies the number of `interval` units in
            the merchant's subscription billing cadence. For example, `interval:
            MONTH` with `intervalCount: 1` means monthly billing;
            `intervalCount: 3` means every three months. This field describes
            the cadence only—it does not schedule charges or control the
            customer's Afterpay installment schedule.
      title: Subscription
    Enrichments:
      type: object
      properties:
        initiation:
          $ref: '#/components/schemas/Initiation'
          description: Who initiated the order
        subscription:
          $ref: '#/components/schemas/Subscription'
          description: Metadata on the subscription details
      required:
        - initiation
      title: Enrichments
    AuthorizePayment:
      type: object
      properties:
        requestid:
          type: string
          format: uuid
          description: >-
            A unique request ID, required for idempotent retries. We recommend
            that merchants generate a Universally Unique Identifier (UUID) for
            each unique request.
        token:
          type: string
        merchantReference:
          type: string
          description: >-
            The reference/order ID that this payment corresponds to in the
            merchant's system.


            **Note:** Providing a new value updates any value previously set in
            the Create Checkout request.
        amount:
          $ref: '#/components/schemas/Money'
          description: >-
            **Required for express checkout only.** Amount to be checked against
            the value in the create checkout request. If the amounts do not
            match, then the request is rejected and an error specific to this
            scenario is returned.
        isCheckoutAdjusted:
          type: boolean
          description: >-
            **Express checkout only.** The isCheckoutAdjusted field can be used
            to allow the order amount to be changed after the checkout flow.
            Used for express checkout.
        paymentScheduleChecksum:
          type: string
          description: >-
            **Express checkout only.** A unique value representing the payment
            schedule that must be provided when there has been changes since the
            initial order creation (retrieved from checkout widget).
        items:
          type: array
          items:
            description: Any type
          description: >-
            **Express checkout only.** An array of order items that have been
            updated to be provided if it has changed since the initial order
            creation.
        shipping:
          $ref: '#/components/schemas/Contact'
          description: >-
            **Express checkout only.** The shipping address if it has changed
            since the initial order creation.
        enrichments:
          $ref: '#/components/schemas/Enrichments'
        grantId:
          type: string
          description: >-
            The Afterpay or Cash App Pay on-file grant ID. Required when
            processing a payment using a previously stored on-file grant.
      required:
        - token
      title: AuthorizePayment
    Schemas_get-authorize-payment-schema-test_Response_200:
      type: object
      properties:
        authorize_payment:
          $ref: '#/components/schemas/AuthorizePayment'
      required:
        - authorize_payment
      title: Schemas_get-authorize-payment-schema-test_Response_200

```

**`Example`**

```json Example
{
  "requestid": "d22f5305-05f3-48a0-9131-a4e6e5f58b9a",
  "token": "005.2fkv5o963b132z8ppa34srlh60987y87d55re237wsg9tr4q2",
  "merchantReference": "merchant-order-123",
  "amount": {
    "amount": "100.00",
    "currency": "AUD"
  },
  "isCheckoutAdjusted": true,
  "paymentScheduleChecksum": "string",
  "items": [],
  "shipping": {
    "name": "Joe Consumer",
    "line1": "Level 5",
    "line2": "390 Collins Street",
    "area1": "Melbourne",
    "region": "VIC",
    "postcode": "3000",
    "countryCode": "AU",
    "phoneNumber": "0400 000 000"
  },
  "enrichments": {
    "initiation": {
      "actor": "CUSTOMER"
    },
    "subscription": {
      "type": "FIXED",
      "interval": "DAY",
      "intervalCount": 1
    }
  }
}
```