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=