PayPal

Overview

PayPal payouts allow users to receive instant payments directly to their PayPal 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, PayPal support is automatically included once enabled on your merchant account.

For Merchant-Initiated Payouts:

  • Users can link their PayPal account directly through the UI
  • Retrieve the PayPal 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 PayPal for your account
  • PayPal 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 PayPal payout destination:

  1. Link PayPal Account This allows the withdrawer to add a PayPal account associated with their email address as a payout destination.
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/withdraw/paypal \
    3 --header 'Authorization: YOUR_API_KEY' \ # gitleaks:allow
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --header 'x-coinflow-auth-user-id: user1234' \
    7 --data '
    8{
    9 "email": "user@example.com"
    10}
    11'
  2. Call Get Withdrawer This allows you to get the tokenized PayPal account details.
    Request
    1curl --request GET \
    2 --url https://api-sandbox.coinflow.cash/api/withdraw \
    3 --header 'Authorization: YOUR_API_KEY' \ # gitleaks:allow
    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": [],
    "cards": [],
    "ibans": [],
    "pixes": [],
    "efts": [],
    "rtpDisabled": false,
    "cardDisabled": false,
    "paypal": {
    "type": "paypal",
    "alias": "user@example.com",
    "token": "b4c6d82c-9843-53c1-93ea-bgbe25g62464" // gitleaks:allow
    }
    }
    }
  3. Initiate Payout This allows the withdrawer to request a payout and receive funds directly to their PayPal account.
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/merchant/withdraws/payout/delegated \
    3 --header 'Authorization: YOUR_API_KEY' \ # gitleaks:allow
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --data '
    7{
    8 "amount": {
    9 "cents": 400
    10 },
    11 "speed": "paypal",
    12 "account": "b4c6d82c-9843-53c1-93ea-bgbe25g62464", // PayPal token (Get from calling get withdrawer)
    13 "userId": "user1234",
    14 "idempotencyKey": "123-abc-456-def" // gitleaks:allow
    15}
    16'
    Response
    {
    "signature": "47pMMVtHceA8CiJwhuwM9E49Bysgaw5L5YtaBAzTiSotPy2zqBm3Eeg43KE9cnt5jdjMusfrUwEd4BPno36je1Jj"
    }

Important: Endpoint Varies by Payout Flow

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