Level 2 and Level 3 card data support for Braintree v2.0
The Braintree v2.0 payment gateway integration gives you the flexibility to submit Level 2 and Level 3 credit card data.
Prerequisites
- Work with Braintree to correctly set up Level 2 and Level 3 requests in your Braintree merchant account.
- In Zuora, configure the CommodityCode and ProductCode custom fields on the Product Rate Plan Charge object. When configuring a Braintree v2.0 gateway instance, the API names (without "
__c
") of these custom fields are required. For more information about custom fields, see Custom object definitions.
Enable Level 2 and Level 3 card data submission
On the Braintree v2.0 gateway configuration page, complete the following tasks:
- Select Enable Level 2 Processing and Enable Level 3 Processing. With these settings enabled, additional information such as the amount of sales tax and order and line items will be passed to the gateway when processing a credit card transaction. This information might result in lower interchange rates on eligible commercial, corporate, and purchasing cards. For more information about Zuora's support for Level 3 and Level 2 data, see Level 2 and Level 3 Card Data.
-
In the CommodityCode Custom Field API Name and ProductCode Custom Field API Name fields, enter the API names of the CommodityCode and ProductCode custom fields on the Product Rate Plan Charge object, respectively. Enter the API name without the
__c
suffix. These two fields are required to qualify your merchant account for Level 3 interchange rates. If these fields are not specified, the Level 3 data will not be sent to the Braintree gateway.
Field mappings
The following table describes the data mappings between Zuora and Braintree for Level 2 and Level 3 processing. For a detailed description of each field, see Braintree’s documentation.
Zuora Field | Braintree API Field | |
---|---|---|
Level 2 card data |
gwOptions_InvoiceNum |
transaction.purchaseOrderNumber |
gwOptions_TaxSum |
transaction.tax.taxAmount |
|
gwOptions_TaxExempt |
transaction.tax.taxExempt |
|
Level 3 card data |
gwOptions_DiscountAmount |
transaction.discountAmount |
gwOptions_ShippingAmount |
transaction.shipping.shippingAmount |
|
gwOptions_SoldToContactZip |
transaction.shipping.shipsFromPostalCode |
|
gwOptions_SoldToContactCountry |
transaction.shipping.shippingAddress.countryCodeAlpha3 |
|
gwOptions_SoldToContactZip |
transaction.shipping.shippingAddress.postalCode |
|
InvoiceDetailSkuName |
transaction.lineItems.name |
|
N/A |
transaction.lineItems.kind |
|
InvoiceDetailQuantity |
transaction.lineItems.quantity |
|
InvoiceDetailUnitCost |
transaction.lineItems.unitAmount |
|
InvoiceDetailUOM |
transaction.lineItems.unitOfMeasure |
|
InvoiceDetailAmntWithoutTax |
transaction.lineItems.totalAmount |
|
InvoiceDetailTaxAmnt |
transaction.lineItems.taxAmount |
|
InvoiceDetailDiscountAmnt |
transaction.lineItems.discountAmount |
|
RatePlanChargeProductCode |
transaction.lineItems.productCode |
|
RatePlanChargeCommodityCode |
transaction.lineItems.commodityCode |
|
gwOptions_SoldToContactFirstName |
transaction.shipping.shippingAddress.firstName |
|
gwOptions_SoldToContactLastName |
transaction.shipping.shippingAddress.lastName |
|
gwOptions_SoldToContactAddress1 |
transaction.shipping.shippingAddress.streetAddress |
|
gwOptions_SoldToContactAddress2 |
transaction.shipping.shippingAddress.extendedAddress |
|
gwOptions_SoldToContactCity |
transaction.shipping.shippingAddress.locality |
|
gwOptions_SoldToContactState |
transaction.shipping.shippingAddress.region |