Payload examples
Minimum (required fields only) and optimal (all fields) /evaluate request payloads for both CIT and MIT flows.
Four ready-to-adapt request payloads for /evaluate: a minimum payload with only the required fields, and an optimal payload with all applicable fields, for both Customer-Initiated (CIT) and Merchant-Initiated (MIT) transactions. Field-by-field definitions and Optimization Ranks live on the /evaluate page.
Notes that apply throughout:
- All values are illustrative placeholders (sandbox-style tokens, example addresses).
payer.paymentMethodsis not shown — it only applies to Customer Wallet integrations.sequenceNumberis not shown — it applies to SFTP batch requests only.transaction.amountandsubscription.priceare in cents.idempotencyKeymust be a unique GUID/UUID per request.cardNumbercarries the token returned by /tokenize ("token": true). If sending raw PAN instead,tokenmust be set tofalse.
Minimum payload — CIT (required fields only)
Root required: isDeclined, mid, orderId, idempotencyKey, isMIT, plus the four required objects (transaction, payer, billingInformation, paymentMethod).
billingInformation.stateis required because this example is a US card; it can be omitted for non-US cards.transactionType(root) omitted — only required for Auth + Capture configurations.siteId/siteUrlomitted — only needed for Site assignment when multiple sites/descriptors exist per MID.customerIpis technically optional but ranked Critical for CIT — see the optimal payload.transaction.timezoneUtcOffsetomitted — it is optional.- The
transactiondecline-context fields (responseCode,responseCodeSource,cardNotPresent) are required — populate them from the original decline response. transaction.avsResultCode,cvvResultCode, andcavvResultCodeomitted — they are optional, butavsResultCodeandcvvResultCodeare ranked High; see the optimal payload.
{
"isDeclined": true,
"isMIT": false,
"mid": "a8a0a74d-2509-4cbc-9eb5-879c7a34eb45",
"orderId": "ORDER-100045",
"idempotencyKey": "6f1c2b4e-8d3a-4f5b-9c7e-2a1d0e9f8b76",
"transaction": {
"id": "3478613",
"amount": 15000,
"currency": "USD",
"timestampUtc": "2026-06-12T14:30:00Z",
"responseCode": "203",
"responseCodeSource": "NMI",
"cardNotPresent": true
},
"payer": {
"email": "[email protected]"
},
"billingInformation": {
"firstName": "John",
"lastName": "Doe",
"country": "United States",
"countryCode": "US",
"addressLine1": "123 Main St.",
"state": "CA",
"city": "San Francisco",
"zipcode": "94111"
},
"paymentMethod": {
"cardNumber": "zJb6YF7pL5gk8x9VhRnSwHd4q2t",
"expirationYear": 2028,
"expirationMonth": 12,
"holderName": "John Doe",
"cardType": "CREDIT",
"cardBrand": "VISA",
"cardCountry": "US",
"cardBinNumber": "411111",
"cardLast4Digits": "1111"
}
}Minimum payload — MIT (required fields only)
Everything in the CIT minimum, plus isMIT: true, isRecurring: true, and the subscription object. The subscription object is conditionally required — the API enforces it when both isMIT and isRecurring are true. Within it, subscriptionId, interval, price, and currency are required; schemeTransactionId, schemeBrand, intervalCount (default 1), paymentNumber, and totalPayments are optional.
expiryDateUtcomitted — it is optional on every MIT configuration. When omitted, the default expiry configured for the merchant in FlexFactor applies. Add it (within the merchant retry window, max 21 days) to set a window for a specific order.subscription.schemeTransactionIdis technically optional but ranked Critical for MIT and card-on-file — see the optimal payload.
{
"isDeclined": true,
"isMIT": true,
"isRecurring": true,
"mid": "a8a0a74d-2509-4cbc-9eb5-879c7a34eb45",
"orderId": "ORDER-100046",
"idempotencyKey": "9b8e7d6c-5a4f-4e3d-8c2b-1a0f9e8d7c65",
"subscription": {
"subscriptionId": "sub_123456",
"price": 2599,
"currency": "USD",
"interval": "monthly"
},
"transaction": {
"id": "3478614",
"amount": 2599,
"currency": "USD",
"timestampUtc": "2026-06-12T14:30:00Z",
"responseCode": "204",
"responseCodeSource": "NMI",
"cardNotPresent": true
},
"payer": {
"email": "[email protected]"
},
"billingInformation": {
"firstName": "John",
"lastName": "Doe",
"country": "United States",
"countryCode": "US",
"addressLine1": "123 Main St.",
"state": "CA",
"city": "San Francisco",
"zipcode": "94111"
},
"paymentMethod": {
"cardNumber": "zJb6YF7pL5gk8x9VhRnSwHd4q2t",
"expirationYear": 2028,
"expirationMonth": 12,
"holderName": "John Doe",
"cardType": "CREDIT",
"cardBrand": "VISA",
"cardCountry": "US",
"cardBinNumber": "411111",
"cardLast4Digits": "1111"
}
}Optimal payload — CIT (all applicable fields)
Includes every field from the /evaluate request tables that applies to CIT. Highlights per the Optimization Rank column:
- Critical:
customerIp(cardholder browser/device IP, never the merchant server IP) andpaymentMethod.verificationValue(CVV). - High:
attemptCount, the optional decline context (processorName,responseDescription,responseStatus,avsResultCode,cvvResultCode), the fulldeviceDetailsblock, andmerchant. (responseCode,responseCodeSource, andcardNotPresentare required — see the minimum payloads.) threeDSecureis not included — it applies to the MIT additional parameters only.orderItemsandadditionalFieldsare arrays — one example element each.
{
"isDeclined": true,
"isMIT": false,
"transactionType": "PURCHASE",
"mid": "a8a0a74d-2509-4cbc-9eb5-879c7a34eb45",
"orderId": "ORDER-100047",
"idempotencyKey": "3c2d1e0f-9a8b-4c7d-6e5f-4a3b2c1d0e98",
"siteId": "site_98765",
"siteUrl": "https://shop.example.com",
"customerIp": "203.0.113.42",
"orderSource": "ecommerce",
"attemptCount": 2,
"transaction": {
"id": "3478615",
"amount": 15000,
"currency": "USD",
"dynamicDescriptor": "MyShoesStore",
"timestampUtc": "2026-06-12T14:30:00Z",
"timezoneUtcOffset": -8,
"transactionType": "Purchase",
"responseCode": "203",
"responseDescription": "Activity limit exceeded",
"responseStatus": "DECLINED",
"responseSubStatus": "SoftDecline",
"responseCodeSource": "NMI",
"processorName": "Acme Payments",
"avsResultCode": "M",
"cvvResultCode": "M",
"cavvResultCode": "2",
"cardNotPresent": true
},
"payer": {
"email": "[email protected]",
"phone": "+1 555-123-4567",
"id": "customer123",
"birthdate": "1990-01-01"
},
"billingInformation": {
"firstName": "John",
"lastName": "Doe",
"phone": "+1 555-123-4567",
"country": "United States",
"countryCode": "US",
"addressLine1": "123 Main St.",
"addressLine2": "Apt 4B",
"state": "CA",
"city": "San Francisco",
"zipcode": "94111"
},
"paymentMethod": {
"cardNumber": "zJb6YF7pL5gk8x9VhRnSwHd4q2t",
"expirationYear": 2028,
"expirationMonth": 12,
"verificationValue": "123",
"holderName": "John Doe",
"token": true,
"cardType": "CREDIT",
"cardBrand": "VISA",
"cardCountry": "US",
"cardIssuer": "Acme Bank",
"cardLevel": "CLASSIC",
"cardFingerprint": "abcd1234",
"cardBinNumber": "411111",
"cardLast4Digits": "1111"
},
"shippingInformation": {
"firstName": "John",
"lastName": "Doe",
"phone": "+1 555-123-4567",
"country": "United States",
"countryCode": "US",
"addressLine1": "123 Main St.",
"addressLine2": "Apt 4B",
"state": "CA",
"city": "San Francisco",
"zipcode": "94111"
},
"deviceDetails": {
"deviceType": "laptop",
"deviceName": "MacBook Pro",
"deviceOS": "macOS 14",
"browser": "Chrome",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
},
"merchant": {
"id": "merchant123",
"name": "Acme Inc.",
"mcc": 5651,
"country": "US"
},
"affiliate": {
"id": "aff_123123123",
"name": "Affiliate 1"
},
"orderItems": [
{
"sku": "SKU123",
"name": "Running Shoes",
"description": "Lightweight running shoes, size 10",
"amount": 15000,
"discountAmount": 1000,
"tax": 1200,
"discountType": "fixed",
"quantity": "1"
}
],
"additionalFields": [
{
"key": "checkoutVersion",
"value": "v3.2-onepage"
}
]
}Optimal payload — MIT (all applicable fields)
Everything CIT-applicable plus the MIT additional parameters: isRecurring, expiryDateUtc, the full subscription object, and threeDSecure.
- Critical:
subscription.schemeTransactionId(network transaction ID / NTI — the single highest-leverage field for MIT and card-on-file rescue). paymentMethod.verificationValueis omitted — CVV is a CIT signal and is not stored for recurring billing.customerIpis omitted — there is no cardholder browser session on a merchant-initiated transaction. Same reasoning excludesdeviceDetails; include them only if you captured them at original signup and your FlexFactor contact advises sending them.expiryDateUtc, when sent, is the merchant retry window (max 21 days from the decline). It is optional; omit it to use the merchant default expiry.- Send the MIT the same day it declines, and do not retry it yourself before
expiryDateUtc.
{
"isDeclined": true,
"isMIT": true,
"isRecurring": true,
"expiryDateUtc": "2026-06-26T14:30:00Z",
"transactionType": "PURCHASE",
"mid": "a8a0a74d-2509-4cbc-9eb5-879c7a34eb45",
"orderId": "ORDER-100048",
"idempotencyKey": "7e6f5a4b-3c2d-4e1f-0a9b-8c7d6e5f4a32",
"siteId": "site_98765",
"siteUrl": "https://shop.example.com",
"orderSource": "ecommerce",
"attemptCount": 3,
"subscription": {
"subscriptionId": "sub_123456",
"price": 2599,
"currency": "USD",
"interval": "monthly",
"intervalCount": 1,
"schemeTransactionId": "987654321234567",
"schemeBrand": "Visa",
"paymentNumber": "4",
"totalPayments": "12"
},
"threeDSecure": {
"threeDsVersion": "2.2.0",
"ecommerceIndicator": "02",
"authenticationValue": "abcdefg12345",
"directoryServerTransactionId": "ds_987654",
"xid": "xid_246810",
"authenticationValueAlgorithm": "SHA-256",
"directoryResponseStatus": "Y",
"authenticationResponseStatus": "Y",
"enrolled": "Y"
},
"transaction": {
"id": "3478616",
"amount": 2599,
"currency": "USD",
"dynamicDescriptor": "MyShoesStore",
"timestampUtc": "2026-06-12T14:30:00Z",
"timezoneUtcOffset": -8,
"transactionType": "Purchase",
"responseCode": "204",
"responseDescription": "Insufficient funds",
"responseStatus": "DECLINED",
"responseSubStatus": "SoftDecline",
"responseCodeSource": "NMI",
"processorName": "Acme Payments",
"avsResultCode": "M",
"cvvResultCode": "NA",
"cavvResultCode": "2",
"cardNotPresent": true
},
"payer": {
"email": "[email protected]",
"phone": "+1 555-123-4567",
"id": "customer123",
"birthdate": "1990-01-01"
},
"billingInformation": {
"firstName": "John",
"lastName": "Doe",
"phone": "+1 555-123-4567",
"country": "United States",
"countryCode": "US",
"addressLine1": "123 Main St.",
"addressLine2": "Apt 4B",
"state": "CA",
"city": "San Francisco",
"zipcode": "94111"
},
"paymentMethod": {
"cardNumber": "zJb6YF7pL5gk8x9VhRnSwHd4q2t",
"expirationYear": 2028,
"expirationMonth": 12,
"holderName": "John Doe",
"token": true,
"cardType": "CREDIT",
"cardBrand": "VISA",
"cardCountry": "US",
"cardIssuer": "Acme Bank",
"cardLevel": "CLASSIC",
"cardFingerprint": "abcd1234",
"cardBinNumber": "411111",
"cardLast4Digits": "1111"
},
"shippingInformation": {
"firstName": "John",
"lastName": "Doe",
"phone": "+1 555-123-4567",
"country": "United States",
"countryCode": "US",
"addressLine1": "123 Main St.",
"addressLine2": "Apt 4B",
"state": "CA",
"city": "San Francisco",
"zipcode": "94111"
},
"merchant": {
"id": "merchant123",
"name": "Acme Inc.",
"mcc": 5651,
"country": "US"
},
"affiliate": {
"id": "aff_123123123",
"name": "Affiliate 1"
},
"orderItems": [
{
"sku": "SKU123",
"name": "Monthly Subscription",
"description": "Monthly membership plan",
"amount": 2599,
"discountAmount": 0,
"tax": 200,
"discountType": "fixed",
"quantity": "1"
}
],
"additionalFields": [
{
"key": "billingPlatform",
"value": "internal-subscriptions-v2"
}
]
}Updated 17 days ago

