Braintree

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:

Feature Level of Support
Auth Implemented
Sale (Auth+Capture) Implemented
Capture Implemented
Void Implemented
Credit Implemented
3DS 2 Passthrough Implemented
Credentials on File Implemented

Authentication and Security Credentials:

  • Merchant ID
  • Public Key
  • Private Key

Supported Parameters:

Key Name Format Mandatory Descriptions
apiVersion Numerical Required “1.0.1”
apiType Alphabetical Required “pxyhpci”
userName Alphanumeric Required API Username
userPassKey Alphanumeric Required API PassKey
pxyCreditCard.creditCardNumber Numerical Required HostedPCI Token Representing Credit Card
pxy.CreditCard.cardCodeVerification Numerical Optional HostedPCI Token Representing CVV Code
pxyCreditCard.expirationMonth Numerical Required Expiration month with 2 digits for example, for December use “12”
pxyCreditCard.expirationYear Numerical Required Expiration year with 4 digits for example, for 2025, use “2025”
pxyTransaction.txnCurISO Alphabetical Required 3 letter ISO Currency Code for example, “USD” or “CAD”
pxyTransaction.txnAmount Numerical Required Amount to Authorize, for example for $10.50 use 10.50
pxyTransaction.merchantRefId Numerical Required Merchant reference number can be order id or invoice id
pxyTransaction.merchantProductName AlphaNumerical Required Merchant reference number can be order id or invoice id
pxyTransaction.merchantPhoneNum Numerical Required Merchant reference number can be order id or invoice id
pxyTransaction.txnPayName Alphanumeric Required HostedPCI payment profile name, for example “DEF”
pxyCustomerInfo.email Alphanumeric Optional Customer’s Email Address
pxyCustomerInfo.customerId Alphanumeric Optional Customer ID
pxyCustomerInfo.billingLocation.firstName Alphabetical Optional Customer’s First Name
pxyCustomerInfo.billingLocation.lastName Alphabetical Optional Customer’s Last Name
pxyCustomerInfo.billingLocation.phoneNumber Numerical Optional Billing Phone Number
pxyCustomerInfo.billingLocation.address Alphanumeric Optional Customer’s Billing Address
pxyCustomerInfo.billingLocation.city Alphabetical Optional Customer’s Billing City
pxyCustomerInfo.billingLocation.state Alphabetical Optional Customer’s Billing State or Province
pxyCustomerInfo.billingLocation.zipCode Numerical Optional Customer’s Billing Zip Code or Postal Code
pxyCustomerInfo.billingLocation.country Alphabetical Optional Customer’s Billing Country
pxyCustomerInfo.shippingLocation.firstName Alphabetical Optional Customer’s First Name for Shipping
pxyCustomerInfo.shippingLocation.lastName Alphabetical Optional Customer’s Last Name for Shipping
pxyCustomerInfo.shippingLocation.address Alphanumeric Optional Customer’s Shipping Address
pxyCustomerInfo.shippingLocation.city Alphabetical Optional Customer’s Shipping City
pxyCustomerInfo.shippingLocation.state Alphabetical Optional Customer’s Shipping State or Province
pxyCustomerInfo.shippingLocation.zipCode Alphabetical Optional Customer’s Shipping Zip Code or Postal Code
pxyCustomerInfo.shippingLocation.country Alphabetical Optional Customer’s Shipping Country
Additional Parameters
KEY NAME FORMAT DESCRIPTIONS
pxyTransaction.merchantAccountName Alphabetical Required for Soft Descriptors
pxyTransaction.merchantProductName Alphabetical Required for Soft Descriptors
pxyTransaction.merchantPhoneNum Alphabetical Required for Soft Descriptors
pxyTransaction.merchantUrl Alphabetical Required 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

Parameter Values
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

PARAMETERS VALUE
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

PARAMETERS VALUE
pxyTransaction.txnPayName [3ds payment profile name]
pxyThreeDSecAuth.actionName [verifyenroll]
pxyThreeDSecAuth.callMode reportall
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

PARAMETERS VALUE
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
Parameters Values
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=