For the complete documentation index, see llms.txt. This page is also available as Markdown.

Direct Card API Call Flow

The call flow is a described below:

Direct Card API Call Flow
  1. The user navigates to the checkout page when ready to make a purchase.

  2. The user enters their card details and submits them. Upon submission, call the /direct/charges endpoint to request the payment via the vault proxy. This returns the charge object in the response, which includes details about the next step related to 3DS. The charge object acts as a comprehensive record of your payment request, tracking details such as the payment status throughout the checkout experience. After calling the /direct/charges endpoint, the payment status will be either processing or failed if the request was unsuccessful.

  3. Use the url and inputs from the charge.shopper_action object to initiate the 3DS workflow and display the 3DS page to the user to complete the authorization. This step is bypassed if no authorization is necessary.

  4. Once the authorization step is completed, you will be notified of the result through an authorization notification. If the authorization is successful, a fraud check will be conducted, payment status in this case would be updated to authorized. If the authorization is not successful, you will receive an error in the authorization notification and the payment status would be failed.

  5. If both the authorization and the fraud check are successful and you have sent us a pre_capture_ack_url parameter in /direct/charges endpoint, you will receive a capture approval request to decide whether to proceed to capture the payment. If you decide to proceed, the payment will be captured. Otherwise, the transaction will be canceled.

  6. After the payment capture is successful, you will receive a corresponding notification. Note that the capture success notification may take a few minutes to be delivered. The payment status will be updated to captured.

  7. In the meantime, you can check the status of your transaction by using the check status API call which will return the current state of the charge object.

Last updated

Was this helpful?