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.
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.
It lets your server redeem an eligible hosted payout link directly to a recipient wallet without sending the recipient through the hosted redemption page.
Use it when your integration owns recipient collection and wants to complete PayPal or Venmo payout delivery through the API.
You need Basic Auth credentials, an eligible payout product, an order with a payout URL in cardCode, and exactly one recipient identifier.
Payout redemption starts as a normal order workflow and branches only after Get Order returns a payout URL.
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}.
Select the wallet in the request body. Bamboo requires exactly one recipient identifier.
| Wallet | Supported recipient fields | Notes |
|---|---|---|
PayPal | recipientEmail | Email only. Phone or handle values are rejected. |
Venmo | recipientEmail, recipientPhone, or recipientHandle | Provide exactly one recipient field per request. |
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.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"
}'{
"wallet": "PayPal",
"recipientEmail": "recipient@example.com"
}{
"wallet": "Venmo",
"recipientEmail": "recipient@example.com"
}{
"wallet": "Venmo",
"recipientPhone": "+14155550123"
}{
"wallet": "Venmo",
"recipientHandle": "@johndoe"
}Store the returned identifiers for reconciliation and status checks.
Treat the payout as delivered and store the returned transactionId and payoutBatchId.
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"Get payout status returns normalized status values for PayPal and Venmo payouts.
| Status | Meaning |
|---|---|
Pending | Payout accepted and still in progress. Check the status endpoint while processing. |
Completed | Funds delivered to the recipient. |
Unclaimed | Recipient has no PayPal or Venmo account. They have about 30 days to register before funds are returned. |
Failed | Payout rejected because of an invalid account, compliance block, blocked recipient, denied batch, or canceled batch. |
Returned | Unclaimed payout returned to sender after the claim window expired. |
Reversed | Funds reversed or refunded by PayPal after being claimed. |
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 payouts use PayPal's sandbox environment. No real money is transferred, the response shape is identical, and phone recipient testing may have limitations.
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.
Use these pages to complete the payout integration path.