Merchants stores can integrate their point of sale systems to support Affirm payment.

How it works

This diagram shows how your customers, your point of sale, your server (e.g OMS) and Affirm interact:

1. In-store checkout

In-store reps will select Affirm as a payment option from your point of sale system. This action will trigger a request to Affirm to send a checkout link (via email/text) to the customers directly.

POST /api/v2/checkout/store HTTP/1.1
Content-Type: application/json

      "merchant": {
        "public_api_key":               "{PUBLIC_API_KEY",
        "user_cancel_url":              "",
        "user_confirmation_url":        "",
        "user_confirmation_url_action": "POST",
       "name":                         "In-store Affirm demo"
          "full":                        "John Doe"
          "line1":                       "325 Pacific Ave",
          "city":                        "San Francisco",
          "state":                       "CA",
          "zipcode":                     "94112",
          "country":                     "USA"
        "phone_number":                  "4155552222",
        "email":                         "[email protected]"
  "metadata": {
    "entity_name": "Vignan 1234",
    "store_location": "Denver"
      "order_id":                        "00de5cee-7226-4aec-b729-a571f773a58c",
      "total":                           5000         


The Store API will send SMS text messages only in the Affirm Live environment. During Sandbox environment testing, please rely on email messages to receive the checkout URL or the URL in the response back.

2. Webhook confirm event

Once a user receives and confirms their loan, Affirm's server will be notified of that event. A checkout_id will be POSTed back to your server at the webhook URL you provided


A webhook URL will need to be configured on your merchant integration. Please reach out to us via the support widget.

3. Create order

On confirmation, Affirm's server will POST back to your server a checkout event containing the checkout_token. This checkout_token must be authorized securely before saving the order or updating the order's status on the in-store terminal.

4. In-store confirmation

The in-store terminal must be able to receive the order confirmation and reflect paid status in near-real-time.

5. Manage order

You can initiate different transaction actions depending on your internal processes.