Affirm Cards API
Operations for managing virtual card numbers (VCN) issued via the Affirm Lite integration pattern.
Operations for managing virtual card numbers (VCN) issued via the Affirm Lite integration pattern.
openapi: 3.1.0
info:
title: Affirm Checkout Authorization Cards API
description: The Affirm Checkout API enables merchants to initiate and manage the Affirm buy now pay later checkout flow for customers at the point of purchase. It provides endpoints to create and store checkout sessions, read and update checkout objects, and resend checkout links via email or SMS. The API supports both redirect and direct checkout integration patterns. Once a customer authorizes a loan, the resulting checkout token is exchanged server-side to complete the transaction authorization via the Transactions API. Authentication uses HTTP Basic Authentication with the merchant's public and private API keys.
version: '1.0'
contact:
name: Affirm Developer Support
url: https://docs.affirm.com/developers/docs/development-quickstart
termsOfService: https://www.affirm.com/legal/merchant-terms
servers:
- url: https://api.affirm.com/api/v1
description: Production Server
- url: https://sandbox.affirm.com/api/v1
description: Sandbox Server
security:
- basicAuth: []
tags:
- name: Cards
description: Operations for managing virtual card numbers (VCN) issued via the Affirm Lite integration pattern.
paths:
/cards/{id}:
get:
operationId: readCard
summary: Affirm Read a Card
description: Retrieves the details of a virtual card number (VCN) issued via Affirm Lite. Returns card number, expiration, CVV, and billing address information needed for payment processing through traditional card networks.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CardId'
responses:
'200':
description: Card retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
examples:
readCard200Example:
summary: Default readCard 200 response
x-microcks-default: true
value:
id: '500123'
checkout_id: '500123'
status: active
number: example_value
cvv: example_value
expiration: example_value
billing:
address:
line1: {}
city: {}
state: {}
zipcode: {}
country: {}
amount: 1
currency: USD
created: '2025-03-15T14:30:00Z'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cards/{id}/cancel:
post:
operationId: cancelCard
summary: Affirm Cancel a Card
description: Cancels a virtual card number (VCN) issued via Affirm Lite, rendering it unusable for further charges. Used when an order is cancelled or the card is no longer needed.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CardId'
responses:
'200':
description: Card cancelled successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
examples:
cancelCard200Example:
summary: Default cancelCard 200 response
x-microcks-default: true
value:
id: '500123'
checkout_id: '500123'
status: active
number: example_value
cvv: example_value
expiration: example_value
billing:
address:
line1: {}
city: {}
state: {}
zipcode: {}
country: {}
amount: 1
currency: USD
created: '2025-03-15T14:30:00Z'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cards/{id}/finalize:
post:
operationId: finalizeCard
summary: Affirm Finalize a Card
description: Finalizes a virtual card number (VCN), updating the card details with the final purchase amount and completing the Affirm Lite transaction lifecycle.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CardId'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
amount:
type: integer
description: Final authorized amount in cents.
order_id:
type: string
description: Merchant order identifier for this finalization.
examples:
finalizeCardRequestExample:
summary: Default finalizeCard request
x-microcks-default: true
value:
amount: 1
order_id: '500123'
responses:
'200':
description: Card finalized successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
examples:
finalizeCard200Example:
summary: Default finalizeCard 200 response
x-microcks-default: true
value:
id: '500123'
checkout_id: '500123'
status: active
number: example_value
cvv: example_value
expiration: example_value
billing:
address:
line1: {}
city: {}
state: {}
zipcode: {}
country: {}
amount: 1
currency: USD
created: '2025-03-15T14:30:00Z'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
responses:
Unauthorized:
description: Unauthorized. Authentication credentials are missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request. The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Not found. The requested resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
CardId:
name: id
in: path
required: true
description: The unique identifier of the virtual card.
schema:
type: string
schemas:
Card:
type: object
description: Represents an Affirm-issued virtual card number (VCN) used in the Affirm Lite integration pattern to process payments through traditional card networks.
properties:
id:
type: string
description: Unique identifier for this virtual card.
example: '500123'
checkout_id:
type: string
description: Checkout session identifier associated with this card.
example: '500123'
status:
type: string
description: Current status of the virtual card.
enum:
- active
- cancelled
- finalized
example: active
number:
type: string
description: Virtual card number (PAN).
example: example_value
cvv:
type: string
description: Card verification value.
example: example_value
expiration:
type: string
description: Card expiration date in MM/YY format.
example: example_value
billing:
type: object
description: Billing address associated with this virtual card.
properties:
address:
type: object
properties:
line1:
type: string
description: Street address line 1.
city:
type: string
description: City.
state:
type: string
description: State code.
zipcode:
type: string
description: ZIP or postal code.
country:
type: string
description: ISO 3166-1 alpha-2 country code.
example:
address:
line1: example_value
city: example_value
state: example_value
zipcode: example_value
country: example_value
amount:
type: integer
description: Authorized amount on this virtual card in cents.
example: 1
currency:
type: string
description: ISO 4217 currency code.
example: USD
created:
type: string
format: date-time
description: Card creation timestamp in RFC 3339 format.
example: '2025-03-15T14:30:00Z'
Error:
type: object
description: Standard error response returned by the Affirm API.
properties:
status_code:
type: integer
description: HTTP status code of the error.
example: 1
code:
type: string
description: Machine-readable error code string.
example: example_value
message:
type: string
description: Human-readable description of the error.
example: example_value
securitySchemes:
basicAuth:
type: http
scheme: basic
description: HTTP Basic Authentication using the merchant's public API key as the username and private API key as the password, Base64-encoded as per RFC 7617.
externalDocs:
description: Affirm Checkout API Reference
url: https://docs.affirm.com/developers/reference/the-checkout-object