---
title: "Direct"
method: POST
path: "/checkout/direct"
tags: ["Checkout"]
---

# Direct

`POST /checkout/direct`

## Request

- Base URL: `https://sandbox.affirm.com/api/v2`
- URL: `https://sandbox.affirm.com/api/v2/checkout/direct`
- Auth: HTTP basic

Generate a redirect checkout link on the fly.  Manage and share communications with your customers with your own infrastructure.

## Request body

- DirectRequest
  - `merchant` object, required: A list of items specific to the merchant.
    - `public_api_key` string, required: The merchant's public api key.
    - `user_cancel_url` string, required: On customer cancellation redirect them to this merchant URL.
    - `user_confirmation_url` string, required: On customer confirmation redirect them to this merchant URL.
    - `user_confirmation_url_action` string: Supported values -'GET' -'POST'
    - `name` string: If you have multiple sites operating under a single Affirm account, you can override the external company/brand name that the customer sees. This affects all references to your company name in the Affirm UI.
    - `use_vcn` boolean: A flag to enable virtual card integration (default is 'false').
  - `billing` object: The customer billing information.
    - `name` object, nullable
      - `first` string: The first name of the customer.
      - `full` string: The full name of the customer, which must contain at least two words.
      - `last` string: The last name of the customer.
    - `address` object
      - `city` string: The name of the city.
      - `country` string: The abbreviated name of the country.
      - `line1` string: A U.S. street address.
      - `line2` string: The apartment number, floor or suite that complements the street address.
      - `state` string: The 2-letter postal abbreviation or full name of the U.S. state.
      - `zipcode` string: The 5-digit postal code of the address.
    - `phone_number` string, nullable: The phone number of the customer. It must be a valid U.S. phone number represented as a 10-digit string without any delimiters.
    - `email` string, nullable: The email address of the customer.
  - `total` integer: The total amount in cents of the purchase.
  - `order_id` string: The merchant id for this order.
  - `tax_amount` integer: The shipping tax amount.
  - `shipping` object: The shipping information. Required for scenarios where goods are shipped.
    - `name` object
      - `full` string: The customer's name.
      - `first` string: The customer's first name.
      - `last` string: The customer's last name.
    - `address` object
      - `city` string: The name of the city.
      - `country` string: The abbreviated name of the country.
      - `line1` string: A U.S. street address.
      - `line2` string: The apartment number, floor or suite that complements the street address.
      - `state` string: The 2-letter postal abbreviation or full name of the U.S. state.
      - `zipcode` string: The 5-digit postal code of the address.
    - `email` string, nullable: The email address of the customer.
    - `phone_number` string, nullable: The phone number of the customer. It must be a valid U.S. phone number represented as a 10-digit string without any delimiters.

## Response `200`

HTTP 200 OK

- Store
  - `redirect_url` string: URL the consumer should be directed to in order to complete their loan.
  - `checkout_id` string: Specific Checkout ID for the related request. This ID is embedded in the redirect_url.

## Other responses

- `400`: HTTP 400 Bad Request
- `401`: HTTP 401 Unauthorized
- `404`: HTTP 404 Not Found

---

[API](https://skmtc.dev/affirm/apis/checkout-api.md) - [All operations](https://skmtc.dev/affirm/apis/checkout-api/llms.txt) - [OpenAPI document](https://skmtc.dev/affirm/apis/checkout-api/revisions/6f74c90a66df?raw)
