Sandbox

Simulate a card authorization

Changed on

Simulate an inbound card authorization in the sandbox environment. Drives the same internal authorize + reconcile paths the card issuer would call in production, so platforms can exercise Grid's decisioning + funding-source pull behavior end-to-end without an external network round-trip.

The decisioning outcome is controlled by the last three characters of merchant.descriptor:

| Suffix | Outcome | | ------ | ------- | | 002 | Declined, cardDeclinedReason: INSUFFICIENT_FUNDS, as production declines an authorization the funding source cannot cover | | 003 | Declined, cardDeclinedReason: CARD_NOT_ACTIVE. Use against a FROZEN card to verify it refuses authorizations | | 005 | Delayed pull (~30s) — exercises the PENDING → CONFIRMED path | | 006 | Pull succeeds but the confirmation event reports FAILED — exercises the high-urgency EXCEPTION alert | | any other | Approved |

merchant.descriptor must be 1–25 characters — the width of the card network's acceptor-name field. A longer one is rejected with 400 INVALID_INPUT.

Production returns 404 on this path.

post/sandbox/cards/{id}/simulate/authorization

Request

  • Base URL
    https://api.lightspark.com/grid/2025-10-13
  • URL
    https://api.lightspark.com/grid/2025-10-13/sandbox/cards/{id}/simulate/authorization
  • Auth
    HTTP basic

Path parameters

idstring required

The id of the card to simulate an authorization against.

Request body

amountinteger required

Authorization amount in the smallest unit of currency (e.g. cents for USD).

Example request

{
  "amount": 1250,
  "currency": {
    "code": "USD",
    "name": "United States Dollar",
    "symbol": "$",
    "decimals": 2
  },
  "merchant": {
    "descriptor": "BLUE BOTTLE COFFEE SF",
    "mcc": "5814",
    "city": "San Francisco",
    "state": "CA",
    "country": "US"
  }
}

Response

Simulation accepted. The resulting card operation is delivered asynchronously via the issuer's events webhook. Returns the issuer transaction token that correlates the simulated event.

issuerTransactionTokenstring required

The card issuer's transaction token for the simulated event. Correlates the eventual webhook-delivered card operation back to this simulate call.

Example response

{
  "issuerTransactionToken": "f3a1c2d4-5b6e-7890-abcd-ef0123456789"
}

Changes

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • warning

      added the new CORRIDOR_UNDER_MAINTENANCE enum value to the response property for the response status