FlexFactor Integration Guide

This guide is for developers integrating FlexFactor with Braintree through the PayPal Orchestration Platform. It covers supported capabilities, required fields, transaction status mapping, and testing for this integration.

When a transaction fails on PayPal Enterprise, FlexFactor's real-time decision engine evaluates it and can recover revenue from false declines.

This integration supports the following card brands:

  • Visa
  • Mastercard (credit and debit)

For a complete list of countries that this integration supports, contact your Braintree account manager (AM) or technical account manager (TAM).

For links to the Braintree documentation for transaction processing through the SDK or GraphQL, see Related content.

FeaturesAnchorIcon

The following topics summarize the capabilities that this integration supports.

Core transaction lifecycleAnchorIcon

The following table describes support for the core transaction lifecycle operations with this integration.

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

CapabilitySDKGraphQLSupportNotes
Charge (single step)Authorize and capture in the same call.
Charge (dual step)A separate capture call follows authorization.
Standalone authorizationYou must capture the authorization within 7 days.
Capture (full)Captures a previously authorized transaction
Partial capture
Capture greater than authorized amount
Adjust Authorization API (incremental authorization or partial reversal)

Voids and refundsAnchorIcon

The following table describes support for voids and refusals with this integration.

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

CapabilitySupportNotes
Full void (auth reversal)Voids cancel an authorized transaction prior to settlement.
Partial void
Void on settled transactionUse a refund instead.
Full refundRefunds cannot exceed the settled amount.
Partial refundRefunds cannot exceed the settled amount. Partial refunds are limited to 60% of the original order price.
Multiple refunds
Blind credits (refunds for transactions processed elsewhere)Refunds 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 cardsVisa, Mastercard
Debit cardsVisa, Mastercard
Prepaid cards
PLCCs
Gift cards
Apple Pay
Google Pay
Android Pay or Samsung Pay
Venmo or PayPal

Data, descriptors, and fraud signalsAnchorIcon

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

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

CapabilitySupportNotes
Address Verification System (AVS) or Card Verification Value (CVV) response handling
Dynamic descriptors⚠️Support is limited to only pre-approved descriptors.
Network tokensTo enable network tokens, contact your AM or TAM.
Level 2, Level 3, or Lodging data
3D Secure (3DS)

VerificationsAnchorIcon

The following table lists support for different card verification methods.

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

CapabilitySupport
$0 verification
Non-zero dollar verification

Before you beginAnchorIcon

To prepare for the FlexFactor integration, prepare the following requirements:

  • FlexFactor configuration and credentials: Each merchant must have an account with FlexFactor. To securely share the FlexFactor credentials with Braintree, work with your AM or TAM.
  • Merchant account setup: To process transactions with FlexFactor, you need currency-specific merchant accounts for use in your integration. Your Braintree AM or TAM can help facilitate this setup.

After you complete this setup, continue with FlexFactor integration to configure the connection.

FlexFactor integrationAnchorIcon

The FlexFactor integration uses a direct connection through Braintree. Transactions are routed directly to FlexFactor, bypassing intermediate processing steps.

Transaction status mappingAnchorIcon

The following table maps FlexFactor response statuses to Braintree transaction statuses.

OperationFlexFactor responseBraintree transaction statusNotes
AuthorizeDeclinedPROCESSOR_DECLINED
AuthorizeCapture requiredAUTHORIZEDThis status is for dual-step transactions. The authorization window can be from 5 minutes to 7 days. You configure this window with FlexFactor.
AuthorizeCancelledPROCESSOR_DECLINED
AuthorizeAPI errorFAILEDYou can configure a retry option in Braintree for this status or implement your own retry logic.
CaptureSuccessSETTLED
CaptureFailedSETTLEMENT_DECLINEDIn the rare event that FlexFactor returns a failed status for capture after a successful authorization, it is because the capture amount differs from the authorized amount or due to technical issues with FlexFactor.
CaptureHTTP status 4xx or 5xxSETTLINGDo not ship goods or consider the transaction successful until the status changes to SETTLED.

In the rare event that FlexFactor returns HTTP status 4xx/5xx for capture after successful authorization, it is due to: an invalid or malformed payload sent to FlexFactor, or a network or server overload error.

Retry logic: Braintree automatically retries this transaction on FlexFactor until a final status is received.

Possible outcomes: If approved by FlexFactor, status moves to SETTLED. If declined by FlexFactor, status moves to SETTLEMENT_DECLINED.
Charge (dual step)SuccessSETTLEDWhen performing a charge using the SDK or GraphQL API, Braintree orchestrates a dual-step transaction: it first authorizes the transaction, then it immediately captures it on a successful authorization.
Charge (dual step)FailedSETTLEMENT_DECLINED
ChargeHTTP status 4xx/5xxSETTLINGDo not ship goods until the status changes to SETTLED.

In the rare event that FlexFactor returns HTTP status 4xx or 5xx for charge, it is due to a successful authorization but a capture error.

Retry logic: Braintree automatically retries this transaction on FlexFactor until a final status is received.

Possible outcomes: If FlexFactor approves the transaction, the status changes to SETTLED. If FlexFactor declines the transaction, the status changes to SETTLEMENT_DECLINED.
RefundSuccessSETTLED
RefundFailedSETTLEMENT_DECLINEDIn the rare event that FlexFactor returns a failed status for a refund, it is due to technical issues with FlexFactor.
RefundHTTP status 4xx/5xxSETTLINGIn the rare event that FlexFactor returns HTTP status 4xx or 5xx for a refund, it is due to an invalid or malformed payload sent to FlexFactor or a network or server overload error.

Retry logic: Braintree automatically retries this transaction on FlexFactor until it receives a final status.

Possible outcomes: If FlexFactor approves the transaction, the status changes to SETTLED. If FlexFactor declines the transaction, the status changes to SETTLEMENT_DECLINED.

VoidVoidedVOIDED

Required fieldsAnchorIcon

All FlexFactor transactions require the fields in the following table.

Field nameTypeNotes
amountNumberTransaction amount in the smallest currency unit (for example, cents for USD)
customer.firstNameStringCustomer's first name
customer.lastNameStringCustomer's last name
billing.streetAddressStringStreet for the billing address
billing.regionStringRegion or state for the billing address
billing.localityStringCity or locality for the billing address
billing.postalCodeStringPostal code or ZIP code for the billing address
card.cardHolderNameStringName on the card
card.expirationMonthStringCard expiration month (MM)
card.expirationYearStringCard expiration year (YYYY)
card.numberStringCard number

TestingAnchorIcon

Use the following test cards to verify that your integration is working correctly.

Test cards: SuccessAnchorIcon

The following test cards return a success response when the transaction goes through FlexFactor.

Card brandBraintree test cardFlexFactor test cardCVVAutomatically mapped?
Visa40055192000000044000002760003184Yes
Visa41111111111111114111111111111111123Yes
Mastercard555555555555444451002600235851123Yes

Test cards: FailureAnchorIcon

Any Braintree test cards that are not listed in Success will return a declined error from FlexFactor.

DisputesAnchorIcon

FlexFactor handles all disputes. FlexFactor supports dispute notifications and is responsible for handling chargebacks, including deflection strategies and re-presentment processes as needed.

For more information about Braintree transaction processing, see the related topics in the Braintree documentation.