Desktop/Mobile Website Browser - Cash App Pay
Accept Cash App Pay payment by redirecting the shopper to the Cash App Pay App (on mobile) or the Cash App hosted QR code page (on desktop).
Step 1. Initialize a Payment Intent
Create a Payment Intent with the Create a Payment Intent API API.
POST /api/v1/pa/payment_intents/create
Step 2. Redirect to Cash App to complete payment
When a shopper selects to pay with Cash App Pay on their desktop/mobile browser, call the Confirm a Payment Intent API API to get a redirect URL.
POST /api/v1/pa/payment_intents/{id}/confirm
You will get a response similar to the following.
You should redirect the shopper to the Cash App with the next_action.url
returned in the confirm Payment Intent response. On mobile, the installed Cash App will be invoked directly. If Cash App is not installed, the shopper will be redirected to the App Store. On desktop, a QR code will be displayed for the shopper to scan using their Cash App.
Step 3. Capture Cash App Pay payments
After you ship your products to shoppers, you can capture the payments by calling the API endpoints below. You can also partially capture the transaction, and the remaining amount will be returned to the shopper immediately.
Please do not auto-capture or capture the payments before you ship your products as this may raise the chance of disputes from your shoppers, resulting in payments reversal.
POST /api/v1/pa/payment_intents/{id}/capture
You will get a response similar to the following.
Step 4. Query the payment result status
To get the payment result, we suggest you poll the status of the Payment Intent via the Retrieve a Payment Intent API API. You may start polling the Payment Intent status after the shopper is redirected back to your website or mobile app, i.e., the return_url
passed when creating the Payment Intent.
GET /api/v1/pa/payment_intents/{id}
In addition, Airwallex will notify you of the payment result asynchronously via the webhooks. Please refer to the webhook documentation to set up your webhook accordingly. Although subscribing to webhook events is optional, it is recommended to subscribe to the payment_intent.succeeded
webhook which indicates that the shopper has paid the order.