Skip to main content
Venmo is a digital wallet for customers in the United States. Customers approve the payment in the Venmo app instead of entering card details. Payrails processes Venmo through Braintree.

How a Venmo payment works

Venmo is an app-based payment method. The customer approves in Venmo before you call Payrails:
  1. The customer selects Venmo at checkout.
  2. The Braintree client SDK sends the customer to the Venmo app on mobile, or shows a QR code to scan on desktop.
  3. The customer approves the payment in the Venmo app.
  4. The Braintree client SDK returns a single-use payment method nonce to your checkout.
  5. You send the nonce to Payrails in the authorize request, and Payrails charges it through Braintree.
There’s no redirect: Payrails returns the result of the Braintree transaction in the authorize response.

Supported currencies and countries

Venmo supports USD (United States dollar) as its presentment currency. Payrails sends the currency you provide to Braintree without checking it first.

Supported workflows

Before you begin

Complete these steps before you send your first Venmo payment through Braintree:
  1. Set up a Braintree integration in your workspace. Follow the Braintree integration setup guide if you don’t have one yet.
  2. Make sure you registered your Braintree gateway account in the United States, and ask Braintree to enable Venmo on it. Braintree sets the account country at signup, and Venmo isn’t available on accounts registered elsewhere.
  3. Set up a Venmo merchant profile in Braintree with the name and logo the customer sees in the Venmo app.
  4. In the Payrails Portal, go to Settings → Integrations, open your Braintree integration, select Venmo under Payment methods, and save.
  5. Add Venmo as a payment option in your workflow.
  6. Add the Braintree client SDK with Venmo to your checkout, so it can return a Venmo nonce.

Request fields for Braintree

Send these fields in the authorize request, in addition to the standard authorize fields. Payrails checks Required fields and returns an error when one is missing. Fields required by the PSP pass the Payrails checks but the PSP can decline the payment without them.

Authorize a Venmo payment

Call authorize a payment with venmo as the paymentMethodCode. Put the nonce from the Braintree client SDK in paymentInstrumentData.paymentToken.
Authorize request
This example saves the Venmo account. Leave out storeInstrument for a one-off payment. The authorize response carries the result of the Braintree transaction. Confirm the final status through webhook notifications or the execution status before you fulfill the order.

How Braintree handles Venmo

  • Each nonce works for one transaction only. Get a new nonce from the Braintree client SDK for every customer-initiated payment.
  • With delayed capture, Payrails authorizes the payment, and you capture it later. Braintree accepts partial captures and several captures against one Venmo authorization.
  • To save the Venmo account, set storeInstrument to true. Braintree stores the account after a successful transaction, and Payrails keeps the reusable Braintree token on the instrument. Payrails charges later merchant-initiated transactions (MIT) against that token, with no customer present.
  • A zero-amount authorize saves the Venmo account without charging the customer.
Last modified on October 2, 2026