How To: Add Support for Venmo Payout
Overview
Venmo payouts allow users to receive instant payments directly to their Venmo account. This payout method is available for US-based users and provides a familiar, convenient payment experience.
UI Implementation
If you’re using Coinflow’s Bank Authentication UI, Venmo support is automatically included once enabled on your merchant account.
For Merchant-Initiated Payouts:
- Users can link their Venmo account directly through the UI
- Retrieve the Venmo token using the Get Withdrawer Endpoint
- Pass the token to your payout endpoint just like bank account or card tokens
For User-Initiated Payouts via SDKs:
- No additional implementation required
- Contact your Coinflow integration specialist to enable Venmo for your account
- Venmo will automatically appear as a payout option in the SDK
API Implementation
After following your usual KYC verification flow, follow these steps to allow linking a Venmo payout destination:
- Link Venmo Account
This allows the withdrawer to add a Venmo account associated with their phone number as a payout destination.
curl --request POST \ --url https://api-sandbox.coinflow.cash/api/withdraw/venmo \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'x-coinflow-auth-user-id: user1234' \ --data ' { "phoneNumber": "3475688633" } ' - Call Get Withdrawer
This allows you to get the tokenized Venmo account details.
curl --request GET \ --url https://api-sandbox.coinflow.cash/api/withdraw \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'x-coinflow-auth-user-id: user1234'{ "withdrawer": { "_id": "68aa405463dc197a7d9410cc", "__v": 0, "availability": { "status": "Functional", "reason": "Initial", "editor": "system", "updatedAt": "2025-08-23T22:27:31.970Z" }, "currency": "USD", "email": "shdhdj@gmail.com", "merchant": "6840bca9c7cb21ee5baaae76", "originalCurrency": "USD", "riskScoreOverride": false, "user": true, "verification": { "hash": "8279804db6754cd1bf3d21b81eea4fa630321e1a", "vendor": "persona", "reference": "ver_sjrs9QqtDujv9kv4oKdgP8zo81Nn", "status": "approved", "attested": false }, "wallets": [ { "wallet": "user1234", "blockchain": "user" } ], "watchlistExempt": "Unknown", "bankAccounts": [ { "alias": "Plaid Checking 0000", "token": "43c5a51e-6f2c-4e09-82ae-e000b97a9f1c", "routingNumber": "011401533", "last4": "0000", "accountHash": "a66621183ad216e4543f9004426a263ad58385f9", "rtpEligible": true, "reference": "68aa40746a3e3704a7618924" }, { "alias": "Plaid Saving 1111", "token": "26d454b3-a928-4b7d-956d-90197c33a797", "routingNumber": "011401533", "last4": "1111", "accountHash": "171e7a6868b9c2b1b3ae64ab39e2660252dc90b4", "rtpEligible": true, "reference": "68aa40746a3e3704a7618924" } ], "cards": [], "ibans": [], "pixes": [], "efts": [], "rtpDisabled": false, "cardDisabled": false, "venmo": { "type": "venmo", "alias": "(XXX) XXX-8633", "token": "a8bbb23b-8732-42b0-82d9-afad14f51453" } } } - Initiate Payout
This allows the withdrawer to request a payout and receive funds directly to their Venmo account.
curl --request POST \ --url https://api-sandbox.coinflow.cash/api/merchant/withdraws/payout/delegated \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "amount": { "cents": 400 }, "speed": "venmo", "account": "a8bbb23b-8732-42b0-82d9-afad14f51453", // Venmo token (Get from calling get withdrawer) "userId": "user1234", "idempotencyKey": "123-abc-456-def" } '{ "signature": "47pMMVtHceA8CiJwhuwM9E49Bysgaw5L5YtaBAzTiSotPy2zqBm3Eeg43KE9cnt5jdjMusfrUwEd4BPno36je1Jj" }
Important: Endpoint Varies by Payout Flow
The endpoint to initiate a payout may differ depending on your payout flow:
- Merchant-funded payouts: Pass the Venmo token to the do payout endpoint
- User-initiated payouts: Pass the Venmo token to the get transaction endpoint