Skip to main content

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​

Rolling virtual-card issuance quota for the partner's default cardholder (or the explicitly-named cardholder when ?cardholderId= is supplied)