Retrieve 3DS verification
| Time | Status | User Agent | |
|---|---|---|---|
| Make a request to see history. |
URL Expired
The URL for this request expired after 30 days.
verificationId
uuid
required
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
The link to this verification resource.
self object
steps
object
required
The link to this verification's steps (/card-verifications/3ds/{verificationId}/steps).
steps object
currentStep
object
The link to the step the client should execute next. Absent once the
verification reaches a terminal state (completed or failed).
currentStep 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.
category
string
enum
required
Stable, provider-agnostic failure category an integrator can branch on without
enumerating raw issuer codes.
authentication_declined``authentication_canceled``cvc_check_failed``card_declined``contact_issuer``card_blocked``too_many_attempts``not_supported``temporary_issue``processing_error
description
string
required
Human-readable explanation of the failure, safe to relay to the cardholder.
retryable
boolean
required
Whether the cardholder can retry now and plausibly succeed.
issuerMessage
string
The issuer's own cardholder-facing message, when provided (frictionless declines only).
code
string
Raw provider reason code (e.g. a 3DS transStatusReason or a Stripe decline_code),
surfaced for support escalation.
providerMessage
string
The payment provider's cardholder-safe message for the specific failure code (e.g.
"Your card does not support this type of purchase."). Finer-grained than the
category-level description; absent when the provider supplied none.
adviceCode
string
The issuer's advice code on authorization declines, verbatim from the payment
provider. Documented values: try_again_later, do_not_try_again,
confirm_card_data; values the provider introduces later pass through unchanged.
Absent when the issuer gave no advice (e.g. 3-D Secure authentication failures).
acsReferences
object
3DS ACS reference identifiers, when returned by the issuer — useful when escalating to the issuer.
acsReferences 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.
``400 The server cannot or will not process the request due to something that is perceived to be a client error
``401 Authentication credentials were either missing or incorrect
``403 Authentication credentials used do not have have permissions to perform the request
``404 The requested resource was not found on the server
``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/verificationId \
--header 'accept: application/hal+json'
xxxxxxxxxx
{
"_links": {
"self": {
"href": "/card-verifications/3ds/9fab1bea-bc1e-4757-bd47-479422e5983b"
},
"steps": {
"href": "/card-verifications/3ds/9fab1bea-bc1e-4757-bd47-479422e5983b/steps"
},
"currentStep": {
"href": "/card-verifications/3ds/9fab1bea-bc1e-4757-bd47-479422e5983b/steps/fingerprint"
}
},
"id": "9fab1bea-bc1e-4757-bd47-479422e5983b",
"subaccountId": "f297d659-c13d-4219-aeaa-e10a845140a5",
"cardId": "8309b5f8-d5d8-49bb-9001-38bf1bb0f1e4",
"type": "3DS",
"currentStepId": "fingerprint",
"state": "in-progress",
"createdAt": "2024-01-04T18:53:32.000Z",
"updatedAt": "2023-01-04T10:55:12.000Z"
}