Braintree, a PayPal service, is a full-stack payment platform that lets businesses accept, process, and settle online and mobile payments. Its GraphQL API exposes a single endpoint for processing transactions, vaulting customers and payment methods, generating client tokens, and searching payment records. Nexla connects to the Braintree GraphQL API to move transaction, customer, and payment-method data into and out of your data flows.
Power end-to-end data operations for your Braintree GraphQL API with Nexla. Our bi-directional Braintree GraphQL connector is purpose-built for Braintree GraphQL, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Braintree GraphQL or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Braintree GraphQL workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a Braintree GraphQL credential, you need a Braintree API key, which consists of a public key and a private key. Braintree GraphQL requests are authorized by sending the Base64-encoded combination of these two keys as an HTTP Basic Authorization header, and every request must also include a Braintree-Version date header (for example, Braintree-Version: 2019-01-01). Nexla handles the Base64 encoding and the version header for you once the public and private keys are supplied.
To obtain your Braintree API keys, follow these steps:
Sign in to the Braintree Control Panel. Use https://sandbox.braintreegateway.com for a sandbox account or https://www.braintreegateway.com for a production account.
Click the gear icon in the top-right corner of the Control Panel.
Select API from the dropdown menu.
Scroll to the API Keys section. Your Public Key is displayed directly.
To reveal the matching Private Key, click the View link in the Private Key column.
If no API keys exist yet, click the Generate New API Key button to create a public/private key pair, then reveal the private key as described above.
Copy both the Public Key and the Private Key and store them securely for use when configuring your Nexla credential.
Important
Both the public key and private key grant access to your Braintree account, including the ability to move money. Keep them confidential, never commit them to source control, and never expose them on the client side. Sandbox keys work only against the Braintree sandbox environment; production keys work only against production.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your Braintree API public key in the Public Key field. This value is not secret on its own, but it is paired with your private key to authorize requests.
Enter your Braintree API private key in the Private Key field. This value is sensitive and must be kept confidential, as it grants full access to your Braintree account.
Nexla combines your public and private keys, Base64-encodes them, and sends them as an HTTP Basic Authorization header on every GraphQL request, along with the required Braintree-Version header. You do not need to encode the keys yourself.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Braintree GraphQL connector tile, then select the credential that will be used to connect to Braintree, and click Next; or, create a new Braintree GraphQL credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to fetch data from common Braintree GraphQL operations. Each template issues a GraphQL query against the Braintree endpoint. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Transaction Search using ID (Card Simple)
This endpoint template searches for a card transaction by its transaction ID. Use it to retrieve the current details and status of a specific transaction created through the Card Simple flow.
Supply the transaction ID and any GraphQL query variables required by the operation. Nexla organizes the response into one or more Nexsets.
Customer Search using ID (Card Vault)
This endpoint template retrieves a vaulted customer record by its customer ID. Use it to look up profile details and stored payment methods for a customer created through the Card Vault flow.
Supply the customer ID you want to look up. The query returns the matching customer node from the Braintree vault.
Payment Method Node Search using ID (Pay Pal As2)
This endpoint template retrieves a payment method node by its ID for the PayPal As2 flow. Use it to fetch the details of a stored PayPal payment method.
Supply the payment method node ID. The query returns the corresponding payment method details from the vault.
Customer Search using ID (Pay Pal Ba)
This endpoint template retrieves a customer record by its customer ID for the PayPal Billing Agreement (Ba) flow. Use it to look up profile details and linked PayPal payment methods.
Supply the customer ID you want to look up. The query returns the matching customer node from the Braintree vault.
Payment Method Node Search using ID (Pay Pal Ba)
This endpoint template retrieves a payment method node by its ID for the PayPal Billing Agreement (Ba) flow. Use it to fetch the details of a stored PayPal billing agreement payment method.
Supply the payment method node ID. The query returns the corresponding payment method details from the vault.
Transaction Search using ID (Pay Pal Ba)
This endpoint template searches for a PayPal Billing Agreement (Ba) transaction by its transaction ID. Use it to retrieve the current details and status of a specific PayPal transaction.
Supply the transaction ID you want to look up. The query returns the matching transaction node.
Customer Search using CreateDate
This endpoint template searches for customers by their creation date. Use it to ingest customer records that were created within a given date range for reporting or synchronization.
Supply the create-date range for the search. The query returns all matching customer records, which Nexla organizes into Nexsets.
Transaction Search using Customer ID
This endpoint template searches for all transactions associated with a given customer ID. Use it to retrieve a customer's transaction history.
Supply the customer ID whose transactions you want to retrieve. The query returns all matching transaction records.
Transaction Search using CreateDate
This endpoint template searches for transactions by their creation date. Use it to ingest transactions created within a given date range for reporting, reconciliation, or synchronization.
Supply the create-date range for the search. The query returns all matching transaction records, which Nexla organizes into Nexsets.
Transaction Search via Node
This endpoint template searches for transactions using Braintree's node-based search interface. Use it when you need to fetch transaction records through the GraphQL node query.
Supply the search criteria required by the node query. The query returns the matching transaction nodes.
Compound Search (Transaction + Customer)
This endpoint template performs a combined search that returns both transaction and customer data in a single GraphQL operation. Use it when you need related transaction and customer records together.
Supply the search criteria for the compound query. The query returns the matching transaction and customer records, which Nexla organizes into Nexsets.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Braintree GraphQL data sources can also be manually configured to run any valid GraphQL query against the Braintree endpoint, including operations not covered by the pre-built templates, chained calls, or custom query variables. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, GraphQL request body, path to data, metadata, and request headers.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Braintree GraphQL data source. Nexla will now begin fetching data from the configured operation and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Braintree GraphQL destination, and select the Send to Destination option from the menu. Select the Braintree GraphQL connector from the list of available destination connectors, then select the credential that will be used to connect to Braintree, and click Next; or, create a new Braintree GraphQL credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Braintree GraphQL mutations. Each template issues a GraphQL mutation, sending each Nexset record as the request body. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Transaction Sale
This endpoint template creates a sale transaction, which authorizes and submits a charge for settlement in a single operation. Use it to process a straightforward one-step payment from a Nexset record.
Each record from your Nexset is sent as the GraphQL mutation body to create a sale transaction. Ensure the record contains the payment method and amount fields required by the operation.
Transaction Authorization (Card Simple)
This endpoint template authorizes a card transaction through the Card Simple flow, reserving funds without capturing them. Use it as the first step of a two-step authorize-then-capture payment.
Each record from your Nexset is sent as the GraphQL mutation body to authorize a transaction. Ensure the record contains the payment method and amount fields required by the operation.
Transaction Capture (Card Simple)
This endpoint template captures a previously authorized card transaction through the Card Simple flow, submitting the reserved funds for settlement. Use it as the second step of a two-step authorize-then-capture payment.
Each record from your Nexset is sent as the GraphQL mutation body to capture a transaction. Ensure the record contains the transaction ID and any amount required by the operation.
Customer Create (Card Vault)
This endpoint template creates a customer record in the vault along with a card payment method through the Card Vault flow. Use it to store customer and card details for future charges.
Each record from your Nexset is sent as the GraphQL mutation body to create a vaulted customer. Ensure the record contains the customer and payment method fields required by the operation.
Payment Method Create (Card Vault)
This endpoint template adds a card payment method to an existing vaulted customer through the Card Vault flow. Use it to store an additional card for a customer that already exists in the vault.
Each record from your Nexset is sent as the GraphQL mutation body to create a payment method. Ensure the record references the customer and contains the payment method fields required by the operation.
Transaction Authorization (Card Vault)
This endpoint template authorizes a transaction against a vaulted card payment method through the Card Vault flow, reserving funds without capturing them. Use it as the first step of a two-step payment using stored card details.
Each record from your Nexset is sent as the GraphQL mutation body to authorize a transaction. Ensure the record references the vaulted payment method and contains the amount required by the operation.
Transaction Capture (Card Vault)
This endpoint template captures a previously authorized transaction through the Card Vault flow, submitting the reserved funds for settlement. Use it as the second step of a two-step payment using stored card details.
Each record from your Nexset is sent as the GraphQL mutation body to capture a transaction. Ensure the record contains the transaction ID and any amount required by the operation.
This endpoint template authorizes a card transaction in a specified currency through the Card Multiple Currency flow, reserving funds without capturing them. Use it when charging in a currency tied to a specific merchant account.
Each record from your Nexset is sent as the GraphQL mutation body to authorize a transaction. Ensure the record contains the payment method, amount, and merchant account fields required by the operation.
Transaction Capture (Card Multiple Currency)
This endpoint template captures a previously authorized multiple-currency card transaction, submitting the reserved funds for settlement. Use it as the second step of a multi-currency authorize-then-capture payment.
Each record from your Nexset is sent as the GraphQL mutation body to capture a transaction. Ensure the record contains the transaction ID and any amount required by the operation.
Transaction Authorization (Pay Pal As1)
This endpoint template authorizes a PayPal transaction through the PayPal As1 flow, reserving funds without capturing them. Use it as the first step of a two-step PayPal payment.
Each record from your Nexset is sent as the GraphQL mutation body to authorize a transaction. Ensure the record contains the payment method and amount fields required by the operation.
Transaction Capture (Pay Pal As1)
This endpoint template captures a previously authorized PayPal transaction through the PayPal As1 flow, submitting the reserved funds for settlement. Use it as the second step of a two-step PayPal payment.
Each record from your Nexset is sent as the GraphQL mutation body to capture a transaction. Ensure the record contains the transaction ID and any amount required by the operation.
Payment Method Create (Pay Pal As2)
This endpoint template creates a PayPal payment method through the PayPal As2 flow. Use it to vault a PayPal payment method for future charges.
Each record from your Nexset is sent as the GraphQL mutation body to create a payment method. Ensure the record contains the payment method fields required by the operation.
Transaction Authorization (Pay Pal As2)
This endpoint template authorizes a PayPal transaction through the PayPal As2 flow, reserving funds without capturing them. Use it as the first step of a two-step PayPal payment using a vaulted payment method.
Each record from your Nexset is sent as the GraphQL mutation body to authorize a transaction. Ensure the record references the payment method and contains the amount required by the operation.
Transaction Capture (Pay Pal As2)
This endpoint template captures a previously authorized PayPal As2 transaction, submitting the reserved funds for settlement. Use it as the second step of a two-step PayPal payment.
Each record from your Nexset is sent as the GraphQL mutation body to capture a transaction. Ensure the record contains the transaction ID and any amount required by the operation.
Customer Create (Pay Pal Ba)
This endpoint template creates a customer record along with a PayPal billing agreement payment method through the PayPal Ba flow. Use it to store customer and PayPal details for future charges.
Each record from your Nexset is sent as the GraphQL mutation body to create a vaulted customer. Ensure the record contains the customer and payment method fields required by the operation.
Transaction Authorization (Pay Pal Ba)
This endpoint template authorizes a PayPal transaction through the PayPal Billing Agreement (Ba) flow, reserving funds without capturing them. Use it as the first step of a two-step billing-agreement payment.
Each record from your Nexset is sent as the GraphQL mutation body to authorize a transaction. Ensure the record references the payment method and contains the amount required by the operation.
Transaction Capture (Pay Pal Ba)
This endpoint template captures a previously authorized PayPal Billing Agreement (Ba) transaction, submitting the reserved funds for settlement. Use it as the second step of a two-step billing-agreement payment.
Each record from your Nexset is sent as the GraphQL mutation body to capture a transaction. Ensure the record contains the transaction ID and any amount required by the operation.
Client Token w/MerchantAccountId
This endpoint template generates a client token scoped to a specific merchant account ID. Client tokens are used to initialize Braintree's client SDKs so end users can submit payment details securely.
Each record from your Nexset is sent as the GraphQL mutation body to generate a client token. Ensure the record contains the merchant account ID required by the operation.
Client Token
This endpoint template generates a client token used to initialize Braintree's client SDKs so end users can submit payment details securely. Use it when you do not need to scope the token to a specific merchant account.
Each record from your Nexset is sent as the GraphQL mutation body to generate a client token. Include any variables required by the operation.