> 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:
  /offers-response-model-test:
    get:
      operationId: subpackageModels_get-offers-response-model-test
      summary: Get OffersResponse Model Test
      description: Offers response schema
      tags:
        - subpackage_models
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Models_get-offers-response-model-test_Response_200
tags:
  - name: subpackage_models
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
    OfferType:
      type: string
      enum:
        - PAY_IN_4
      description: Type of the offer
      title: OfferType
    PaymentSchedule:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Money'
          description: Amount for this payment installment
        dueDate:
          type: string
          format: date
          description: Due date for this installment
      required:
        - amount
        - dueDate
      description: Represents a scheduled payment installment
      title: PaymentSchedule
    ConsumerOffersNoPaymentUpfront:
      type: object
      properties:
        eligible:
          type: boolean
          description: Indicates if the consumer is eligible for no payment upfront
        eligibilityLimit:
          $ref: '#/components/schemas/Money'
          description: The maximum amount eligible for no payment upfront
      required:
        - eligible
        - eligibilityLimit
      description: Information about the no payment upfront feature eligibility
      title: ConsumerOffersNoPaymentUpfront
    ConsumerOffers:
      type: object
      properties:
        noPaymentUpfront:
          $ref: '#/components/schemas/ConsumerOffersNoPaymentUpfront'
          description: Information about the no payment upfront feature eligibility
      description: Consumer offers
      title: ConsumerOffers
    Offer:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OfferType'
          description: Type of the offer
        merchantAmount:
          $ref: '#/components/schemas/Money'
          description: Amount for the merchant
        exchangeRate:
          type: number
          format: double
          description: Exchange rate for cross-border transactions
        amountDueToday:
          $ref: '#/components/schemas/Money'
          description: Amount due for immediate payment
        payments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentSchedule'
          description: List of scheduled payments
        crossBorder:
          type: boolean
          description: Indicates if this is a cross-border transaction
        appliedPromotion:
          $ref: '#/components/schemas/Money'
          description: Amount of promotion applied
        consumer:
          $ref: '#/components/schemas/ConsumerOffers'
          description: Consumer offer details
      description: Represents an offer with payment details
      title: Offer
    OffersResponse:
      type: object
      properties:
        consumerMaskedEmail:
          type: string
          description: Masked email address of the consumer
        consumerAmount:
          $ref: '#/components/schemas/Money'
          description: Amount in consumer's currency
        offers:
          type: array
          items:
            $ref: '#/components/schemas/Offer'
          description: List of available offers details
      description: Response containing available offers for the consumer
      title: OffersResponse
    Models_get-offers-response-model-test_Response_200:
      type: object
      properties:
        offers_response:
          $ref: '#/components/schemas/OffersResponse'
      required:
        - offers_response
      title: Models_get-offers-response-model-test_Response_200

```

**`Example`**

```json Example
{
  "consumerMaskedEmail": "j***@e***.com",
  "consumerAmount": {
    "amount": "100.00",
    "currency": "AUD"
  },
  "offers": [
    {
      "type": "PAY_IN_4",
      "merchantAmount": {},
      "exchangeRate": 1.35,
      "amountDueToday": {},
      "payments": [
        {
          "amount": {
            "amount": "50.00",
            "currency": "USD"
          },
          "dueDate": "2024-03-04"
        },
        {
          "amount": {
            "amount": "50.00",
            "currency": "USD"
          },
          "dueDate": "2024-03-18"
        },
        {
          "amount": {
            "amount": "50.00",
            "currency": "USD"
          },
          "dueDate": "2024-04-01"
        },
        {
          "amount": {
            "amount": "50.00",
            "currency": "USD"
          },
          "dueDate": "2024-04-15"
        }
      ],
      "crossBorder": false,
      "appliedPromotion": {},
      "consumer": {
        "noPaymentUpfront": {}
      }
    }
  ]
}
```