Powered by Coinflow
Payments · Documentation
Operational

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:

  1. 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"
    }
    '
  2. 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"
        }
      }
    }
  3. 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: