B2B API Specification

Version 3.5.1

production
sandbox

Enhanced Data

Processing B2B or B2G credit card transactions with Level 2 (L2) and Level 3 (L3) enhanced data such as tax details, PO numbers, and itemized line items helps lower fraud risk and qualifies merchants for significantly reduced interchange rates. Our unified Enhanced Data endpoint allows integrators to submit L2 and L3 data for both Visa and Mastercard transactions in a single API request, eliminating the need to separate traffic by card brand while ensuring compliance with Visa’s Commercial Enhanced Data Program (CEDP).

To ensure transaction integrity, enhanced data can only be applied to unsettled Sale or Capture transactions, and any modifications require a full payload overwrite.

For more L2/L3 information specific to the Enhanced Data endpoint such as rules and calculations, click here.

Deprecation Notice: All previous Level 3 endpoints will be retired in the future as they do not adhere to CEDP and the latest card network requirements.

While existing integrations utilizing these endpoints will remain active and supported for the time being, all new integrations are required to use the Enhanced Data endpoint. Existing integrators are strongly encouraged to migrate to our new API V3 and the new Enhanced Data endpoint to meet CEDP requirements. Backward compatibility will not be supported on older versions.

Add or Edit Enhanced Data

put /v3/invoice/by-transaction-id/{transaction_id}

This method can be used to set Enhanced Data for any approved and unsettled sale or auth-only transaction.

This method will create or overwrite any existing enhanced data. It is idempotent, meaning one or more requests will have the same result.

Parameters
transaction_id required
Type
string

Loading...

X-Integrator-Id
Type
string
Maximum Length
12

Loading...

X-Permalinks
Type
string
Maximum Length
4

Loading...

Request Schema
customer_reference_id
Type
string
Pattern
^[ !-~]+$
Range
1 to 50 characters
Example
PO123456

Loading...

invoice_number
Type
string
Pattern
^[ !-~]+$
Range
1 to 50 characters
Example
INV453AB43FF

Loading...

tax_amount
Type
number
Minimum
-1
Example
2.16

Loading...

merchant_tax_id
Type
string
Range
329 to 359 characters
Example
htpAmr1TJ2hujwO/ObS8oFG3/AhF3AU0zh4QzgynFJejRxUOoyJ1MTXW54UD6F2cvuDCgLLMjY u1K8ybAX/Ap4HvsthqdMz5lYhDj1GwcDBUnZQx+upD/8gZNUHnm5S4EZkAXMNT79iwLCd++X97yOatd3 jhjxaC0zdRUABYr6PuVEYa7gXTEO3LIiOuA/noLVhrD7ZPni8dnCluyIk2z2k6OwDdCYFwvgpuuZ/luRb oG07uYBm1TfHnrLkuCGOxeP7B8Aa0rY1du7GFwXxYadI21AqrgM+DCJLfX156lil0gL4D/ZMQoTIr1hqDr 9WKv92V3M+H6Gsx7z0iCbn+8Ug==

Loading...

customer_tax_id
Type
string
Range
329 to 359 characters
Example
htpAmr1TJ2hujwO/ObS8oFG3/AhF3AU0zh4QzgynFJejRxUOoyJ1MTXW54UD6F2cvuDCgLLMjY u1K8ybAX/Ap4HvsthqdMz5lYhDj1GwcDBUnZQx+upD/8gZNUHnm5S4EZkAXMNT79iwLCd++X97yOatd3 jhjxaC0zdRUABYr6PuVEYa7gXTEO3LIiOuA/noLVhrD7ZPni8dnCluyIk2z2k6OwDdCYFwvgpuuZ/luRb oG07uYBm1TfHnrLkuCGOxeP7B8Aa0rY1du7GFwXxYadI21AqrgM+DCJLfX156lil0gL4D/ZMQoTIr1hqDr 9WKv92V3M+H6Gsx7z0iCbn+8Ug==

Loading...

freight_amount
Type
number
Minimum
0
Example
0

Loading...

discount_amount
Type
number
Minimum
0
Example
0.01

Loading...

source_address
Type
object
Example
[object Object]

Loading...

shipping_address
Type
object

Loading...

line_items
Type
array

Loading...

Example Request
{
  "customer_reference_id": "PO123456",
  "invoice_number": "INV453AB43FF",
  "tax_amount": 2.16,
  "merchant_tax_id": "htpAmr1TJ2hujwO/ObS8oFG3/AhF3AU0zh4QzgynFJejRxUOoyJ1MTXW54UD6F2cvuDCgLLMjY             u1K8ybAX/Ap4HvsthqdMz5lYhDj1GwcDBUnZQx+upD/8gZNUHnm5S4EZkAXMNT79iwLCd++X97yOatd3             jhjxaC0zdRUABYr6PuVEYa7gXTEO3LIiOuA/noLVhrD7ZPni8dnCluyIk2z2k6OwDdCYFwvgpuuZ/luRb             oG07uYBm1TfHnrLkuCGOxeP7B8Aa0rY1du7GFwXxYadI21AqrgM+DCJLfX156lil0gL4D/ZMQoTIr1hqDr            9WKv92V3M+H6Gsx7z0iCbn+8Ug==",
  "customer_tax_id": "htpAmr1TJ2hujwO/ObS8oFG3/AhF3AU0zh4QzgynFJejRxUOoyJ1MTXW54UD6F2cvuDCgLLMjY             u1K8ybAX/Ap4HvsthqdMz5lYhDj1GwcDBUnZQx+upD/8gZNUHnm5S4EZkAXMNT79iwLCd++X97yOatd3             jhjxaC0zdRUABYr6PuVEYa7gXTEO3LIiOuA/noLVhrD7ZPni8dnCluyIk2z2k6OwDdCYFwvgpuuZ/luRb             oG07uYBm1TfHnrLkuCGOxeP7B8Aa0rY1du7GFwXxYadI21AqrgM+DCJLfX156lil0gL4D/ZMQoTIr1hqDr            9WKv92V3M+H6Gsx7z0iCbn+8Ug==",
  "discount_amount": 0.01,
  "source_address": {
    "postal_code": "99201"
  },
  "shipping_address": {
    "postal_code": "99201",
    "country": "US"
  },
  "line_items": {
    "product_label": "string",
    "quantity": 1.5,
    "unit_cost": 10,
    "unit_of_measure": "each",
    "commodity_code": "4321",
    "product_code": "string",
    "item_total_amount": 10,
    "item_tax_amount": 1,
    "discount_amount": 1,
    "product_id": "integer"
  }
}
Example Response
200 Successful Response
422 Validation Error

Contact Us

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.