| 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"

}
