Cash App Pay: Partner API and Pay Kit
Create a customer request, get a grant, charge. Sandbox Network API. Keys expire in 30 days.
devrels.xyz/a/279Cash App Pay is a checkout method. The customer pays from Cash App balance or a linked bank, in one shot. Square/Block publishes the docs at developers.cash.app/home. Index: /llms.txt. Agents can also hit developers.cash.app/_mcp/server.
Afterpay is the installment product on the same portal. Cash App Pay is the wallet charge. Do not mix the two in one integration.
Two doors
Home splits the work. Sellers add Pay or Afterpay to a store. Payment service providers build and keep the platform integration. The Partner API docs are for PSPs. Merchants on Shopify, Magento, or Salesforce Commerce Cloud use the platform path, not this API.
| Piece | Job |
|---|---|
| Customer Request API | Ask the customer for a grant (charge, etc.) |
| Network API | Brands, merchants, payments from those grants |
| Management API | API keys and webhooks |
| Pay Kit (JS / iOS / Android) | Browser or app UI over Customer Request |
There is no official server SDK. You write HTTPS. Docs recommend Pay Kit unless Partner Engineering said API-only is right for you.
Happy path
Partner Engineering provisions a developer account, a Client ID, and a long-lived client secret. You mint operational keys from that. Keys expire in 30 days. Rotate before expires_at. The secret on create is shown once.
Flow: create a customer request (Pay Kit or API) → customer approves → you get a grant → Network API takes the payment. Web, mobile, and POS all use that shape. Web checkout often shows a QR the phone scans.
curl --location 'https://sandbox.api.cash.app/network/v1/brands' \
--header 'Accept: application/json' \
--header 'Authorization: Client TEST_CLIENT_ID TEST_API_KEY_ID' \
--header 'Content-Type: application/json' \
--header 'X-Region: SEA' \
--header 'X-Signature: sandbox:skip-signature-check' \
--data '{
"brand": { "name": "My Brand", "reference_id": "external-id" },
"idempotency_key": "e345c3fb-1caa-46fd-b0d3-aa6c7b00ab19"
}'Network and Management use Authorization: Client <Client ID> <API Key ID>. Customer Request, from a browser or POS, uses the Client ID only. Never put the API key in the browser. Production needs a real X-Signature. Sandbox may send sandbox:skip-signature-check.
Then create a merchant under that brand, still on /network/v1/merchants, with a reference_id you own. Brands and merchants require that field so you can look them up later without Cash App’s id.
People and links
| Who / what | Where |
|---|---|
| Docs home | developers.cash.app/home |
| Partner API | Partner API welcome |
| Quickstart | API Integration Quickstart |
| GitHub | cashapp |
| X | @CashApp |
Keep reading
Grid is the Squads REST API. Create a smart account, move money, attach passkeys. V4 on-chain multisig stays the program article.
Define an intent; Relay solvers fill across 69+ chains — integrate via Quote, Execute, and Status.
One API to many local licensed on/off-ramp providers. Borderless sits outside the flow of funds and routes compliance and payouts through partner PFIs.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
