---
updatedAt: 2026-02-20T20:30:29.000Z
agentTools:
  siteIndex: https://docs.affirm.com/llms.txt
  projectIndex: https://docs.affirm.com/payments/llms.txt
---

# About Telesales

Telesales is an alternative way of initiating the Affirm checkout process for your customers. Learn more about using Affirm for telesales.

<HTMLBlock>{`
<style>
  .dropdown-menu {
    font-family: Arial, sans-serif;
    max-width: 250px;
    margin-left: auto; /* Align to the right */
  	margin-right: 0; /* Ensure it's flush to the right */
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    background: #4A4AF4;
    overflow: hidden; /* Ensure the container grows with content */
  }

  .dropdown-item {
    margin-bottom: 10px;
  }

  .dropdown-toggle {
    display: block;
    width: 100%;
    text-align: left;
    padding: 10px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
  }

  .dropdown-toggle:hover {
    background: #f0f0f0;
  }

  .dropdown-content {
    display: none;
    margin-top: 5px;
    padding: 10px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
  }

  .dropdown-item.open .dropdown-content {
    display: block;
  }

  .flag-icon {
    width: 20px;
    height: 20px;
    margin-right: 10px;
  }

  .product-item {
    margin-bottom: 5px;
    color: black;
  }

  .product-icon {
    width: 20px;
    height: 20px;
    margin-right: 10px;
  }
  
  .country-title {
    font-family: Arial, sans-serif;
    font-size:20px;
    text-align: center;
    font-weight: bold;
    color: #ffffff;
  } 

</style>
  <div class="dropdown-menu">
    <p class="country-title" alt="Countries where this product is available">Country Availability</p>

    <div class="dropdown-item">
      <button class="dropdown-toggle" onclick="toggleDropdown(event)" alt="Drop down menu displaying the available countries for this product">
        <b>Country List</b> ⬇️
      </button>
      <div class="dropdown-content">
        <div class="product-item">
          <img src="https://files.readme.io/a4c8b3d6596d943e2b93c82cb1d432a2edaf6998667835c2e97ef4a31d460c7e-us-circle-01.png" alt="USA" class="flag-icon">
          USA
        </div>
      </div>
    </div>

  </div>
`}</HTMLBlock>

## Overview

The Telesales Checkout API is an efficient method for initiating the Affirm checkout process. This user-friendly feature enables telesales agents to being the checkout process for customers, seamlessly integrating the experience with the in-store flow.

***

## The customer experience

### Customer flow

When a customer completes a checkout, it triggers a browser redirect along with a webhook request that contains the `checkout_token` for authorization.

### Security

We prioritize privacy and security for our customers. Therefore, the Telesales API requires customers to apply using their own device. When an API request is submitted, Affirm sends a text message or email to the provided phone number or email address, containing a link to the customer’s online application.

***

## The merchant experience

### 1. Add the Affirm payment option to your Telesales flow.

When customers choose to pay with Affirm over the phone, your telesales agent can select Affirm as a payment option from your frontend or from the agent dashboard.

![To get started with Affirm, select Affirm as the customer's payment method and send them the Affirm checkout link](https://files.readme.io/344e8cf-telesales_screenshot_1.png)

### 2. Call the Store API to initiate checkout.

Selecting Affirm as the payment method prompts Affirm. The sales agent then click **Send Affirm link** to initiate the application. This sends an email and/or text to the customer with instructions to finish their checkout with Affirm.

Note: If the customer doesn't receive the initial email, the agent can click the **Resend** button to send another text or email.

Example:

```json
POST /api/v2/checkout/store HTTP/1.1
Host: sandbox.affirm.com
Content-Type: application/json

{
      "merchant": {
        "public_api_key":               "PUBLIC_API_KEY",
        "user_cancel_url":              "https://www.cancelurl.com",
        "user_confirmation_url":        "https://www.confirmationurl.com",
        "user_confirmation_url_action": "POST",
       "name":                         "Telesales Affirm demo"
      },
      "billing":{
        "name":{
          "full":                        "John Doe"
        },
        "address":{
          "line1":                       "325 Pacific Ave",
          "city":                        "San Francisco",
          "state":                       "CA",
          "zipcode":                     "94112",
          "country":                     "USA"
        },
        "phone_number":                  "4155552222",
        "email":                         "john.doe@affirm.com"
      },
  "metadata": {
    "entity_name": "Vignan 1234",
    "store_location": "Denver"
  },
      "order_id":                        "your_order_identifier_ABC_123",
      "total":                           5000         
  }
```

> ❗️ Testing
>
> The Store API sends SMS text messages only in the Affirm Live environment. During Sandbox environment testing, you can use only email messages to receive the Checkout URL to complete your Affirm purchase.

[In the response](https://docs.affirm.com/developers/reference/store), you receive the `redirect_url` that the customer was sent and an Affirm `checkout_id`, which is used for authorization.

### 3. Receive order confirmation via webhook.

After a user receives and confirms their loan, Affirm's server is notified of the event and the agent sees a Confirmed status. The `checkout_id` is POSTed back to your server at the webhook URL that you provide your Technical Account Manager.

<Callout icon="📘" theme="info">
  The application uses webhooks to update the agent's interface based on the customer's progress in the Affirm application. 

  For greater efficiency and reliability, you can provide Affirm with a <Anchor label="webhook" target="_blank" href="https://docs.affirm.com/developers/docs/development-webhooks">webhook</Anchor> address for server-to-server confirmation of the `checkout_token` after the customer confirms their loan. While Affirm continues to POST the token to the `user_confirmation_url`, using a webhook can minimize the risk of client/browser errors and expedite the payment status update in your telesales system.
</Callout>

> ❗️ In-store webhook configuration
>
> To complete an in-store integration, you must configure a webhook URL. You can contact Affirm through your Account team or the support widget.

### 4. Authorize the transaction.

To collect payment information for the transaction, you must implement additional logic to <Anchor label="authorize" target="_blank" href="https://docs.affirm.com/developers/reference/authorize_transaction">authorize</Anchor> and <Anchor label="capture" target="_blank" href="https://docs.affirm.com/developers/reference/capture_transaction">capture</Anchor> the payment for the transaction. You can repurpose this logic by updating the API keys to the Telesales-specific keys if you implemented Affirm in your e-commerce channel.

Call Affirm’s <Anchor label="Transactions API" target="_blank" href="https://docs.affirm.com/developers/reference/authorize_transaction">Transactions API</Anchor> and pass the `checkout_id` to the `transaction_id` parameter and authorize the order. The order must be authorized securely before saving the order or updating the order's status on the agent’s dashboard.

### 5. Capture and manage the order.

With the persistent `id` received from authorization, you can initiate different [transaction actions](https://docs.affirm.com/payments/docs/actions), such as [capturing the order](https://docs.affirm.com/developers/reference/capture_transaction) on fulfillment or [issuing a refund](https://docs.affirm.com/developers/reference/refund_transaction) depending on your internal processes.

![Agent view and customer view ](https://files.readme.io/0a3b4c7-telesales_screenshot_2.png)

***

## Recommended topics

* <Anchor label="Set Up Telesales" target="_blank" href="https://docs.affirm.com/payments/docs/telesales-api-sdk">Set Up Telesales</Anchor>
* <Anchor label="About Express Checkout" target="_blank" href="https://docs.affirm.com/developers/docs/express-checkout">About Express Checkout</Anchor>
* <Anchor label="About Affirm Landing Page (In-Store Only)" target="_blank" href="https://docs.affirm.com/payments/docs/affirm-landing-page">About Affirm Landing Page (In-Store Only)</Anchor>

# Sibling pages

* [Set Up Telesales](https://docs.affirm.com/payments/docs/telesales-api-sdk.md)

# Related topics

* [Set Up Telesales](https://docs.affirm.com/payments/docs/telesales-api-sdk.md)
* [About Virtual Card for Telesales](https://docs.affirm.com/payments/docs/vcn-telesales.md)