List a card's 3DS verifications
| Time | Status | User Agent | |
|---|---|---|---|
| Make a request to see history. |
URL Expired
The URL for this request expired after 30 days.
cardId
uuid
required
state
string
enum
Optional filter to retrieve only verifications in the given state.
completedfailedin-progress
Allowed:
completed``failed``in-progress
accept
string
enum
Defaults to application/hal+json
Generated from available response content types
application/hal+jsonapplication/problem+json
Allowed:
application/hal+json``application/problem+json
``200 Successful operation
object
_links
object
required
self
object
required
self object
_embedded
object
required
cardVerifications
array of objects
required
cardVerifications*
object
_links
object
required
_links object
id
uuid
required
The unique identifier of the Verification entity.
subaccountId
uuid
required
The unique identifier of the subaccount related to this entity.
cardId
uuid
required
The unique identifier of the card related to this entity.
type
string
enum
required
Verification Step Type
3DS
currentStepId
string | null
enum
The identifier of the next step the client should execute. null when
the verification has no follow-up step — typically because the issuer
supports frictionless authentication, or because the card did not
require interactive 3DS. When null, state will be completed on the
creation response and clients should not call any /steps/... endpoint.
On retrieved/listed verifications, currentStepId is also null with
state: failed when the card was declined synchronously at creation
(the creation call returned 400, and the attempt is persisted as a
failed verification with its failureReason).
For the HIGHEST tier, a frictionless 3DS outcome does NOT complete the
verification: it returns stripe-holds-pending (the cardholder must
initiate two small verification holds via /steps/place-holds), which
then advances to stripe-amount-confirm (the cardholder reads the two
amounts back via /steps/amount-confirm).
fingerprint``challenge``stripe-3ds``stripe-holds-pending``stripe-amount-confirm``null
state
string
enum
required
Current Verification state
completed``failed``in-progress
clientSecret
string
Stripe SetupIntent or PaymentIntent client secret, used by the client to run stripe.handleNextAction. Returned whenever the verification is on the Stripe 3DS step — on the creation response (POST /card-verifications/3ds) and on the retrieve response (GET /card-verifications/3ds/{verificationId}) while currentStepId is stripe-3ds.
stripePublishableKey
string
Stripe publishable key to initialize Stripe.js on the client. Returned alongside clientSecret (creation response and retrieve response while currentStepId is stripe-3ds).
authenticationFlow
string | null
enum
The 3DS authentication flow attested by the issuer, surfaced at the terminal state.
challenge = the cardholder actively authenticated; frictionless = the issuer approved
without interaction; null = 3DS was not engaged (e.g. a low-risk automatic skip).
challenge``frictionless``null
failureReason
object
Normalized, customer-facing reason the verification failed. Present only when
state is failed — read it to triage the failure (category, retryability,
and the issuer's message). See the FailureReason schema.
failureReason object
createdAt
date-time
required
Date and time when this resource was created, in UTC, following ISO 8601 format.
updatedAt
date-time
required
Date and time when this resource was last updated, in UTC, following ISO 8601 format.
totalItems
integer
required
``401 Authentication credentials were either missing or incorrect
``403 Authentication credentials used do not have permissions to perform the request
``500 The server encountered an unexpected condition that prevented it from fulfilling the request
Updated 18 days ago
ShellNodeRubyPHPPython
Bearer
xxxxxxxxxx
curl --request GET \
--url https://api.astrada.co/card-verifications/3ds \
--header 'accept: application/hal+json'
xxxxxxxxxx
{
"_links": {
"self": {
"href": "/card-verifications/3ds?cardId=8309b5f8-d5d8-49bb-9001-38bf1bb0f1e4&state=failed"
}
},
"_embedded": {
"cardVerifications": [\
\
{\
\
"_links": {\
\
"self": {\
\
"href": "/card-verifications/3ds/9fab1bea-bc1e-4757-bd47-479422e5983b"\
\
},\
\
"steps": {\
\
"href": "/card-verifications/3ds/9fab1bea-bc1e-4757-bd47-479422e5983b/steps"\
\
}\
\
},\
\
"id": "9fab1bea-bc1e-4757-bd47-479422e5983b",\
\
"subaccountId": "f297d659-c13d-4219-aeaa-e10a845140a5",\
\
"cardId": "8309b5f8-d5d8-49bb-9001-38bf1bb0f1e4",\
\
"type": "3DS",\
\
"state": "failed",\
\
"authenticationFlow": "frictionless",\
\
"failureReason": {\
\
"category": "authentication_declined",\
\
"description": "The card issuer declined the 3-D Secure authentication.",\
\
"retryable": true,\
\
"code": "05",\
\
"providerMessage": "The card issuer declined this authentication attempt."\
\
},\
\
"createdAt": "2024-01-04T18:53:32.000Z",\
\
"updatedAt": "2024-01-04T18:55:12.000Z"\
\
}\
\
]
},
"totalItems": 1
}
Updated18 days ago