Lightspark · Schema

Card

CompanyPaymentsCross-Border PaymentsStablecoinsBitcoinLightning NetworkEmbedded FinanceAgentic PaymentsCardsKYCFinancial ServicesForeign Exchange

Properties

Name Type Description
id string System-generated unique card identifier
cardholderId string The id of the `Customer` who holds this card.
platformCardId string Platform-specific card identifier. Optional on create — system-generated if omitted, mirroring `platformCustomerId` semantics.
state object
stateReason object Reason associated with the current `state`. Populated when the card is `CLOSED` or when provisioning was rejected; otherwise null.
brand object
form object
last4 string Last four digits of the card PAN.
expMonth integer Card expiration month (1–12).
expYear integer Card expiration year (four digits).
fundingSources array Internal account ids bound to this card as funding sources, in priority order — the first entry is tried first by Authorization Decisioning. Every card has at least one funding source.
currency string Currency the card transacts in (ISO 4217 for fiat, tickers for crypto). Derived from the funding sources at issue time — all funding sources bound to a card must be denominated in the same card-eligib
processorRef string Opaque processor-side reference for the card (e.g. the Lithic card token). Useful for cross-referencing in the processor's dashboards; not used for any Grid request routing.
issuerRef string Opaque identifier for the card on the issuer of record (e.g. the Lead Bank account/card identifier). Useful for cross-referencing in issuer dashboards; not used for any Grid request routing.
createdAt string Creation timestamp
updatedAt string Last update timestamp
View JSON Schema on GitHub

JSON Schema

lightspark-card-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/lightspark/main/json-schema/lightspark-card-schema.json",
  "title": "Card",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/lightspark-cards-api-openapi.yml#/components/schemas/Card",
  "type": "object",
  "required": [
    "id",
    "cardholderId",
    "state",
    "form",
    "fundingSources",
    "createdAt",
    "updatedAt"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "System-generated unique card identifier",
      "readOnly": true
    },
    "cardholderId": {
      "type": "string",
      "description": "The id of the `Customer` who holds this card."
    },
    "platformCardId": {
      "type": "string",
      "description": "Platform-specific card identifier. Optional on create — system-generated if omitted, mirroring `platformCustomerId` semantics."
    },
    "state": {
      "$ref": "#/$defs/CardState"
    },
    "stateReason": {
      "anyOf": [
        {
          "$ref": "#/$defs/CardStateReason"
        },
        {
          "type": "null"
        }
      ],
      "description": "Reason associated with the current `state`. Populated when the card is `CLOSED` or when provisioning was rejected; otherwise null."
    },
    "brand": {
      "$ref": "#/$defs/CardBrand"
    },
    "form": {
      "$ref": "#/$defs/CardForm"
    },
    "last4": {
      "type": "string",
      "description": "Last four digits of the card PAN."
    },
    "expMonth": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Card expiration month (1–12)."
    },
    "expYear": {
      "type": "integer",
      "description": "Card expiration year (four digits)."
    },
    "fundingSources": {
      "type": "array",
      "description": "Internal account ids bound to this card as funding sources, in priority order — the first entry is tried first by Authorization Decisioning. Every card has at least one funding source.",
      "items": {
        "type": "string"
      }
    },
    "currency": {
      "type": "string",
      "description": "Currency the card transacts in (ISO 4217 for fiat, tickers for crypto). Derived from the funding sources at issue time — all funding sources bound to a card must be denominated in the same card-eligible currency.",
      "readOnly": true
    },
    "processorRef": {
      "type": "string",
      "description": "Opaque processor-side reference for the card (e.g. the Lithic card token). Useful for cross-referencing in the processor's dashboards; not used for any Grid request routing.",
      "readOnly": true
    },
    "issuerRef": {
      "type": "string",
      "description": "Opaque identifier for the card on the issuer of record (e.g. the Lead Bank account/card identifier). Useful for cross-referencing in issuer dashboards; not used for any Grid request routing.",
      "readOnly": true
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Creation timestamp",
      "readOnly": true
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Last update timestamp",
      "readOnly": true
    }
  },
  "$defs": {
    "CardBrand": {
      "type": "string",
      "enum": [
        "VISA",
        "MASTERCARD"
      ],
      "description": "Card network brand. Read-only — determined by Grid when the card is\nprovisioned with the issuer.\n"
    },
    "CardForm": {
      "type": "string",
      "enum": [
        "VIRTUAL"
      ],
      "description": "Physical form factor of the card. Only `VIRTUAL` is supported in v1;\n`PHYSICAL` will be added in a later release.\n"
    },
    "CardState": {
      "type": "string",
      "enum": [
        "PENDING_KYC",
        "PROCESSING",
        "ACTIVE",
        "FROZEN",
        "CLOSED"
      ],
      "description": "Lifecycle state of a card.\n\n| State | Description |\n|-------|-------------|\n| `PENDING_KYC` | The cardholder has not yet completed KYC. Cards in this state cannot transact. |\n| `PROCESSING` | The card has been requested and is being provisioned with the issuer. |\n| `ACTIVE` | The card is live and can authorize transactions. |\n| `FROZEN` | The card is temporarily disabled by the platform. New authorizations are declined with `CARD_PAUSED`. Existing settlements and refunds continue to reconcile. |\n| `CLOSED` | The card is permanently closed. Terminal, irreversible state. |\n"
    },
    "CardStateReason": {
      "type": "string",
      "enum": [
        "ISSUER_REJECTED",
        "CLOSED_BY_PLATFORM",
        "CLOSED_BY_GRID"
      ],
      "description": "Reason a card reached a terminal or non-active state. Present on\n`CLOSED` cards, and on cards that fail provisioning before reaching\n`ACTIVE`.\n\n| Reason | Description |\n|--------|-------------|\n| `ISSUER_REJECTED` | The card issuer rejected provisioning during `PROCESSING`. |\n| `CLOSED_BY_PLATFORM` | The card was closed via `PATCH /cards/{id}` (`state: CLOSED`) by the platform. |\n| `CLOSED_BY_GRID` | The card was closed by Grid (e.g. compliance or risk action). |\n"
    }
  }
}

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/lightspark-card"
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.