Get virtual card issuance quota (partner default)
GET/api/partner/cards/virtual-card-quota
Pre-issuance check for the rolling virtual-card issuance cap.
Lets a partner surface a "you're approaching your virtual card limit"
warning in their own UI before opening the issuance flow, instead of
discovering the cap only when the issuance call fails with 429.
Read-only. A skipped or stale check can never let an extra card through — the authoritative block lives in the issuance path, and both the pre-check and the issuance call evaluate the same quota.
When no cardholderId is supplied (neither path segment nor query
string), the partner's first direct individual onboarding is
used. A partner with no direct individuals gets 404 and must
call the {cardholderId} variant for B2B cardholders.
Scope: applies to non-B2B cardholders only (partner-owned
individuals). For B2B cardholders the response returns
applies: false with a neutral non-blocking quota — issuance for
B2B cardholders is governed by the per-account concurrent cap
(GET /cards/hold-limits/virtual), not the rolling cap.
B2B cardholder behavior: if the quota does not apply to the
resolved cardholder, the response is always applies: false,
status: 'OK', used: 0, with remaining = limit and
nextSlotFreesAt: null. The quota object is still returned (never
omitted) so the partner client never has to branch on scope — any
code that reads data.status === 'LIMIT_EXCEEDED' simply never
fires for B2B cardholders.
Request
Responses
- 200
- 400
- 401
- 404
Rolling virtual-card issuance quota for the partner's default cardholder (or the explicitly-named cardholder when ?cardholderId= is supplied)
Bad request — missing or invalid fields
Unauthorized — missing or invalid JWT
Not found