---
title: "View transaction async status"
method: GET
path: "/pay/v3/transactionAsyncStatus/{asyncTraceId}"
tags: ["Ecommerce"]
---

# View transaction async status

`GET /pay/v3/transactionAsyncStatus/{asyncTraceId}`

Gets information about the specified asynchronous transaction. Use this for tracking 3D Secure (3DS) transactions submitted through the [Run card transaction](https://docs.nexiopay.com/reference/runcardtransaction) or [Run card transaction with iframe](https://docs.nexiopay.com/reference/runcardtransactioniframe) endpoint.

Set the `check3ds` parameter to `true` in the [Create one-time-use token](https://docs.nexiopay.com/reference/createonetimeusetoken) endpoint to have the system return the `asyncTraceId` parameter for use in the path parameter for this endpoint. For a tutorial on the entire 3DS workflow, see the [Using 3DS to run transactions](https://docs.nexiopay.com/docs/using-3ds-to-run-transactions) topic. 

For 3DS transactions, the history object progresses through the following flow for a successful payment:<ul style='margin-top: -5px; margin-bottom: -5px'><li>`processFromApi`</li><li>`iframe`</li><li>`popup`</li><li>`finale`</li></u>

### See also
For tracking transactions for alternative payment methods (APMs), see the [View APM transaction async status](https://docs.nexiopay.com/reference/viewapmtransactionasyncstatus) endpoint.


<div style="display:none;">

## Request parameters
- asyncTraceId

## Response parameters
- gatewayResponse
- gatewayResponse.refNumber
- gatewayResponse.gatewayName
- history.processFromApi
- history.processFromApi.initiatedAt
- history.processFromApi.updatedAt
- history.processFromApi.state
- history.iframe
- history.iframe.initiatedAt
- history.iframe.updatedAt
- history.iframe.state
- history.popup
- history.popup.initiatedAt
- history.popup.updatedAt
- history.popup.state
- history.finale
- history.finale.initiatedAt
- history.finale.updatedAt
- history.finale.state
- updatedAt
- initialTransactionStatus
- createdAt
- asyncTraceId

</div>

## Path parameters

- `asyncTraceId` string, required

## Response `200`

Success

- object
  - `gatewayResponse` object — Gateway-specific information. This will either be a `null` value if Nexio has not yet received a response from the gateway. Otherwise, it will be an object with information from the gateway about the transaction. The object returned here is the same as what Nexio returns in the payment response. <b>Details will vary by gateway. Do NOT code to any information included in this object</b>.
    - `gatewayName` GatewayName — unresolved $ref
    - `refNumber` RefNumber — unresolved $ref
  - `history` object — Provides information about current and past states of the asynchronous transaction.
    - `processFromApi` object — Presents information about the asynchronous transaction step beginning with a request to the [Run card transaction](https://docs.nexiopay.com/reference/runcardtransaction) or [Run card transaction with iframe](https://docs.nexiopay.com/reference/runcardtransactioniframe) endpoint and ending with the response with the URL for 3DS redirection.
      - `initiatedAt` InitiatedAt — unresolved $ref
      - `updatedAt` UpdatedAt — unresolved $ref
      - `state` string — The most recent state of this step of the asynchronous transaction flow. For `processFromApi`, this will be `redirectUrlReturnedFromGateway`, which indicates that Nexio returned the URL to use for 3DS validation. If you see any other state, you should contact [Integrations Support](https://docs.nexiopay.com/page/contact-us) for assistance.
    - `iframe` object — Presents information about the asynchronous transaction step beginning with loading the iframe (that asks the customer to confirm redirection to the bank 3DS authentication page) and ending with the customer clicking **Confirm** in the iframe.
      - `initiatedAt` InitiatedAt — unresolved $ref
      - `updatedAt` UpdatedAt — unresolved $ref
      - `state` State — unresolved $ref
    - `popup` object — Presents information about the asynchronous transaction step beginning with the opening of the bank's 3DS validation page and ending with the customer completing the authentication step, whether authorized or unauthorized.
      - `initiatedAt` string — The date and time this step of the asynchronous transaction began. - For `processFromApi`, this is when the request was sent to Nexio. - For `iframe`, this is when the system first loads the iframe. - For `popup`, this is when the system opens the bank's 3DS page for customer validation. - For `finale`, this is when the system get a response from the 3DS provider and returns control to the merchant website.
      - `updatedAt` string — The date and time this step of the asynchronous transaction was last modified. - For `processFromApi`, this is first the same as `initiatedAt` and then it is when the response was received. - For `iframe`, this is first the same as `initiatedAt` and then it is when the customer clicks **Confirm**. - For `popup`, this is first the same as `initiatedAt` and then it is when the customer completes (or fails) 3DS validation. Validation failure may occur when the customer does not successfully authenticate with the bank, the customer closes the page without validating, or the customer waits more than an hour to validate. - For `finale`, this is first the same as `initiatedAt` and then it may be when the system returns an error because of connection issues or the bank returns the payment response of success or declined.
      - `state` 'loaded' | 'submitted' — The most recent state of this step of the asynchronous transaction flow. For `iframe`, this will be one of the following: <ul style='margin-top: -5px; margin-bottom: -5px'><li>`loaded` - indicates that the redirect iframe was loaded for the customer.</li><li>`submitted` - indicates that the customer clicked the **Confirm** button in the iframe agreeing to be redirected to the bank for 3DS validation. If, instead, the customer clicks **Cancel** in the iframe, the system returns a 481 error indicating that the user canceled the request and the state for this step stays at `loaded`.</li></ul> For `popup`, this will be one of the following: <ul style='margin-top: -5px; margin-bottom: -5px'><li>`loaded` - indicates that the customer clicked **Confirm** in the iframe and the system successfully loaded the popup (or a new tab) that the bank has for 3DS validation.</li><li>`submitted` - indicates that the 3DS authentication step finished, whether authorized or unauthorized. If the customer exits the popup before completing the 3DS authentication with the bank, the system returns a 481 error indicating that the user canceled the request and the state for this step stays at `loaded`. If the customer never completes the authentication with the bank, the state for this step also stays at `loaded`, but no error gets returned. For either of these situations and what to do about them, see the [Using 3DS to run transactions](https://docs.nexiopay.com/docs/using-3ds-to-run-transactions) tutorial.</li></ul>
    - `finale` object — Presents information about the asynchronous transaction step beginning with the bank's 3DS page returning control to the merchant's finale page and ending with a payment response (whether declined or successful).
      - `initiatedAt` InitiatedAt — unresolved $ref
      - `updatedAt` UpdatedAt — unresolved $ref
      - `state` 'initiated' | 'error' | 'responseSent' — The most recent state of this step of the asynchronous transaction flow. For `finale`, this will be one of the following: <ul style='margin-top: -5px; margin-bottom: -5px'><li>`initiated` - indicates that the 3DS redirect has returned control to the merchant's finale page but that there was an error. For example, this happens if the customer authenticaes on the bank's 3DS page after more than one hour has elapsed.</li><li>`error` - indicates that there was an error between Nexio and the payment connection. Check the `gatewayResponse` and `initialTransactionStatus` to get more information for troubleshooting.</li><li>`responseSent` - indicates that Nexio returned a successful or declined payment response. Check the `gatewayResponse` and `initialTransactionStatus` to get more information about the successful or declined transaction.</li></ul>
  - `updatedAt` string — The date and time at which the record of this asynchronous transaction was last modified.
  - `initialTransactionStatus` string — The [transaction status](https://docs.nexiopay.com/docs/constant-transaction-values#transaction-status-transactionstatus) at the time Nexio received the payment response. This value does not update if the status changes later (such as with a voided transaction). This parameter has a value of `NULL` until the payment response gets returned after 3DS validation.
  - `createdAt` string — The date and time the asynchronous transaction was submitted to Nexio.
  - `asyncTraceId` string — The high-level ID of the unprocessed 3DS transaction for tracking progress and status. Use this value with the [View transaction async status](https://docs.nexiopay.com/reference/viewtransactionasyncstatus) endpoint to track the status of a 3DS transaction submitted through the [Run card transaction](https://docs.nexiopay.com/reference/runcardtransaction) or [Run card transaction with iframe](https://docs.nexiopay.com/reference/runcardtransactioniframe) endpoint.

## Other responses

- `401` — Unauthorized. For help with this error and other error codes, see [Common errors](https://docs.nexiopay.com/docs/common-errors) in the Guides area.

---

[API](https://skmtc.dev/nexiopay/apis/payments-api-reference.md) · [All operations](https://skmtc.dev/nexiopay/apis/payments-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nexiopay/payments-api-reference/revisions/b414b73979e5/schema)
