> This page is for Afterpay Online Developer, version Main (default).
> For other versions, use one of these documentation indexes:
> - Main (default): https://developers.afterpay.com/afterpay-online-developer/main/llms.txt
> - v1: https://developers.afterpay.com/afterpay-online-developer/v-1/llms.txt
> - Chinese: https://developers.afterpay.com/afterpay-online-developer/chinese/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.afterpay.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.afterpay.com/_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: Schema for authorizing a payment with deferred capture
      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
      description: >-
        The currency in ISO 4217 format. The value provided must correspond to
        the currency of the merchant account making the request.
      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'
          description: >-
            The currency in ISO 4217 format. The value provided must correspond
            to the currency of the merchant account making the request.
      required:
        - amount
        - currency
      description: "Object containing amount and currency.\n\nWhere a Money object is included in an API request, it will be validated according to the specification above. Invalid Money objects will trigger a **422 Unprocessable Entity response**. The following is a list of common examples:\n\n|Example|\terrorCode|\tmessage|\n|---|---|---|\n|`amount` is omitted or null\t|invalid_object\t|{Money object}.amount Amount field required|\n|`amount` has more than 2 decimal places\t| invalid_object\tamount| must be a valid ISO 4217 format value|\n|`amount` includes a thousands separator comma, for example: \"1,000\"\t|invalid_amount\t|Amount must be a valid ISO 4217 format value|\n|`amount` is not a decimal number, for example: \"FREE\", \"$2\" or an empty string\t|invalid_object|\t{Money object}.amount Amount field must be a valid ISO 4217 format value|\n|`currency` is omitted or null\t|invalid_object|\t{Money object}.currency Currency field required|\n|`currency` is not a valid currency code, not all uppercase or an empty string\t|invalid_object|\t{Money object}.currency Currency not supported for this merchant|\n|`currency` is supported by Afterpay, but not valid for the Merchant account\t|unsupported_currency\t|An error occurred|"
      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
    EnrichmentsInitiationActor:
      type: string
      enum:
        - MERCHANT
        - CUSTOMER
      description: The party that initiated the payment.
      title: EnrichmentsInitiationActor
    EnrichmentsInitiation:
      type: object
      properties:
        actor:
          $ref: '#/components/schemas/EnrichmentsInitiationActor'
          description: The party that initiated the payment.
      description: Information about how the payment was initiated.
      title: EnrichmentsInitiation
    Enrichments:
      type: object
      properties:
        initiation:
          $ref: '#/components/schemas/EnrichmentsInitiation'
          description: Information about how the payment was initiated.
      description: Additional enrichment data for the payment.
      title: Enrichments
    AuthorizePayment:
      type: object
      properties:
        requestid:
          type: string
          format: uuid
          description: >-
            A unique request ID, required for idempotent retries. It is
            recommended that the merchant generate a 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 will update 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.
        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'
      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": "MERCHANT"
    }
  }
}
```