Braintree Payment Integration

About Braintree:

Braintree provides global commerce the tools people need to build businesses, accept payments, and enable commerce for their users. It’s the simplest way to get paid for your great ideas — across any device, and through almost any payment method.

Implemented Features:

FeatureLevel of Support
AuthImplemented
Sale (Auth+Capture)Implemented
CaptureImplemented
VoidImplemented
CreditImplemented
3DS 2 PassthroughImplemented
Credentials on FileImplemented

Authentication and Security Credentials:

Supported Parameters:

Key NameFormatMandatoryDescriptions
apiVersionNumericalRequired“1.0.1”
apiTypeAlphabeticalRequired“pxyhpci”
userNameAlphanumericRequiredAPI Username
userPassKeyAlphanumericRequiredAPI PassKey
pxyCreditCard.creditCardNumberNumericalRequiredHostedPCI Token Representing Credit Card
pxy.CreditCard.cardCodeVerificationNumericalOptionalHostedPCI Token Representing CVV Code
pxyCreditCard.expirationMonthNumericalRequiredExpiration month with 2 digits for example, for December use “12”
pxyCreditCard.expirationYearNumericalRequiredExpiration year with 4 digits for example, for 2025, use “2025”
pxyTransaction.txnCurISOAlphabeticalRequired3 letter ISO Currency Code for example, “USD” or “CAD”
pxyTransaction.txnAmountNumericalRequiredAmount to Authorize, for example for $10.50 use 10.50
pxyTransaction.merchantRefIdNumericalRequiredMerchant reference number can be order id or invoice id
pxyTransaction.merchantProductNameAlphaNumericalRequiredMerchant reference number can be order id or invoice id
pxyTransaction.merchantPhoneNumNumericalRequiredMerchant reference number can be order id or invoice id
pxyTransaction.txnPayNameAlphanumericRequiredHostedPCI payment profile name, for example “DEF”
pxyCustomerInfo.emailAlphanumericOptionalCustomer’s Email Address
pxyCustomerInfo.customerIdAlphanumericOptionalCustomer ID
pxyCustomerInfo.billingLocation.firstNameAlphabeticalOptionalCustomer’s First Name
pxyCustomerInfo.billingLocation.lastNameAlphabeticalOptionalCustomer’s Last Name
pxyCustomerInfo.billingLocation.phoneNumberNumericalOptionalBilling Phone Number
pxyCustomerInfo.billingLocation.addressAlphanumericOptionalCustomer’s Billing Address
pxyCustomerInfo.billingLocation.cityAlphabeticalOptionalCustomer’s Billing City
pxyCustomerInfo.billingLocation.stateAlphabeticalOptionalCustomer’s Billing State or Province
pxyCustomerInfo.billingLocation.zipCodeNumericalOptionalCustomer’s Billing Zip Code or Postal Code
pxyCustomerInfo.billingLocation.countryAlphabeticalOptionalCustomer’s Billing Country
pxyCustomerInfo.shippingLocation.firstNameAlphabeticalOptionalCustomer’s First Name for Shipping
pxyCustomerInfo.shippingLocation.lastNameAlphabeticalOptionalCustomer’s Last Name for Shipping
pxyCustomerInfo.shippingLocation.addressAlphanumericOptionalCustomer’s Shipping Address
pxyCustomerInfo.shippingLocation.cityAlphabeticalOptionalCustomer’s Shipping City
pxyCustomerInfo.shippingLocation.stateAlphabeticalOptionalCustomer’s Shipping State or Province
pxyCustomerInfo.shippingLocation.zipCodeAlphabeticalOptionalCustomer’s Shipping Zip Code or Postal Code
pxyCustomerInfo.shippingLocation.countryAlphabeticalOptionalCustomer’s Shipping Country
Additional Parameters
KEY NAMEFORMATDESCRIPTIONS
pxyTransaction.merchantAccountNameAlphabeticalRequired for Soft Descriptors
pxyTransaction.merchantProductNameAlphabeticalRequired for Soft Descriptors
pxyTransaction.merchantPhoneNumAlphabeticalRequired for Soft Descriptors
pxyTransaction.merchantUrlAlphabeticalRequired for Soft Descriptors

API Endpoint Sample:

https://[HPCI_API_HOSTENAME]/iSynSApp/paymentAuth.action

API Request Body:

pxyCreditCard.creditCardNumber=4111110003701111&pxyOrder.orderItems[0].itemPrice=22.21&pxyCustomerInfo.billingLocation.city=Toronto&pxyOrder.orderItems[0].itemQuantity=1&pxyOrder.orderItems[0].itemDescription=Split Amoont Pkan&userPassKey=[APIpasskey]&pxyTransaction.txnAmount=22.21&pxyCreditCard.cardCodeVerification=200&pxyTransaction.txnPayName=DEF_BTREE&apiVersion=1.0.1&pxyCustomerInfo.customerIP=127.0.0.1&pxyCustomerInfo.billingLocation.firstName=Test&pxyCustomerInfo.billingLocation.state=ON&pxyTransaction.merchantPhoneNum=123-456-7890&pxyCustomerInfo.billingLocation.country=CAN&pxyOrder.orderItems[0].itemName=Split Aknout Lakn&pxyTransaction.merchantProductName=wkz*Resume Builder&pxyCreditCard.expirationMonth=09&pxyCustomerInfo.customerId=2040662&userName=[APIUsername]&pxyTransaction.txnCurISO=USD&pxyCustomerInfo.billingLocation.zipCode=M7H6G5&pxyCustomerInfo.email=null@email.com&pxyCustomerInfo.profileAction=add&pxyOrder.orderItems[0].itemId=CTEST034&pxyTrans.action.merchantProductName=productName&pxyCreditCard.cardType=visa&pxyCreditCard.expirationYear=2022&pxyCustomerInfo.billingLocation.lastName=Customer&pxyCustomerInfo.billingLocation.address=12596 West Bayaud Ave&apiType=pxyhpci&pxyTransaction.merchantRefId=2048985727405434186

Braintree 3DS implementation with Cardinal Commerce

Authorize.Net has been implemented with Cardinal Commerce for 3DS pass-through Authentication.

In Order to implemented 3DS Authentication with Braintree follow the Cardinal Commerce 3D Secure documentation page.

The parameters listed on the page are required along with the mandatory AUTH transaction parameters to make a successful 3DSecure transaction.

Braintree 3DS 1.0 Required Parameters

ParameterValues
pxyThreeDSecAuth.authSessionID[cruiseSessionId returned within threeDSValuesObj in hpciSiteSuccessHandlerV4 and later versions]
pxyThreeDSecAuth.authOrderId[threeDSOrderId returned within threeDSValuesObj in hpciSiteSuccessHandlerV4 and later versions]
pxyThreeDSecAuth.actionName[verifyenroll]
pxyTransaction.txnPayName[3ds payment profile name]

3DS 1.0 “Verifyresp” call

PARAMETERSVALUE
pxyTransaction.txnPayName[3ds payment profile name]
pxyThreeDSecAuth.actionName[verifyenroll]
pxyThreeDSecAuth.authSessionId[cruiseSessionId returned within threeDSValuesObj in hpciSiteSuccessHandlerV4 and later versions]
pxyThreeDSecAuth.authCAVV[response from the first API call “pxyResponse.threeDSCAVV”]
pxyThreeDSecAuth.authTxnId[response from the first API call “pxyResponse.threeDSXid”]
pxyThreeDSecAuth.paReq[response from the first API call “pxyResponse.threeDSPARequest”]
pxyThreeDSecAuth.protocolVersion[response from the first API call “pxyResponse.threeDSProtoVersion”]
pxyThreeDSecAuth.authECI[response from the first API call “pxyResponse.threeDSECI”]

3DS 2.0 “Verifyenroll” Call

PARAMETERSVALUE
pxyTransaction.txnPayName[3ds payment profile name]
pxyThreeDSecAuth.actionName[verifyenroll]
pxyThreeDSecAuth.callModereportall
pxyThreeDSecAuth.authSessionId[cruiseSessionId returned within threeDSValuesObj in hpciSiteSuccessHandlerV4 and later versions]
pxyThreeDSecAuth.authOrderId[threeDSOrderId returned within threeDSValuesObj in hpciSiteSuccessHandlerV4 and later versions]
pxyCustomerInfo.browserUserAgentHeader[UserAgentHeader]
pxyCustomerInfo.browserAcceptHeader[Browser Accept Header]

3DS 2.0 “verifyresp” Call

PARAMETERSVALUE
pxyTransaction.txnPayName[3ds payment profile name]
pxyThreeDSecAuth.actionName[verifyenroll]
pxyThreeDSecAuth.authSessionId[cruiseSessionId returned within threeDSValuesObj in hpciSiteSuccessHandlerV4 and later versions]
pxyThreeDSecAuth.authCAVV[response from the first API call “pxyResponse.threeDSCAVV”]
pxyThreeDSecAuth.authTxnId[response from the first API call “pxyResponse.threeDSXid”]
pxyThreeDSecAuth.authAcsUrl[response from the first API call “pxyResponse.threeDSAcsUrl”]
pxyThreeDSecAuth.paReq[response from the first API call “pxyResponse.threeDSPARequest”]
pxyThreeDSecAuth.protocolVersion[response from the first API call “pxyResponse.threeDSProtoVersion”]
pxyThreeDSecAuth.authECI[response from the first API call “pxyResponse.threeDSECI”]
pxyThreeDSecAuth.paRes[response from the first API call “pxyResponse.threeDSARS”]

Braintree Credentials on File

Braintree Credentials on File Parameters
ParametersValues
pxyTransaction.cardOnFileTxnRef[0 /1] – 1 for MIT transaction
pxyCustomerInfo.profileAction[add]
pxyTransaction.txnRecurringFlag[MIT]
pxyTransaction.cardOnFileTxnType[C/R/U] – CIT or Reaccuring or Unscheduled
pxyTransaction.cardOnFileIssuerId[cardOnFile Issuer ID]
Braintree COF API Call:
Request:
pxyTransaction.cardOnFileTxnType=R&pxyCreditCard.creditCardNumber=4111110003701111&pxyOrder.orderItems[0].itemPrice=22.21&pxyCustomerInfo.billingLocation.city=Toronto&pxyOrder.orderItems[0].itemQuantity=1&pxyOrder.orderItems[0].itemDescription=Split Amoont Pkan&userPassKey=[APIpasskey]&pxyTransaction.txnAmount=22.21&pxyTransaction.cardOnFileIssuerId=020201120190629&pxyTransaction.txnPayName=DEF_BTREE&pxyTransaction.txnRecurringFlag=MIT&apiVersion=1.0.1&pxyCustomerInfo.customerIP=127.0.0.1&pxyCustomerInfo.billingLocation.firstName=Test&pxyCustomerInfo.billingLocation.state=ON&pxyTransaction.merchantPhoneNum=123-456-7890&pxyCustomerInfo.billingLocation.country=CAN&pxyOrder.orderItems[0].itemName=Split Aknout Lakn&pxyTransaction.merchantProductName=wkz*Resume Builder&pxyCreditCard.expirationMonth=09&pxyCustomerInfo.customerId=20****1&userName=[APIUsername]&pxyTransaction.txnCurISO=USD&pxyCustomerInfo.billingLocation.zipCode=M7H6G5&pxyCustomerInfo.email=null@email.com&pxyCustomerInfo.profileAction=add&pxyOrder.orderItems[0].itemId=[itemID]&pxyCreditCard.cardType=visa&pxyTransaction.cardOnFileTxnRef=1&pxyCreditCard.expirationYear=2022&pxyCustomerInfo.billingLocation.lastName=Customer&pxyCustomerInfo.billingLocation.address=12596  West Bayaud Ave&apiType=pxyhpci&pxyTransaction.merchantRefId=[MerchantRefID]
Response:
status=success&operId=&saleId=53644&pxyResponse.threeDSEnrolled=&pxyResponse.threeDSAcsUrl=&pxyResponse.threeDSErrorDesc=&pxyResponse.processorRefId=q7s3j6r5&pxyResponse.processorType=btreeResponse&pxyResponse.threeDSMessageId=&pxyResponse.threeDSSessionId=&pxyResponse.cardOnFileIssuerId=020201120190829&pxyResponse.mappedParams=txnResponse.ccTypeEst%3DVISA&pxyResponse.threeDSARS=&pxyResponse.threeDSOrderId=&pxyResponse.gatewayToken.status=&pxyResponse.responseStatus.name=&pxyResponse.responseAVS2=M&pxyResponse.responseStatus=approved&pxyResponse.gatewayToken=&pxyResponse.responseAVS1=M&pxyResponse.responseAVS4=&pxyResponse.responseStatus.description=Approved&pxyResponse.threeDSCAVV=&pxyResponse.responseAVS3=&pxyResponse.gatewayToken.fullNativeResp=&pxyResponse.threeDSXid=&pxyResponse.threeDSProtoVersion=&pxyResponse.responseStatus.reasonCode=1000&pxyResponse.threeDSPARequest=&pxyResponse.responseCVV1=M&pxyResponse.threeDSECI=&pxyResponse.responseCVV2=&pxyResponse.fullNativeResp=txnStatus%3D0%26authTxnId%3Dq7s3j6r5%26resultCode%3D1000%26respMsg%3DApproved%26authCode%3D53RNF9%26reasonCode%3D%26avsResult%3DM%26avsZipResult%3DM%26cvdResp%3DM%26networkTransactionId%3D020201120190829&pxyResponse.threeDSAcsPageData=&pxyResponse.gatewaySubToken2=&pxyResponse.threeDSTransactionId=&pxyResponse.gatewaySubToken1=&pxyResponse.gatewaySubToken3=&pxyResponse.merchantRefId=&pxyResponse.threeDSErrorId=&pxyResponse.txnPayName=DEF_BTREE&pxyResponse.responseStatus.code=1000&pxyResponse.threeDSSRS=