Documentation Index
Fetch the complete documentation index at: https://primer.io/docs/llms.txt
Use this file to discover all available pages before exploring further.
Before you begin
This guide assumes that you know how to:
Accept payments with Venmo via Braintree
Prepare the client session
Venmo via Braintree requires the following data to process a payment successfully. Pass the following data in the client session, or in the payment request (for manual payment creation).
| Parameter Name | Required | Description |
|---|
| currencyCode | ✓ | 3-letter currency code in ISO 4217 format, e.g. USD for US dollars |
order ↳ lineItems | ✓ | Details of the line items of the order |
Prepare the SDK for payments
Web
iOS
Android
React Native
Handle payment method
Venmo via Braintree requires instance of Redirect Manager in order to be presented to the user:const manager = await headless.createPaymentMethodManager('BRAINTREE_VENMO')
BRAINTREE_VENMO must be returned as PaymentMethod.type in the onAvailablePaymentMethodsLoad callback.When the user has selected the payment method, call the start function. This function automatically:
- opens a popup to present a loading indicator, then the payment method web page
- shows an overlay on top of your page that prompts the user to focus on the popup
myButton.addEventListener('click', () => {
manager.start()
})
Pre-requisites
Handling redirects is required for Payment Methods that present a webpage or open a 3rd party application for the customer to enter their credentials and validate their payment.To enable this feature, ensure that you include the urlScheme parameter when configuring the PrimerPaymentMethodOptions object.Set up redirects
let settings = PrimerSettings(
// ...
paymentMethodOptions: PrimerPaymentMethodOptions(
urlScheme: "{url scheme}", // e.g. primer://, yourscheme://
),
// ...
)
Handle redirects
When the user is redirected back to the main app, the function application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool is automatically called by iOS. Make sure to call Primer.shared.application... to forward this information to the SDK so that Universal Checkout can continue the flow.import PrimerSDK
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
// ...
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
return Primer.shared.application(application, continue: userActivity, restorationHandler: restorationHandler)
}
}
Handle payment method
Venmo via Braintree requires a Native UI Manager in order to be presented to the user:// 👇 Create the payment method manager
let nativeUIPaymentMethodManager = try PrimerHeadlessUniversalCheckout.NativeUIManager(paymentMethodType: "BRAINTREE_VENMO")
// 👇 Show the payment method
try nativeUIPaymentMethodManager.showPaymentMethod(intent: .checkout)
Handle payment method
Venmo via Braintree requires a Native UI Manager in order to be presented to the user:// 👇 Create the payment method manager
val nativeUiManager = PrimerHeadlessUniversalCheckoutNativeUiManager.newInstance("BRAINTREE_VENMO")
// 👇 Show the payment method
nativeUiManager.showPaymentMethod(this, PrimerSessionIntent.CHECKOUT)
Handle payment method
Venmo via Braintree requires a Native UI Manager in order to be presented to the user:// 👇 Create the payment method manager
const nativeUIManager = new NativeUIManager()
// 👇 Configure the payment method manager
await nativeUIManager.configure({ paymentMethodType: 'BRAINTREE_VENMO' })
// 👇 Show the payment method
await nativeUIManager.showPaymentMethod(SessionIntent.CHECKOUT)
This code is intended solely for illustrative purposes. As many redirect payment methods share a common approach, it is recommended to centralize the implementation of these methods within your codebase. For a practical demonstration of how to achieve this, please refer to the guide on how to handle Native UI payment methods.
Test
You can test one-off payments in the US only, with USD as currency. Recurring payments can only be tested in production.
Go live
You don’t need to do anything particular to go live — just make sure to use production credentials.