Bamboo Card
HomeGuidesPayPal and Venmo payouts
Wallet payouts

Send payouts to PayPal or Venmo

Use payout redemption to take an eligible payout weblink returned by Get Order, send the value to a PayPal or Venmo recipient, and track the payout until it reaches a final status.

What this flow does

It lets your server redeem an eligible hosted payout link directly to a recipient wallet without sending the recipient through the hosted redemption page.

When to use it

Use it when your integration owns recipient collection and wants to complete PayPal or Venmo payout delivery through the API.

Prerequisites

You need Basic Auth credentials, an eligible payout product, an order with a payout URL in cardCode, and exactly one recipient identifier.

End-to-end flow

Payout redemption starts as a normal order workflow and branches only after Get Order returns a payout URL.

1Place order
2Get order
3Read cardCode
4Extract weblink
5Redeem payout
6Handle 200 or 202
7Check status

After Place Order, call Get Order. If items[].cards[].cardCode is a normal gift-card code, continue your standard delivery flow. If it is a payout URL, extract the final path segment and use it as {weblink}.

Wallet and recipient compatibility

Select the wallet in the request body. Bamboo requires exactly one recipient identifier.

WalletSupported recipient fieldsNotes
PayPalrecipientEmailEmail only. Phone or handle values are rejected.
VenmorecipientEmail, recipientPhone, or recipientHandleProvide exactly one recipient field per request.

Extract the weblink token

The payout endpoint takes the final path segment from the hosted payout URL returned in cardCode.

Preserve URL encoding, especially %3D padding. Do not send a double-encoded token such as %253D.

const cardCode =
  "https://redeem.bamboocard.com/Y1hqd1RiT1EvUXpYZXFtSmZ6dnZ0QjA%3D%3D";

const url = new URL(cardCode);
const weblink = url.pathname.split("/").filter(Boolean).pop();

// Use weblink exactly as returned in the path.
// Do not decode %3D and do not double-encode it as %253D.

Redeem the payout

Send the selected wallet and one recipient identifier from your server. The same endpoint handles PayPal and Venmo.

curl --request POST \
  --url https://api.bamboocardportal.com/api/Integration/v2/payout/redeem/Y1hqd1RiT1EvUXpYZXFtSmZ6dnZ0QjA%3D%3D \
  --header "Authorization: Basic YOUR_BASE64_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
    "wallet": "PayPal",
    "recipientEmail": "recipient@example.com"
  }'

PayPal email

{
  "wallet": "PayPal",
  "recipientEmail": "recipient@example.com"
}

Venmo email

{
  "wallet": "Venmo",
  "recipientEmail": "recipient@example.com"
}

Venmo phone

{
  "wallet": "Venmo",
  "recipientPhone": "+14155550123"
}

Venmo handle

{
  "wallet": "Venmo",
  "recipientHandle": "@johndoe"
}

Handle 200 and 202

Store the returned identifiers for reconciliation and status checks.

200 OK

Payout completed

Treat the payout as delivered and store the returned transactionId and payoutBatchId.

202 Accepted

Payout processing

PayPal accepted the payout but it has not reached a final state. Check the status endpoint while processing.

curl --request GET \
  --url https://api.bamboocardportal.com/api/Integration/v2/payout/status/Y1hqd1RiT1EvUXpYZXFtSmZ6dnZ0QjA%3D%3D \
  --header "Authorization: Basic YOUR_BASE64_TOKEN" \
  --header "Accept: application/json"

Status lifecycle

Get payout status returns normalized status values for PayPal and Venmo payouts.

StatusMeaning
PendingPayout accepted and still in progress. Check the status endpoint while processing.
CompletedFunds delivered to the recipient.
UnclaimedRecipient has no PayPal or Venmo account. They have about 30 days to register before funds are returned.
FailedPayout rejected because of an invalid account, compliance block, blocked recipient, denied batch, or canceled batch.
ReturnedUnclaimed payout returned to sender after the claim window expired.
ReversedFunds reversed or refunded by PayPal after being claimed.

Idempotency, sandbox, and security

Idempotency and recipient locking

Re-submitting the same weblink does not create a second payout. If an earlier attempt used a different recipient, Bamboo rejects the request with a recipient mismatch error.

Sandbox

Sandbox payouts use PayPal's sandbox environment. No real money is transferred, the response shape is identical, and phone recipient testing may have limitations.

Security

Use these endpoints server-to-server only. Never expose Client Secrets. Treat payout links and recipient identifiers as sensitive, and avoid logging full recipient data.

Related documentation

Use these pages to complete the payout integration path.