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-Custodial 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:

  1. Link Venmo Account This allows the withdrawer to add a Venmo account associated with their phone number as a payout destination.
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/withdraw/venmo \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --header 'x-coinflow-auth-user-id: user1234' \
    7 --data '
    8{
    9 "phoneNumber": "3475688633"
    10}
    11'
  2. Call Get Withdrawer This allows you to get the tokenized Venmo account details.
    Request
    1curl --request GET \
    2 --url https://api-sandbox.coinflow.cash/api/withdraw \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'x-coinflow-auth-user-id: user1234'
    Response
    {
    "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"
    }
    }
    }
  3. Initiate Payout This allows the withdrawer to request a payout and receive funds directly to their Venmo account.
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/merchant/withdraws/payout/delegated \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --data '
    7{
    8 "amount": {
    9 "cents": 400
    10 },
    11 "speed": "venmo",
    12 "account": "a8bbb23b-8732-42b0-82d9-afad14f51453", // Venmo token (Get from calling get withdrawer)
    13 "userId": "user1234",
    14 "idempotencyKey": "123-abc-456-def"
    15}
    16'
    Response
    {
    "signature": "47pMMVtHceA8CiJwhuwM9E49Bysgaw5L5YtaBAzTiSotPy2zqBm3Eeg43KE9cnt5jdjMusfrUwEd4BPno36je1Jj"
    }

Important: Endpoint Varies by Payout Flow

The endpoint to initiate a payout may differ depending on your payout flow: