How To: Add Support for Venmo Payout

UI Implementation

If you are leveraging Coinflow’s bank authentication UI, once Venmo payouts are configured on your merchant account, your customers can link a Venmo account as a payout destination straight from the UI. If you are doing a merchant payout, the only thing you’ll need to do is pass the linked Venmo token into the payout endpoints. This token can be grabbed from the existing Get Withdrawer Endpoint that you use to link any bank account/card info.

If you are doing a user custodial payout through our SDKs, this is just a configuration setting on Coinflow’s end. No additional implementation is needed to support Venmo payouts. Reach out to your point of contact for integrations at Coinflow to enable this feature.

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"
    }

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

If you are paying out from a BYO wallet, pass the Venmo token to the do payoutendpoint. If you are paying out from a user custodial wallet, pass the Venmo token to the get transaction endpoint.