> 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:
  /checkout-request-schema-test:
    get:
      operationId: subpackageSchemas_get-checkout-request-schema-test
      summary: Get Checkout-Request Schema Test
      description: Individual Checkout request schema.
      tags:
        - subpackage_schemas
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Schemas_get-checkout-request-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
    Consumer:
      type: object
      properties:
        email:
          type: string
          format: email
          maxLength: 128
        givenNames:
          type: string
          maxLength: 128
          description: The consumer's first name
        surname:
          type: string
          maxLength: 128
          description: The consumer's last name
        phoneNumber:
          type: string
          maxLength: 32
      required:
        - email
      description: >-
        The consumer data model is used for gathering essential user
        information. It captures details such as the individual's first name,
        represented by `givenNames`, and their last name, captured under
        `surname`. In addition, it stores the user's contact number under
        `phoneNumber` and their email address under `email`. These fields
        collectively provide contact and identification details for a user.
      title: Consumer
    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
    CheckoutRequestMerchant:
      type: object
      properties:
        redirectConfirmUrl:
          type: string
          description: >-
            The URL the consumer is redirected to after confirming payment.
            Required for redirect.
        redirectCancelUrl:
          type: string
          description: >-
            The URL the consumer is redirected to after cancelling payment.
            Required for redirect.
        popupOriginUrl:
          type: string
          description: >-
            The URL location from which Afterpay is initiated. Required for
            popup, including Express Checkout.
        name:
          type: string
          description: >-
            The merchant name displayed in the Afterpay checkout flow,
            confirmation & refund emails, and the consumer portal
      description: >-
        The URLs required depend on the checkout flow:

        - To use popup, `merchant.popupOriginUrl` must be provided.

        - To use redirect, `merchant.redirectConfirmUrl` and
        `merchant.redirectCancelUrl` must be provided.
      title: CheckoutRequestMerchant
    Item:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        sku:
          type: string
        pageUrl:
          type: string
          maxLength: 2048
        imageUrl:
          type: string
          maxLength: 2048
        quantity:
          type: integer
        price:
          $ref: '#/components/schemas/Money'
        categories:
          type: array
          items:
            type: array
            items:
              type: string
        estimatedShipmentDate:
          type: string
          format: date
        preorder:
          type: boolean
          default: false
      required:
        - name
        - quantity
        - price
      description: >
        This data model is used to store crucial product details. The
        `price.amount` field represents the unit price of the individual item.
        The `quantity` field shows the number of units of the item. The `name`
        field denotes the name of the product, while `sku` holds the Stock
        Keeping Unit identifier. 100 is the maximum number of item objects in
        the items array.

        <Warning Title="Important Note">
          It is crucial that the `price.amount` represents the unit price of the individual item.
          **Never** populate the `price.amount` by multiplying the quantity by the unit cost. Always enter the price for a single unit to maintain data accuracy.
        </Warning>
      title: Item
    ShippingCourierPriority:
      type: string
      enum:
        - STANDARD
        - EXPRESS
      title: ShippingCourierPriority
    Shipping-Courier:
      type: object
      properties:
        shippedAt:
          type: string
          format: date-time
        name:
          type: string
          maxLength: 128
        tracking:
          type: string
          maxLength: 128
        priority:
          $ref: '#/components/schemas/ShippingCourierPriority'
      description: >-
        Essential information for tracking a shipment. The `shippedAt` key
        represents the date and time when the item was shipped. This value
        follows the [ISO 8601 standard
        format](https://www.iso.org/iso-8601-date-and-time-format.html) for date
        and time representations.


        The `name` field indicates the courier service employed to handle the
        shipment (e.g. FEDEX, UPS). For orders that are picked up in-store (also
        known as Buy-Online-Pickup-Instore), please use "INSTORE_PICKUP" as the
        `name` field value.


        The `tracking` key represents a unique tracking number provided by the
        courier service to monitor the shipment's progress. It's a valuable tool
        for customers and businesses to track and trace their packages.


        The `priority` field tracks the shipping speed or service level
        associated with the delivery. 
      title: Shipping-Courier
    Discount:
      type: object
      properties:
        displayName:
          type: string
        amount:
          $ref: '#/components/schemas/Money'
      description: Discount applied to an order
      title: Discount
    Checkout-Request:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Money'
        consumer:
          $ref: '#/components/schemas/Consumer'
        merchantReference:
          type: string
        billing:
          $ref: '#/components/schemas/Contact'
        shipping:
          $ref: '#/components/schemas/Contact'
        merchant:
          $ref: '#/components/schemas/CheckoutRequestMerchant'
          description: >-
            The URLs required depend on the checkout flow:

            - To use popup, `merchant.popupOriginUrl` must be provided.

            - To use redirect, `merchant.redirectConfirmUrl` and
            `merchant.redirectCancelUrl` must be provided.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Item'
        courier:
          $ref: '#/components/schemas/Shipping-Courier'
        taxAmount:
          $ref: '#/components/schemas/Money'
        shippingAmount:
          $ref: '#/components/schemas/Money'
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
        description:
          type: string
          deprecated: true
        mode:
          type: string
          default: standard
          description: |-
            Must be set to `express` to enable express checkout.
            Allowed values: `express` `standard`
      required:
        - amount
        - consumer
        - merchant
      description: Individual Checkout
      title: Checkout-Request
    Schemas_get-checkout-request-schema-test_Response_200:
      type: object
      properties:
        checkout_request:
          $ref: '#/components/schemas/Checkout-Request'
      required:
        - checkout_request
      title: Schemas_get-checkout-request-schema-test_Response_200

```

**`Example`**

```json Example
{
  "amount": {
    "amount": "100.00",
    "currency": "AUD"
  },
  "consumer": {
    "email": "test@example.com",
    "givenNames": "Joe",
    "surname": "Consumer",
    "phoneNumber": "0400 000 000"
  },
  "merchantReference": "string",
  "billing": {
    "name": "Joe Consumer",
    "line1": "Level 5",
    "line2": "390 Collins Street",
    "area1": "Melbourne",
    "region": "VIC",
    "postcode": "3000",
    "countryCode": "AU",
    "phoneNumber": "0400 000 000"
  },
  "shipping": {
    "name": "Joe Consumer",
    "line1": "Level 5",
    "line2": "390 Collins Street",
    "area1": "Melbourne",
    "region": "VIC",
    "postcode": "3000",
    "countryCode": "AU",
    "phoneNumber": "0400 000 000"
  },
  "merchant": {
    "redirectConfirmUrl": "https://example.com/checkout/confirm",
    "redirectCancelUrl": "https://example.com/checkout/cancel",
    "popupOriginUrl": "https://example.com/cart",
    "name": "string"
  },
  "items": [
    {
      "name": "Blue Carabiner",
      "sku": "12341234",
      "quantity": 1,
      "pageUrl": "https://example.com/carabiner-354193.html",
      "imageUrl": "https://example.com/carabiner-7378-391453-1.jpg",
      "price": {
        "amount": "40.00",
        "currency": "AUD"
      },
      "categories": [
        [
          "Sporting Goods",
          "Climbing Equipment",
          "Climbing",
          "Climbing Carabiners"
        ],
        [
          "Sale",
          "Climbing"
        ]
      ],
      "estimatedShipmentDate": "2023-08-01"
    }
  ],
  "courier": {
    "shippedAt": "2025-08-24T14:15:22Z",
    "name": "USA Post",
    "tracking": "AA0000000000000",
    "priority": "STANDARD"
  },
  "taxAmount": {
    "amount": "100.00",
    "currency": "AUD"
  },
  "shippingAmount": {
    "amount": "100.00",
    "currency": "AUD"
  },
  "discounts": [
    {
      "displayName": "New Customer Coupon",
      "amount": {}
    }
  ],
  "description": "string",
  "mode": "standard"
}
```