Affirm · Schema

Affirm Transaction

Represents an Affirm payment transaction, capturing the full lifecycle from authorization through capture, refund, and void. Transactions are created by exchanging a checkout token via the Transactions API after a customer completes the Affirm checkout flow.

FintechBNPLLendingPaymentsConsumer

Properties

Name Type Description
id string A unique identifier representing the transaction, assigned by Affirm upon authorization.
checkout_id string A unique identifier referencing the Checkout object that originated this transaction.
order_id string Identifies the order within the merchant's order management system, used for reconciliation.
status string Current lifecycle state of the transaction.
amount integer The original amount financed to the customer, expressed in the smallest currency unit (e.g., cents for USD).
amount_refunded integer The cumulative amount refunded to the customer from this transaction, in the smallest currency unit.
currency string The ISO 4217 currency code for this transaction.
created string The timestamp when the transaction was created, in RFC 3339 format.
authorization_expiration string The timestamp after which the transaction authorization expires and can no longer be captured, in RFC 3339 format.
provider_id integer A unique identifier of the financing provider for this transaction.
remove_tax boolean Indicates whether tax was paid by the financing provider. Applicable to Affirm Connect integrations only.
events array Array of TransactionEvent objects documenting the full history of actions taken on this transaction.
token string A JWT signing the JSON response body. When PII is included in the response, this token is also encrypted.
View JSON Schema on GitHub

JSON Schema

affirm-transaction-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://affirm.com/schemas/affirm/transaction.json",
  "title": "Affirm Transaction",
  "description": "Represents an Affirm payment transaction, capturing the full lifecycle from authorization through capture, refund, and void. Transactions are created by exchanging a checkout token via the Transactions API after a customer completes the Affirm checkout flow.",
  "type": "object",
  "required": ["id", "status", "amount", "currency", "created"],
  "properties": {
    "id": {
      "type": "string",
      "description": "A unique identifier representing the transaction, assigned by Affirm upon authorization."
    },
    "checkout_id": {
      "type": "string",
      "description": "A unique identifier referencing the Checkout object that originated this transaction."
    },
    "order_id": {
      "type": "string",
      "description": "Identifies the order within the merchant's order management system, used for reconciliation."
    },
    "status": {
      "type": "string",
      "description": "Current lifecycle state of the transaction.",
      "enum": ["authorized", "captured", "voided", "refunded", "partially_refunded"]
    },
    "amount": {
      "type": "integer",
      "description": "The original amount financed to the customer, expressed in the smallest currency unit (e.g., cents for USD).",
      "minimum": 0
    },
    "amount_refunded": {
      "type": "integer",
      "description": "The cumulative amount refunded to the customer from this transaction, in the smallest currency unit.",
      "minimum": 0
    },
    "currency": {
      "type": "string",
      "description": "The ISO 4217 currency code for this transaction.",
      "pattern": "^[A-Z]{3}$",
      "examples": ["USD", "CAD", "GBP"]
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the transaction was created, in RFC 3339 format."
    },
    "authorization_expiration": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp after which the transaction authorization expires and can no longer be captured, in RFC 3339 format."
    },
    "provider_id": {
      "type": "integer",
      "description": "A unique identifier of the financing provider for this transaction."
    },
    "remove_tax": {
      "type": "boolean",
      "description": "Indicates whether tax was paid by the financing provider. Applicable to Affirm Connect integrations only."
    },
    "events": {
      "type": "array",
      "description": "Array of TransactionEvent objects documenting the full history of actions taken on this transaction.",
      "items": {
        "$ref": "#/$defs/TransactionEvent"
      }
    },
    "token": {
      "type": "string",
      "description": "A JWT signing the JSON response body. When PII is included in the response, this token is also encrypted."
    }
  },
  "$defs": {
    "TransactionEvent": {
      "type": "object",
      "description": "A single event in the lifecycle of a transaction documenting an action such as authorization, capture, refund, or void.",
      "required": ["id", "type", "amount", "currency", "created"],
      "properties": {
        "id": {
          "type": "string",
          "description": "A unique identifier for this transaction event."
        },
        "type": {
          "type": "string",
          "description": "The type of action represented by this event.",
          "enum": ["auth", "capture", "refund", "void", "update"]
        },
        "amount": {
          "type": "integer",
          "description": "The monetary amount associated with this event in the smallest currency unit.",
          "minimum": 0
        },
        "currency": {
          "type": "string",
          "description": "The ISO 4217 currency code for this event.",
          "pattern": "^[A-Z]{3}$"
        },
        "fee": {
          "type": "integer",
          "description": "The Affirm transaction fee charged for this event, in the smallest currency unit.",
          "minimum": 0
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp when this event was created, in RFC 3339 format."
        },
        "reference_id": {
          "type": "string",
          "description": "An external reference identifier for this event, such as a merchant capture or refund reference."
        },
        "metadata": {
          "type": "object",
          "description": "Arbitrary key-value metadata associated with this event.",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "SettlementEvent": {
      "type": "object",
      "description": "A disbursement line item from Affirm to the merchant, associated with a specific transaction event.",
      "required": ["id", "transaction_id", "amount", "currency", "created"],
      "properties": {
        "id": {
          "type": "string",
          "description": "A unique identifier for this settlement event."
        },
        "transaction_id": {
          "type": "string",
          "description": "The identifier of the transaction this settlement event is associated with."
        },
        "transaction_event_id": {
          "type": "string",
          "description": "The identifier of the specific transaction event that triggered this settlement."
        },
        "amount": {
          "type": "integer",
          "description": "The net disbursement amount in the smallest currency unit."
        },
        "currency": {
          "type": "string",
          "description": "The ISO 4217 currency code for this settlement.",
          "pattern": "^[A-Z]{3}$"
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when this settlement event was created, in RFC 3339 format."
        },
        "type": {
          "type": "string",
          "description": "The type of settlement event, corresponding to the originating transaction action.",
          "enum": ["capture", "refund", "void"]
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/affirm-transaction"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.