Customer
in good standing with a funded internal account. This page
covers the requirements and the order they must be satisfied in.
KYC must be APPROVED
POST /cards is rejected with 400 CARDHOLDER_KYC_NOT_APPROVED if the
cardholder’s kycStatus is anything other than APPROVED. There is no
“issue and verify later” path.
If you’re a regulated platform that creates customers directly with
KYC data, the customer reaches APPROVED as soon as the verification
returns approved. If you’re using the hosted KYC link flow, gate
issuance on the CUSTOMER.KYC_APPROVED webhook.
The cardholder needs a funding source
Every card must be bound to oneInternalAccount at issue time. The
account must:
- Belong to the cardholder (no cross-customer funding in v1).
- Be denominated in a card-eligible currency. In v1 this is USDB; the
request is rejected with
400 FUNDING_SOURCE_INELIGIBLEotherwise.
Pre-fund before authorizations arrive
Grid does not check the funding source balance when it decides an authorization. An authorization against an underfunded source is approved to the card network, and the pull against the funding source fails afterwards. The transaction resolves asEXCEPTION for you to reconcile, and it carries
no cardDeclinedReason, because nothing was declined. Fund the source the same
way you would for any other internal account — via the funding
payment instructions or, in Sandbox, with
/sandbox/internal-accounts/{id}/fund.
Just-in-time funding works the same as for other Grid flows: receive a
deposit into the funding source, let it confirm, then expect the
cardholder to transact. There is no separate JIT path for cards in v1.
Ready to issue
Once the cardholder isAPPROVED and a funded internal account exists,
issue the card with POST /cards. See
Issuing cards for the request
shape and lifecycle states.