How To: Implement Cash App Payments
How To: Implement Cash App Payments
Overview
Merchants can accept payments from customers using Cash App. The integration flow works by creating a checkout order via the API, rendering the returned link as a QR code for desktop users, and automatically redirecting mobile users into the Cash App application via deep link.
API Implementation
1. Create a Cash App Checkout Order
Call the Cash App Checkout endpoint:
Response:
2. Display the Cash App Link
Render the cashAppLink as a QR code so desktop users can scan it with the Cash App on their phone.
You may use any QR code library. Below is an example using cuer:
3. Redirect Mobile Users (Recommended)
On mobile devices, it is recommended to automatically redirect the user to the cashAppLink. This deep links directly into the Cash App application where the customer can approve the payment.
Tip: Always provide a fallback “Open in Cash App” button for cases where the automatic redirect does not trigger (e.g. in-app browsers or WebViews).
4. Poll for Payment Status
After the customer is redirected, poll the payment status to determine when the payment has been completed:
Check the status field in the response. Possible statuses include:
5. Listen for Webhooks
Configure your webhook endpoint to listen for Settled events. This is the recommended way to confirm that a payment has completed rather than relying solely on polling.
Important Notes
Payment Window: Once a
cashAppLinkis generated, the customer has a limited time window to complete the payment (indicated byexpiresAt). If the link expires, the payment status will change toexpiredand you will need to create a new checkout order.
Sandbox: In sandbox mode, Cash App payments are processed by a mock provider and complete automatically. There is no need to scan the QR code or open Cash App during testing.
Mobile Deep Linking: The
cashAppLinksupports deep linking into the Cash App on both iOS and Android. For the best user experience on mobile, redirect the user to this URL automatically rather than requiring them to scan a QR code.

