Fat Zebra Integration Guide

PayPal's partnership with Fat Zebra enables merchants to leverage their existing Braintree integration to process transactions through PayPal Orchestration Platform.

This guide helps developers at merchant sites complete the integration in their environment. The following tables describe the supported transaction types, payment instruments, and features for the Fat Zebra integration.

FeaturesAnchorIcon

The following topics describe the capabilities that this Fat Zebra integration supports.

Core transaction lifecycleAnchorIcon

The following table lists the supported core transaction lifecycle operations.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySDKGraphQLSupportNotes
Charge (single step)Perform authorization and capture in the same call.
Standalone authorizationAuthorization must be captured within the processor-defined window (5 days) before it expires.
Capture (full)Capture a previously authorized transaction.
Partial captureThe capture amount can differ from the authorized amount.
Capture greater than authorized amount
Installment transactions (merchant-initiated transaction)
Adjust Authorization APIThis integration does not support incremental authorization, partial reversal during capture, or settlement.

Voids and refundsAnchorIcon

The following table lists the supported void and refund operations.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by configuration

CapabilitySupportNotes
Full void (auth reversal)Voids cancel an authorized transaction prior to settlement.
Partial voidUse full void, and re-authorize the transaction at the correct amount.
Void on settled transactionUse refund instead.
Full refundRefunds cannot exceed the settled transaction amount.
Partial refundRefunds cannot exceed the settled amount.
Multiple refunds
Blind creditsA refund must reference the original transaction.

Payment instruments and methodsAnchorIcon

The following table lists payment instruments and methods that this integration supports.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by merchant configuration

Instrument or methodSupportNotes
Credit cardsAustralia: Mastercard, Visa, American Express, Discover, Diners

New Zealand: Mastercard, Visa, American Express, Discover, Diners
Debit cardsAustralia: Mastercard, Visa

New Zealand: Mastercard, Visa
Prepaid cardsSupported where Fat Zebra supports prepaid cards
PLCCs
Gift cards
Apple PaySupported in Australia and New Zealand. Not supported for card verification.
Google PaySupported in Australia and New Zealand. Not supported for card verification.
Android Pay or Samsung Pay
Venmo (PayPal)
Least Cost Routing (Electronic Funds Transfer at Point of Sale / EFTPOS)Supported in Australia. To enable this on an account, contact Fat Zebra.

Data, descriptors, and fraud signalsAnchorIcon

The following table describes support for data fields, descriptors, and fraud signals in this integration.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by merchant configuration

CapabilitySupportNotes
Card Verification Value (CVV) response handlingCVV match codes (M, N, U, I, S, A, B) are mapped. For more information, see CVV handling.
Dynamic descriptorsFat Zebra enforces a 35-character limit. Values that exceed this limit might be truncated or rejected.
Network tokensSupported in Australia and New Zealand. For more information, see Network token support.
Level 2 / Level 3 / Lodging data
3D Secure (3DS)Supported, but not required. Braintree passes 3DS data (CAVV, dsTransactionId, ECI/SLI, version, XID) to Fat Zebra.

VerificationsAnchorIcon

The following table describes the support for card verification methods with this integration.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by merchant configuration

CapabilitySupportNotes
$0 verificationFat Zebra adds a small amount and performs an authorization and a void to return a verification response if needed.
Non-zero dollar verificationThe amount that is sent in the verification call is ignored.
Wallet verificationApple Pay and Google Pay verifications are not supported.

Before you beginAnchorIcon

Confirm that you have the following accounts before you begin the integration:
  • To process card transactions through Fat Zebra, you need currency-specific Braintree merchant accounts for your integration. Your Braintree account manager (AM) or technical account manager (TAM) can assist you in setting these up.
  • A Fat Zebra account. Fat Zebra uses basic authentication (username and password). You will receive API credentials from Fat Zebra for the sandbox and production environments. For more information, see the Fat Zebra API documentation.
After you create your Fat Zebra account and receive your credentials, work with your Braintree AM or TAM to securely share the necessary credentials.

After completing setup, proceed to Transactions to create your first transaction.

TransactionsAnchorIcon

The following requirements apply to all Fat Zebra transactions:

  • Cardholder name: All Fat Zebra transactions require cardholderName. Payment method tokenization must include it.
  • CVV requirements: For recurring transactions or when using vaulted cards, the CVV might not be present. Fat Zebra accepts these transactions with the card_on_file flag set to true, but this could affect approval rates.
  • Apple Pay and Google Pay: If you use Apple Pay or Google Pay, ensure that you enable wallet payment processing in your Fat Zebra merchant account.
  • Webhooks: Webhooks are supported through Braintree for this integration, but they require specific configuration. To configure your account for webhooks, contact your AM or TAM.
  • EFTPOS: To enable EFTPOS, contact Fat Zebra. Braintree supports EFTPOS only on charge (single step) transactions.

For general information about Braintree transactions, see:

Transaction creationAnchorIcon

Creating a Fat Zebra transaction requires specific fields and field mappings. The following sections list the required fields and the fields that Braintree passes to Fat Zebra.

Required fields for Fat Zebra transactionsAnchorIcon

Creating a Fat Zebra transaction requires the following fields.

FieldLocationHow to provideNotes
amountTransactionIn transactionTransaction amount, converted to cents
creditCard.numberPayment methodDuring tokenizationCard number. Test cards are remapped in the sandbox.
creditCard.expirationMonthPayment methodDuring tokenizationFormat: MM
creditCard.expirationYearPayment methodDuring tokenizationFormat: YYYY

Note: Braintree combines creditCard.expirationMonth and creditCard.expirationYear and sends them to Fat Zebra as MM/YYYY.
creditCard.cardholderNamePayment methodDuring tokenizationRequired. Name as it appears on the card.

Fields that Braintree passes to Fat ZebraAnchorIcon

The following table maps Braintree fields to their corresponding Fat Zebra fields for authorize and charge operations.

Braintree fieldFat Zebra fieldRequiredNotes
creditCard.numbercard_numberTest cards are remapped in the sandbox environment.
creditCard.cardholderNamecard_holderMust be included during tokenization.
creditCard.expirationMonth + expirationYearcard_expiryFormat: MM/YYYY
creditCard.cvvcvvOmitted for recurring or merchant-initiated transactions

For more information, see CVV handling
amountamountConverted to cents (×100 for 2-decimal currencies)
currencyIsoCodecurrencyThree-letter ISO currency code, uppercase
billing.postalCodebilling_address.postcode
billing.streetAddressbilling_address.address
customer.emailbilling_address.email
riskData.customerIpcustomer_ipThe connector supplies a default value if one is not included.
descriptor.nameextra.descriptor.rawMax 35 characters
threeDSecureData.cavvextra.cavv3DS CAVV value
threeDSecureData.dsTransactionIdextra.directory_server_txn_id3DS Directory Server Transaction ID
threeDSecureData.eciFlagextra.sli3DS Security Level Indicator
threeDSecureData.versionextra.threeds_versionFor example, 2.0.0
threeDSecureData.xIdextra.xid3DS XID value
vaultedCredentialTypeextra.ecmeCommerce indicator: 31 (customer-initiated transaction / CIT) or 32 (MIT)
networkTransactionIdentifierextra.authorization_tracking_idIncluded for merchant-initiated transactions

Customer creationAnchorIcon

A Fat Zebra integration does not require customer creation. If you choose to create a customer, you can do it using either the Braintree SDKs or GraphQL API. Customer email, when available, is passed to Fat Zebra. For more information, see the customer creation guide (SDK) or the customer creation guide (GraphQL).

Vaulted payment methodsAnchorIcon

Vaulting a tokenized payment method creates a reusable token that can be authorized or charged multiple times. You can vault a payment method in 2 ways:

  • Direct vaulting of an already-tokenized payment method.
  • During the authorization process using the SDK or GraphQL API.

Transaction object supportAnchorIcon

The following topics describe support for transaction operations and CVV handling with this integration.

Supported transaction operationsAnchorIcon

The following table lists the transaction request fields that this integration supports.

Legend: ✅ Supported | ❌ Not supported | ⚠️ Conditional or varies by country, merchant configuration, or processor |

Transaction operationSupported
Sale
Find
Void
Refund
Submit for settlement
Clone
Search
Adjust Authorization
Hold in Escrow
Release from Escrow
Submit for Partial Settlement
Cancel Release

CVV handlingAnchorIcon

For merchant-initiated transactions, such recurring transactions, or when using vaulted cards, Braintree does not send the CVV to Fat Zebra. Instead, the card_on_file and omit_expiry flags are set to true, and the authorization_tracking_id from the original transaction is included if provided by Fat Zebra.

Transaction statusAnchorIcon

The following table maps Fat Zebra response statuses to Braintree transaction statuses. For general information about Braintree result objects, see Result Objects.

OperationFat Zebra responseBraintree transaction statusAdditional information
AuthorizeApproved (codes: 00, 08, 10, 11, 16)AUTHORIZEDTransaction is authorized and must be captured before expiry. Authorization expires after 5 calendar days.
AuthorizeDeclined (any non-approved code)PROCESSOR_DECLINEDHard decline from acquirer
AuthorizeAPI errorFAILEDYou can configure a retry option on Braintree for this or implement your own retry logic.
ChargeApprovedSETTLEDAuthorization and immediate capture
ChargeDeclinedPROCESSOR_DECLINEDHard decline from acquirer
ChargeAPI errorFAILEDRare case. Braintree will reconcile this transaction. For more information, see FAILED status during charge.
CaptureApprovedSETTLED
CaptureDeclinedSETTLEMENT_DECLINEDThis can occur if the authorization has expired or there is an amount mismatch.
CaptureAPI errorSETTLINGRare event. Braintree will reconcile the transaction. Do not ship goods or provide service until the status transitions to SETTLED. For more information, see SETTLING status with HTTP errors.
RefundApprovedSETTLED
RefundDeclinedSETTLEMENT_DECLINED
RefundAPI errorSETTLINGRare event. Braintree will reconcile the transaction. For more information, see SETTLING status with HTTP errors.
VoidVoided (success or already voided)VOIDEDIdempotent. Returns VOIDED even if Fat Zebra has already cancelled the transaction.
VerifyCardApprovedVERIFIED
VerifyCardDeclinedPROCESSOR_DECLINED
VerifyCardAPI errorFAILED

SETTLING status with HTTP errorsAnchorIcon

The following situations might occur with SETTLING status.

In the rare event that Fat Zebra returns HTTP 4xx or 5xx errors during capture or refund operations, the transaction might remain in SETTLING status while Braintree reconciles the outcome. This can happen due to network or server overload or Fat Zebra API unavailability.

When Braintree queries Fat Zebra for transaction status for capture, refund, and charge, the possible outcomes are:

  • If Fat Zebra approves, the status changes to SETTLED.
  • If Fat Zebra declines, the status changes to SETTLEMENT_DECLINED.

FAILED status during chargeAnchorIcon

This is another rare event that could occur. If Braintree receives no inline response from Fat Zebra due to network errors or timeouts, the transaction status is set to FAILED. Braintree will reconcile this transaction. If the transaction is identified as successful during reconciliation, the status is updated from FAILED to SETTLED and a refund is automatically initiated. The refund follows its own transaction lifecycle (SETTLED, SETTLEMENT_DECLINED, SETTLING, or FAILED). The original transaction remains SETTLED.

RetriesAnchorIcon

Follow these guidelines when you handle retries for Fat Zebra transactions:

  • Do not build a duplicate capture or refund retry loop when you see success: true but the status is SETTLING.
  • Always rely on transaction status before shipping goods or confirming the final outcome.
  • If your request times out or you are unsure whether a transaction was created, query the transaction (Find or Search) using your internal transaction reference (transactionId) before attempting a second create.
  • Retry on FAILED transactions can be configured at the merchant account level. Reach out to your TAM for configuration.

Network tokensAnchorIcon

Fat Zebra supports network tokens. The integration includes two provisioning options:

To enable Braintree-managed network tokens for your account, contact your AM or Integration Engineer. See the Getting Started with Network Tokens guide for more information.

Response codesAnchorIcon

Braintree can only display a limited number of response codes since transaction results are controlled by Fat Zebra. When Fat Zebra decline codes cannot be mapped to equivalent Braintree decline codes, Braintree returns code 2000 with message Do Not Honor.

To query for the Fat Zebra response message, use:

  • SDK: additional_processor_response
  • GraphQL: PaymentStatusEvent.processorResponse.additionalInformation

Processor response pass-through and debuggingAnchorIcon

Because approval and decline outcomes are controlled by Fat Zebra, Braintree may surface a limited set of standardized result codes. Where to find processor response details:

  • SDK: additional_processor_response
  • GraphQL: TransactionSettlementProcessorResponse and TransactionAuthorizationProcessorResponse

CVV response code mappingAnchorIcon

The following table maps Fat Zebra CVV match codes to their Braintree equivalents.

Fat Zebra CVV matchBraintree CVV response codeMeaning
MMMatch
NNNo match
UUNot checked / unavailable
IIInvalid
SSIssuer does not support CVV
AANot applicable
BBNot provided

Failure response code mappingAnchorIcon

Fat Zebra uses 2-digit numeric response codes:

  • Approved codes (transaction succeeds): 00, 08, 10, 11, 16
  • Retryable system error codes: 09, 99
The following table maps Fat Zebra failure codes to Braintree error codes.

Braintree error codeBraintree error messageFat Zebra response codeFat Zebra message
2000Do Not Honor01Refer to card issuer
2000Do Not Honor02Refer to card issuer
2000Do Not Honor05Refer to card issuer
2000Do Not Honor17Declined
2000Do Not Honor18Declined
2000Do Not Honor20Declined
2000Do Not Honor21Declined
2000Do Not Honor22Declined
2000Do Not Honor24Declined
2000Do Not Honor25Declined
2000Do Not Honor26Declined
2000Do Not Honor27Declined
2000Do Not Honor28Declined
2000Do Not Honor29Declined
2000Do Not Honor32Declined
2000Do Not Honor45Declined
2000Do Not Honor46Declined
2000Do Not Honor47Declined
2000Do Not Honor48Declined
2000Do Not Honor49Declined
2000Do Not Honor50Declined
2000Do Not Honor52Declined
2000Do Not Honor53Declined
2000Do Not Honor57Declined
2000Do Not Honor58Declined
2000Do Not Honor60Declined
2000Do Not Honor63Declined
2000Do Not Honor64Declined
2000Do Not Honor66Declined
2000Do Not Honor67Declined
2000Do Not Honor68Declined
2000Do Not Honor69Declined
2000Do Not Honor70Declined
2000Do Not Honor71Declined
2000Do Not Honor72Declined
2000Do Not Honor73Declined
2000Do Not Honor74Declined
2000Do Not Honor76Declined
2000Do Not Honor77Declined
2000Do Not Honor78Declined
2000Do Not Honor79Declined
2000Do Not Honor80Declined
2000Do Not Honor81Declined
2000Do Not Honor83Declined
2000Do Not Honor84Declined
2000Do Not Honor85Declined
2000Do Not Honor86Declined
2000Do Not Honor87Declined
2000Do Not Honor88Declined
2000Do Not Honor89Declined
2000Do Not Honor90Declined - please retry
2000Do Not Honor95Declined
2001Insufficient Funds51Insufficient funds
2002Limit Exceeded61Declined
2002Limit Exceeded65Declined
2004Expired Card33Expired card
2004Expired Card54Expired card
2005Invalid Credit Card Number14Invalid card number
2007No Account39Declined
2007No Account56Declined
2009No Such Issuer15No issuer
2009No Such Issuer31Bank not supported
2010Card Issuer Declined CVV82Declined
2012Processor Declined - Possible Lost Card04Refer to card issuer
2014Processor Declined - Fraud Suspected34Declined
2014Processor Declined - Fraud Suspected59Declined
2016Duplicate Transaction94Declined
2019Invalid Transaction12Invalid transaction
2019Invalid Transaction30Declined
2019Invalid Transaction40Declined
2020Violation93Declined
2025Set Up Error - Merchant03No merchant
2026Invalid Merchant ID06Merchant/acquirer error
2027Set Up Error – Amount19Declined
2047Call Issuer. Pick Up Card07Refer to card issuer
2047Call Issuer. Pick Up Card35Declined
2047Call Issuer. Pick Up Card37Declined
2048Invalid Amount13Invalid amount
2048Invalid Amount23Declined
2050Invalid Credit Plan42Declined
2050Invalid Credit Plan44Declined
2053Card reported as lost or stolen41Declined
2053Card reported as lost or stolen43Declined
2057Issuer or Cardholder has put a restriction on the card36Declined
2057Issuer or Cardholder has put a restriction on the card62Declined
2102Incorrect PIN55Declined
2103PIN try exceeded38Declined
2103PIN try exceeded75Declined
3000Processor Network Unavailable – Try Again09Acquirer busy
3000Processor Network Unavailable – Try Again91Declined
3000Processor Network Unavailable – Try Again92Declined
3000Processor Network Unavailable – Try Again96Declined
3000Processor Network Unavailable – Try Again99System error - contact gateway if error persists

Test cardsAnchorIcon

Braintree provides a set of test card numbers for sandbox testing. With the Fat Zebra integration, some Braintree test card numbers are automatically mapped to Fat Zebra test card numbers.

Credit cards: SuccessAnchorIcon

The following test cards return a successful response in the sandbox environment.

Card brandBraintree test numberFat Zebra test numberAutomatically mapped?
Mastercard22230000484000115123456789012346
Mastercard55555555555544445555555555554444Pass-through
Visa40055192000000044005550000000001
Visa41111111111111114111111111111111Pass-through

Credit cards: FailureAnchorIcon

To trigger a specific error response code in the sandbox environment, use any success test card and append the desired error code to the amount as the last 2 digits in the decimal.

For example:

  • To trigger error code 15 (No Issuer), use amount 100.15.
  • To trigger insufficient funds (51), use amount 100.51.

For a full list of Fat Zebra failure response codes, see Failure response code mapping.

Apple Pay test cryptogramsAnchorIcon

In sandbox, Braintree masks Apple Pay cryptograms. The connector automatically maps the standard Braintree sandbox Apple Pay cryptogram to a Fat Zebra-compatible test value.

The following resources provide additional information about Fat Zebra and Braintree transactions.