Corgi BankDocumentation
OpenAPI

Decide a token service's token authorization request: approve, decline or require identification and verification (token service connector only)

POST/cards/network-tokens/authorization-requests

Only the network's own token service connector (svc_vts for visa, svc_mdes for mastercard, svc_ddx for discover) holding cards:tokens:network and no API key; cards:write and staff are refused. CARD_NETWORK_TOKEN_CONFIG must enable tokenization. Locally the connector is a VTS, MDES or DDX style simulator; nothing a simulator sends is evidence that a network acted. The request reference is the idempotency key: an identical retry replays the retained event with 200 and replayed true, a changed body under the same reference is idempotency_key_reused. The bank decides from the funding card (active, unexpired, not replaced, holder authority current), the token count, the requestor deny list, card verification results and the token service risk data: approved, declined with every reason, or require_idv with the verification methods offered. Push provisioning names the holder's wallet consent, which must be for this card, requestor and device, enabled, unused and fresh. An unknown pan_token is not_found; a token reference already held is conflict.

Headers

Idempotency-KeystringOptional

Send on every write that creates or changes money or state; a replay with the same key returns the original result with 200.

Body parameters

card_verificationobjectRequired

CardVerification is what the issuer processor's security module found on the credentials the token service forwarded: the core never sees the CVV2 or the PAN.

3 child attributes
avsstringRequired

Match, partial, no_match or not_checked

cvv2stringRequired

Match, no_match or not_checked

expirystringRequired

Match, no_match or not_checked

device_sha256stringOptional

Wallet: opaque device binding digest

merchant_idstringOptional

Merchant: the exact processor merchant identity

networkstringRequired
pan_sourcestringRequired

Issuer_app, manual or on_file

pan_tokenstringRequired

The issuer processor's surrogate of the funding PAN

request_referencestringRequired
riskobjectRequired

Risk is the token service's and wallet provider's risk data, normalized by the connector. Scores are on the bank-defined scale 1 (highest risk) to 5 (lowest risk); 0 is not provided.

6 child attributes
account_scoreintegerOptional
device_countrystringOptional
device_scoreintegerOptional
phone_number_scoreintegerOptional
reason_codesarray of stringsOptional
recommended_decisionstringOptional

Approve, decline or require_idv

token_expiry_monthintegerRequired
token_expiry_yearintegerRequired
token_last4stringRequired
token_referencestringRequired

The token service's unique token reference, never the token number

token_requestor_idstringRequired

11 digits

token_requestor_namestringRequired
token_typestringRequired

Secure_element, cloud or card_on_file

use_casestringRequired
wallet_consent_idstringOptional

Push provisioning: the holder's recorded wallet consent

Returns

200 OK

eventobjectRequired

Event is one immutable entry in a token's history with the token state after it.

20 child attributes
actorstringRequired
actor_kindstringRequired

Token_service, holder, staff or issuer

atstring · date-timeRequired
challengeobject or nullOptional

Challenge is one one-time code the bank issued. The code itself is sealed at rest and never leaves the bank except in the notification to the cardholder.

8 child attributes
created_atstring · date-timeRequired
deliverystringOptional

Sent, queued or undeliverable

expires_atstring · date-timeRequired
idstringRequired
methodstringRequired
notification_idstringOptional

Example ntf_2tVh8nqLxq4GbDe0K1F6S9zRcWm

numberintegerRequired
token_idstringRequired
code_attemptobject or nullOptional

The attempt without its code

4 child attributes
codestringOptional

Never retained; the event keeps a domain-separated digest beside the record

networkstringRequired
request_referencestringRequired
token_referencestringRequired
code_requestobject or nullOptional

CodeRequest is the token service relaying the cardholder's chosen verification method.

4 child attributes
methodstringRequired

Otp_sms or otp_email

networkstringRequired
request_referencestringRequired
token_referencestringRequired
command_idstringOptional
controls_requestobject or nullOptional

ControlsRequest replaces a token's controls at an exact sequence.

3 child attributes
controlsobjectRequired

Controls are per-token spending controls. They only ever restrict further than the card's own controls, which still apply to every token authorization.

5 child attributes
blocked_mccsarray of stringsOptional
channelsarray of stringsOptional

Empty means every channel of the token's domain

daily_limit_amountintegerOptional
per_transaction_limit_amountintegerOptional
valid_untilstring · date-time or nullOptional
expected_sequenceintegerRequired
reasonstringRequired
kindstringRequired
lifecycleobject or nullOptional

LifecycleRequest is an issuer-initiated suspension, resumption or deletion.

3 child attributes
actionstringRequired

Suspend, resume or delete

expected_sequenceintegerRequired
reasonstringRequired
notificationobject or nullOptional

Notification is a token lifecycle notification from the token service.

7 child attributes
eventstringRequired

Activated, suspended, resumed or deleted

initiated_bystringRequired

Token_requestor, cardholder, network or issuer

networkstringRequired
notification_referencestringRequired
occurred_atstring · date-timeRequired
reasonstringOptional
token_referencestringRequired
outcomestringRequired
pan_updateobject or nullOptional

PANUpdate carries a replacement card to the token service. The pan_token is the issuer processor's surrogate; the certified connector resolves it to the PAN inside its boundary.

5 child attributes
card_idstringRequired

Example card_2tVh8nqLxq4GbDe0K1F6S9zRcWm

expiry_monthintegerRequired
expiry_yearintegerRequired
last4stringRequired
pan_tokenstringRequired
proposal_idstringOptional
reasonstringOptional
requestobject or nullOptional

AuthorizationRequest is the token service's token authorization request, bank-defined.

17 child attributes
card_verificationobjectRequired

CardVerification is what the issuer processor's security module found on the credentials the token service forwarded: the core never sees the CVV2 or the PAN.

3 child attributes
avsstringRequired

Match, partial, no_match or not_checked

cvv2stringRequired

Match, no_match or not_checked

expirystringRequired

Match, no_match or not_checked

device_sha256stringOptional

Wallet: opaque device binding digest

merchant_idstringOptional

Merchant: the exact processor merchant identity

networkstringRequired
pan_sourcestringRequired

Issuer_app, manual or on_file

pan_tokenstringRequired

The issuer processor's surrogate of the funding PAN

request_referencestringRequired
riskobjectRequired

Risk is the token service's and wallet provider's risk data, normalized by the connector. Scores are on the bank-defined scale 1 (highest risk) to 5 (lowest risk); 0 is not provided.

6 child attributes
account_scoreintegerOptional
device_countrystringOptional
device_scoreintegerOptional
phone_number_scoreintegerOptional
reason_codesarray of stringsOptional
recommended_decisionstringOptional

Approve, decline or require_idv

token_expiry_monthintegerRequired
token_expiry_yearintegerRequired
token_last4stringRequired
token_referencestringRequired

The token service's unique token reference, never the token number

token_requestor_idstringRequired

11 digits

token_requestor_namestringRequired
token_typestringRequired

Secure_element, cloud or card_on_file

use_casestringRequired
wallet_consent_idstringOptional

Push provisioning: the holder's recorded wallet consent

request_sha256stringRequired
resultobjectRequired

Token is a network token's current state as the bank holds it. It carries no token number.

28 child attributes
assurancestringRequired
card_idstringRequired

Example card_2tVh8nqLxq4GbDe0K1F6S9zRcWm

controlsobjectRequired

Controls are per-token spending controls. They only ever restrict further than the card's own controls, which still apply to every token authorization.

5 child attributes
blocked_mccsarray of stringsOptional
channelsarray of stringsOptional

Empty means every channel of the token's domain

daily_limit_amountintegerOptional
per_transaction_limit_amountintegerOptional
valid_untilstring · date-time or nullOptional
created_atstring · date-timeRequired
decisionobjectRequired

Decision is the issuer's answer to a token authorization request.

4 child attributes
assurancestringRequired
decisionstringRequired
reasonsarray of stringsRequired
verification_methodsarray of objectsOptional
device_sha256stringOptional
domain_controlsobjectRequired

DomainControls are the token domain restriction controls the issuer sets at provisioning.

4 child attributes
channelsarray of stringsRequired
cryptogram_requiredbooleanRequired
merchant_idstringOptional
token_requestor_idstringRequired
effective_statusstringRequired
holder_customer_idstringRequired

Example cust_2tVh8nqLxq4GbDe0K1F6S9zRcWm

idstringRequired
issuer_statusstringRequired
issuer_suspended_bystringOptional

Holder or staff

last_network_event_atstring · date-time or nullOptional
merchant_idstringOptional
networkstringRequired
network_statusstringRequired
original_card_idstringRequired

Example card_2tVh8nqLxq4GbDe0K1F6S9zRcWm

sequenceintegerRequired
token_expiry_monthintegerRequired
token_expiry_yearintegerRequired
token_last4stringRequired
token_referencestringRequired
token_requestor_idstringRequired
token_requestor_namestringRequired
token_typestringRequired
updated_atstring · date-timeRequired
use_casestringRequired
wallet_consent_idstringOptional
sequenceintegerRequired
token_idstringRequired
replayedbooleanRequired

Errors

Every error is a problem document with a stable code. See Errors.

400401403404409412413422424429500503

to move to open esc to close