# Creates a transaction

<a id="flute-v2-post-transactions"></a>
<span class="api-endpoint">POST {{<a href="#urlbases">baseURL</a>}}/v2/transactions</span>
This endpoint creates a transaction.
<span class="api-seealso">See Also:</span><br>
To list transactions, see `GET /v2/transactions`.<br>
To capture a transaction, see `POST /v2/transactions/{transactionId}/capture`.<br>
To calculate a transaction amount, see `POST /v2/transactions/calculate-amount`.`

Endpoint: POST /v2/transactions
Version: V2 Beta
Security: Bearer

## Request fields (application/json):

  - `paymentProcessorId` (string)
    Identifies the payment processor.

Example: 76215e54-a85b-4d42-9553-163fe393cb02
    Example: 76215e54-a85b-4d42-9553-163fe393cb02

  - `baseAmount` (number)
    Specifies the base transaction amount before adjustments.
Examples:
125
125.5
125.50
    Example: 125.5

  - `currencyCode` (string)
    Identifies the transaction's currency code (in ISO 4217 currency code).

Example: USD
    Example: USD

  - `referenceId` (string)
    Specifies a reference identifier provided by the merchant.

This is included in the duplicate-check key.
It allows the same card and amount combination to be charged multiple times when the reference identifiers are different.

Example: REF-EXT-12345
    Example: REF-EXT-12345

  - `isCustomerInitiatedTransaction` (boolean)
    Specifies a transaction is initiated by a customer or a merchant.
If `true`, the transaction is initiated by customer.
If `false`, the transaction is initiated by a merchant.
Example: true
    Example: true

  - `pricingType` (string)
    Identifies the type of pricing.
This value is only relevant when Dual Pricing is enabled.
Valid values are:
| Status | Explanation |
|  --- | --- |
| Card | The transaction uses the card price, which may include a surcharge. |
| Cash | The transaction uses the cash price, which may include a cash discount. |

Example: Card
    Enum: "Card", "Cash"

  - `extraAmounts` (object)
    Identifies the extra amounts for the transaction.

To accept tips, the merchant is required to have tips enabled and tip-adjustment disabled.
If tip collection is enabled and committed at creation time, the tip gets prompted to the customer directly on the device.

  - `extraAmounts.tipAmount` (number)
    Identifies the absolute amount (in USD) of the tip to be added.
If this value is provided, it must be greater than zero.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first (`POST /pay-api/v1/transactions/auth`).
If the tip collection is enabled on the merchant settings and committed during POS transaction creation, the tip will be prompted to the customer directly on the device.

Care must be taken that a value other than zero can be provided to either `tipAmount` or `tipRate`.
A non-zero value cannot be provided to both.

Example: 14.50 (for $14.50)
    Example: 14.5

  - `extraAmounts.tipRate` (number)
    Identifies a tip percentage to be added.
If this value is provided, it must be greater than zero.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first.

Care must be taken that a value other than zero can be provided to either `tipAmount` or `tipRate`.
A non-zero value cannot be provided to both.

Example: 18.50 (for 18.50%)
    Example: 18.5

  - `extraAmounts.discountAmount` (number)
    Identifies the absolute amount (in USD) of discount to be applied.
If this value is provided, it must be greater than zero.

Care must be taken that a value other than zero can be provided to either `discountAmount` or `discountRate`.
A non-zero value cannot be provided to both.

Example: 25 (for $25)
    Example: 25

  - `extraAmounts.discountRate` (number)
    Identifies a percentage of a discount to be applied.
If this value is provided, it must be greater than zero.

Care must be taken that a value other than zero can be provided to either `discountAmount` or `discountRate`.
A non-zero value cannot be provided to both.

Example: 5.5 (for 5.5%)
    Example: 5.5

  - `extraAmounts.surchargeRate` (number)
    Identifies the percent of transaction amount.
Example: 2.5 (for 2.5%)
    Example: 2.5

  - `transactionEnhancedData` (object)
    Specifies a combined Level 2 and Level 3 enhanced data for card transactions.
Used for commercial card processing with additional transaction details.

  - `transactionEnhancedData.salesTaxRate` (number)
    Specifies the sales tax rate.
Example: 8.5 (for 8.5%)
    Example: 8.5

  - `transactionEnhancedData.invoiceNumber` (string)
    Specifies the VAT (value added tax) invoice number associated with the transaction.

The code may only contain letters, digits, and spaces.

Example: INV-001234
    Example: INV-001234

  - `transactionEnhancedData.purchaseOrder` (string)
    Specifies the value used by the customer to identify an order.

Issued by the buyer to the seller.

The code may only contain letters, digits, and spaces.

Example: PO-2026-0001
    Example: PO-2026-0001

  - `transactionEnhancedData.shippingCharges` (number)
    Specifies the amount (in USD) for shipping or freight charges applied to a product or transaction.

Example:  129.99
    Example: 129.99

  - `transactionEnhancedData.dutyCharges` (number)
    Specifies the total charges for any import or export duties included in the order.
Example: 2.5 (for 2.5%)
    Example: 2.5

  - `transactionEnhancedData.products` (array)
    Multiple products may be sent in a single request.

  - `transactionEnhancedData.products.productName` (string)
    Specifies the name of the product.

The code may only contain letters, digits, spaces, slashes, hyphen, and commas.

Example: Express Duo
    Example: Express Duo

  - `transactionEnhancedData.products.productDescription` (string)
    Specifies the description of the product.

Example: Standard office supplies
    Example: Standard office supplies

  - `transactionEnhancedData.products.productCode` (string)
    Specifies the merchant's assigned unique product identification code.

The code may only contain letters, digits, spaces, slashes, hyphen, and commas.

Example: HLA/6372
    Example: HLA/6372

  - `transactionEnhancedData.products.unitPrice` (number)
    Specifies the product price (in USD) for each unit. 

Example: 3.99
    Example: 3.99

  - `transactionEnhancedData.products.measurementUnit` (string)
    Specifies the unit of measurement for the product.
The code may only contain letters, digits, and spaces.
No special characters are allowed.
Examples:
EA
LB
DAY
    Example: EA

  - `transactionEnhancedData.products.quantity` (number)
    Specifies the quantity of a product.

Example: 12
    Example: 12

  - `transactionEnhancedData.products.taxAmount` (number)
    Specifies the tax amount established on a product.
Example: 3.75 (for 3.75%)
    Example: 3.75

  - `transactionEnhancedData.products.discountRate` (number)
    Specifies the discount percentage applied to a product.
Examples:
10 (for 10%)
2.5 (for 2.5%)
    Example: 10

  - `billingAddress` (object)
    Identifies the address information.

  - `billingAddress.addressLine1` (string)
    Identifies the street address.

Example: 21 E. Main Street
    Example: 21 E. Main Street

  - `billingAddress.addressLine2` (string)
    Identifies additional street address information.

Example: Office 3
    Example: Office 3

  - `billingAddress.city` (string)
    Identifies the name of the city.
Examples:
Chicago
New York
Salt Lake City
    Example: Chicago

  - `billingAddress.postalCode` (string)
    Identifies the postal or ZIP code.
Examples:
60601
60601-0001
    Example: 60601-0001

  - `billingAddress.stateCode` (string)
    Identifies the state identifier (in two-letter USPS [United States Postal Service] postal code).
For regions outside the US, use the ISO 3166-2 format.
Examples:
TX
WA
IL
    Example: NY

  - `billingAddress.countryCode` (string, required)
    Identifies the country identifier (in two letter ISO 3166-1 format).
Examples:
US
CA
GB
    Example: US

  - `contactInfo` (object)
    Contact information.

  - `contactInfo.firstName` (string)
    Specifies the customer's first name.

Example: Alexandro
    Example: Alexandro

  - `contactInfo.lastName` (string)
    Specifies the customer's last name.

Example: Peppared
    Example: Peppared

  - `contactInfo.companyName` (string)
    Specifies the name of the customer's company or organization.

Example: Peppared Street Cafe
    Example: Peppared Street Cafe

  - `contactInfo.email` (string)
    Specifies the customer's email.
Example: peppared@example.com
    Example: peppared@example.com

  - `contactInfo.mobilePhoneNumber` (string)
    Specifies the customer's mobile phone number.
Example: +14155552309
    Example: +14155552309

  - `contactInfo.hasSmsConsent` (boolean)
    Specifies the customer has consented to receiving the SMS.
If `true`, the customer has consented to receiving the SMS.
If `false`, the customer has not consented to receiving the SMS.
Example: true
    Example: true

  - `transactionDetails` (object)

  - `transactionDetails.cardData` (object)

  - `transactionDetails.cardData.paymentMethodId` (string)
    Specifies the payment method identifier.
This is the identifier of a previously saved ACH account to charge.
We recommend using `paymentMethodId` instead of `accountNumber`.

This field is mutually exclusive with `paymentMethodDetails`.
Provide exactly one.
When set, the parent request's `BillingAddress` and `ContactInfo` are optional (the stored payment method carries this data).
Example: 39a95e35-6d50-45ec-884b-c2417edf005d
    Example: 39a95e35-6d50-45ec-884b-c2417edf005d

  - `transactionDetails.cardData.paymentMethodDetails` (object)

  - `transactionDetails.cardData.paymentMethodDetails.cardNumber` (string)
    Specifies the card number (either credit or debit) used for the transaction.

Example: 4111111111111111
    Example: 4111111111111111

  - `transactionDetails.cardData.paymentMethodDetails.securityCode` (string)
    Specifies the securityCode (sometimes also called similarly to CCV) for the card.

This is a three or four digit security code on the credit card.

Example: 483
    Example: 483

  - `transactionDetails.cardData.paymentMethodDetails.expirationMonth` (integer)
    Identifies the expiration month (in a two-digit number format) of the card.
Examples:
07
12
    Example: 12

  - `transactionDetails.cardData.paymentMethodDetails.expirationYear` (integer)
    Identifies the expiration year (in a four-digit number) of the card.

Example: 2032
    Example: 2032

  - `transactionDetails.achData` (object)

  - `transactionDetails.achData.paymentMethodId` (string)
    Specifies the payment method identifier.
This is the identifier of a previously saved ACH account to charge.
We recommend using `paymentMethodId` instead of `accountNumber`.

This field is mutually exclusive with `paymentMethodDetails`.
Provide exactly one.
When set, the parent request's `BillingAddress` and `ContactInfo` are optional (the stored payment method carries this data).
Example: 39a95e35-6d50-45ec-884b-c2417edf005d
    Example: 39a95e35-6d50-45ec-884b-c2417edf005d

  - `transactionDetails.achData.paymentMethodDetails` (object)
    Specifies an object describing the payment method details.

This field is mutually exclusive with `paymentMethodId`.
Provide exactly one.

  - `transactionDetails.achData.paymentMethodDetails.accountNumber` (string)
    Specifies the bank account number for the ACH transaction.
We recommend avoiding the use of an account number.
Instead, use `paymentMethodId` when possible.
Example: 1234567890
    Example: 1234567890

  - `transactionDetails.achData.paymentMethodDetails.routingNumber` (string)
    Specifies the ACH's account routing number.

Example: 021000021
    Example: 021000021

  - `transactionDetails.achData.paymentMethodDetails.accountHolderType` (string)
    Identifies the holder type of the account.
Valid values are:
| Type | Description |
|  --- | --- |
| Business | Card issued to a business or company account. |
| Personal | Card issued to an individual for personal use. |

Example: Business
    Enum: "Business", "Personal"

  - `transactionDetails.achData.paymentMethodDetails.accountType` (string)
    Identifies the type of the account.
Valid values are:
| Type | Description |
|  --- | --- |
| Checking | Account used for regular daily transactions. |
| Savings | Account used to hold and grow funds over time. |

Example: Checking
    Enum: "Checking", "Savings"

  - `transactionDetails.achData.paymentMethodDetails.taxId` (string)
    Specifies the tax identifier.

Example: 12-3456789
    Example: 12-3456789

  - `transactionDetails.achData.secCode` (string)
    Indicates the ACH SEC (standard entry class) code.
Valid values are:
| Code | Description |
|  --- | --- |
| CCD | Used for business to business payments. |
| PPD | Used for consumer payments like payroll or bill pay. |
| Web | Used for a payment authorized on a website. |

Example: CCD
    Enum: "Web", "PPD", "CCD"

  - `transactionDetails.achData.isSameDayProcessing` (boolean)
    Specifies same-day ACH processing for faster settlement.
If `true`, the transaction uses the same-day ACH processing.
If `false`, the transaction does not use the same-day ACH processing.
If null or omitted, the default standard ACH processing is used.
Example: true
    Example: true

  - `transactionDetails.achData.requesterIpAddress` (string, required)
    Specifies the IP address (in IPv4 or IPv6 format3) of the end user.

This end user may be the customer, operator, or application responsible for submitting the transaction.
This is required for audit and fraud-detection purposes.

Example: 192.168.1.1
    Example: 192.168.1.1

  - `deviceId` (string)
    Specifies a device identifier from mobile app.
If included and the device has a linked user profile, the transaction is attributed to that user.
If null or omitted, no attribution is made.
example: 088642a8-9082-4496-be63-8120765c5ad3
    Example: 088642a8-9082-4496-be63-8120765c5ad3

  - `platform` (string)
    Specifies the platform of the mobile phone.
Valid values are:
| Item | Explanation |
|  --- | --- |
| Android | Mobile operating system by Google. |
| iOS | Mobile operating system by Apple. |

Example: iOS
    Enum: "iOS", "Android"

  - `appVersion` (string)
    Specifies the version of the mobile app used to process the transaction.

Example: 1.4.2
    Example: 1.4.2

  - `sdkVersion` (string)
    Specifies the version of the SDK used to process the transaction.

Example: 2.0.1
    Example: 2.0.1

## Response 200 fields (application/json):

  - `items` (array)

  - `items.transactionId` (string)
    Indicates the attached transaction identifier.

This value is available after processing.

Example: f01339ec-8184-48c7-b58d-0780d6499ef4
    Example: f01339ec-8184-48c7-b58d-0780d6499ef4

  - `items.transactionDateTime` (string)
    Indicates the date-time (in an ISO 8601 date-time format) of the transaction.

Example: 2026-05-05T14:30:42.938Z
    Example: 2026-05-05T14:30:42.938Z

  - `items.transactionStatus` (string)
    Indicates the aggregated transaction status.
Valid values are:
| Status | Description |
|  --- | --- |
| Authorized | Payment approved but funds not yet captured. |
| Cancelled | Transaction stopped before it completed. |
| Captured | Approved funds collected from the card. |
| ChargedBack | Cardholder disputed the charge with their bank. |
| Cleared | Funds finished processing and settled. |
| Declined | Payment rejected by the bank or processor. |
| Failed | Transaction could not complete due to an error. |
| Held | Transaction paused and awaiting release. |
| HeldByProcessor | Processor paused the transaction for review. |
| Informational | Record used for reference only, not a live charge. |
| InProgress | Transaction is still processing. |
| PartiallyAuthorized | Only part of the requested amount was approved. |
| Pending | Transaction is waiting for a result. |
| Refunded | Funds returned to the cardholder. |
| Scheduled | Transaction set to run at a future time. |
| Settled | Funds moved from issuer to the merchant account. |
| Verified | Card or account confirmed as valid. |
| Voided | Authorization cancelled before capture. |

Example: Authorized
    Enum: "Authorized", "Captured", "Voided", "Refunded", "Verified", "Settled", "PartiallyAuthorized", "Informational", "Scheduled", "Cancelled", "ChargedBack", "InProgress", "Cleared", "Held", "HeldByProcessor", "Pending", "Declined", "Failed"

  - `items.transactionType` (string)
    Identifies the type of the transaction.
Valid values are:
| Type | Explanation |
|  --- | --- |
| AchCancel | Cancels a pending ACH transaction. |
| AchCredit | Sends funds to a bank account. |
| AchDebit | Pulls funds from a bank account. |
| AchHold | Holds an ACH transaction temporarily. |
| AchRefund | Returns funds from an ACH payment. |
| AchUnHold | Releases a held ACH transaction. |
| Authorization | Reserves funds for later capture. |
| Capture | Collects funds from an authorization. |
| CardAuthentication | Confirms cardholder identity before payment. |
| Refund | Returns funds from a transaction. |
| RefundWORef | Refunds a transaction without a reference. |
| Sale | Authorizes and captures funds together. |
| Settle | Submits a batch for final processing. |
| TipAdjustment | Changes the tip amount on a transaction. |
| Void | Cancels a transaction before settlement. |

Example: AchDebit
    Enum: "AchCancel", "AchCredit", "AchDebit", "AchHold", "AchRefund", "AchUnHold", "Authorization", "Capture", "CardAuthentication", "Refund", "RefundWORef", "Sale", "Settle", "TipAdjustment", "Void"

  - `items.cardTokenType` (string)
    Indicates the type of the token.
Valid values are:
| Type | Meaning |
|  --- | --- |
| Local | Tokenized and stored within Flute's own vault |
| Network | Tokenized through a card network, such as Visa or Mastercard, using their network tokenization services |

Example: Local
    Enum: "Local", "Network"

  - `items.paymentMethodType` (string)
    Identifies the payment method type.
Valid values are:
| Type | Description |
|  --- | --- |
| ACH | Payment made through an ACH bank transfer. |
| Card | Payment made with a credit or debit card. |
| Cash | Payment made with physical currency. |

Example: Card
    Enum: "Card", "ACH", "Cash"

  - `items.referenceId` (string)
    Indicates a reference identifier provided by the merchant.

This is included in the duplicate-check key.
It allows the same card and amount combination to be charged multiple times when the reference identifiers are different.

Example: REF-EXT-12345
    Example: REF-EXT-12345

  - `items.processedAmount` (number)
    Indicates the transaction amount (in USD).

The value will be null until the transaction is completed.

Example: 87.39
    Example: 87.39

  - `items.currencyCode` (string)
    Identifies the transaction's currency code (in ISO 4217 currency code).

Example: USD
    Example: USD

  - `items.pricingType` (string)
    Identifies the type of pricing.
This value is only relevant when Dual Pricing is enabled.
Valid values are:
| Status | Explanation |
|  --- | --- |
| Card | The transaction uses the card price, which may include a surcharge. |
| Cash | The transaction uses the cash price, which may include a cash discount. |

Example: Card
    Enum: "Card", "Cash"

  - `items.merchantId` (string)
    Identifies the merchant identifier.

Example: 5611f824-48ef-4255-978d-91ce13953bbd
    Example: 5611f824-48ef-4255-978d-91ce13953bbd

  - `items.paymentProcessorId` (string)
    Identifies the payment processor.

Example: 76215e54-a85b-4d42-9553-163fe393cb02
    Example: 76215e54-a85b-4d42-9553-163fe393cb02

  - `items.customerId` (string)
    Identifies the customer to link this payment method to.

This value may be null when this payment method is an orphan owned by the merchant directly.
An orphan payment method is a payment method in the merchant's vault but has no customer record associated with it.

Example: 8fa8e727-73c6-436e-b56f-6f55aabf3b1c
    Example: 8fa8e727-73c6-436e-b56f-6f55aabf3b1c

  - `items.batchId` (string)
    Indicates the batch settlement identifier.

Example: 42df0a13-4bf4-48f8-929c-08a379c0a0d6
    Example: 42df0a13-4bf4-48f8-929c-08a379c0a0d6

  - `items.amountBreakdown` (object)
    Indicates an object detailing the amount breakdown details.

  - `items.amountBreakdown.baseAmount` (number)
    Identifies the base transaction amount (in USD) before adjustments.
Examples:
125
125.5
125.50
    Example: 125.5

  - `items.amountBreakdown.tipAmount` (number)
    Indicates the absolute amount (in USD) of the tip to be added.
If this value is provided, it must be greater than zero.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first (`POST /pay-api/v1/transactions/auth`).

Care must be taken that a value other than zero can be provided to either `tipAmount` or `tipRate`.
A non-zero value cannot be provided to both.

Example: 14.50 (for $14.50)
    Example: 14.5

  - `items.amountBreakdown.tipRate` (number)
    Indicates a percentage of the tip to be added.
If this value is provided, it must be greater than zero.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first (`POST /pay-api/v1/transactions/auth`).

Care must be taken that a value other than zero can be provided to either `tipAmount` or `tipRate`.
A non-zero value cannot be provided to both.

Example: 18.50 (for 18.50%)
    Example: 18.5

  - `items.amountBreakdown.discountAmount` (number)
    Indicates the absolute amount (in USD) of discount to be applied.
If this value is provided, it must be greater than zero.
Example: 25 (for $25)
    Example: 25

  - `items.amountBreakdown.discountRate` (number)
    Indicates a percentage of a discount to be applied.
If this value is provided, it must be greater than zero.

Care must be taken that a value other than zero can be provided to either `discountAmount` or `discountRate`.
A non-zero value cannot be provided to both.

Example: 5.5 (for 5.5%)
    Example: 5.5

  - `items.amountBreakdown.surchargeAmount` (number)
    Indicates the surcharge amount (in USD) applied.

Care must be taken that a value other than zero can be provided to either `discountAmount` or `discountRate`.
A non-zero value cannot be provided to both.

Example: 22 (for $22)
    Example: 22

  - `items.amountBreakdown.surchargeRate` (number)
    Indicates the percent of transaction amount.
This value is added to the base amount after `PercentageOffRate` has been applied.
Care must be taken that a value other than zero can be provided to either `surchargeAmount` or `surchargeRate`.
A non-zero value cannot be provided to both.
Example: 2.5 (for 2.5%)
    Example: 2.5

  - `items.cardDetails` (object)
    Indicates the card details exposed on transaction responses.

These may be masked for sensitive fields or fully displayed for non-sensitive fields.

  - `items.cardDetails.paymentMethodId` (string)
    Indicates the payment method identifier.

This is the identifier of a previously saved ACH account to charge.

Example: 39a95e35-6d50-45ec-884b-c2417edf005d
    Example: 39a95e35-6d50-45ec-884b-c2417edf005d

  - `items.cardDetails.maskedCardNumber` (string)
    Indicates the masked card number.
This displays only the last four numbers.
Example: ************1111
    Example: ************1111

  - `items.cardDetails.cardBrand` (string)
    Indicates the type of the card.
Valid values are:
| Type | Description |
|  --- | --- |
| AmericanExpress | Card issued by American Express network. |
| DinersClub | Card issued by the Diners Club network. |
| Discover | Card issued by the Discover network. |
| JCB | Card issued by the Japan Credit Bureau network. |
| MasterCard | Card issued by the MasterCard network. |
| Unknown | Card type could not be determined. |
| Visa | Card issued by the Visa network. |

Example: Visa
    Enum: "Unknown", "Visa", "MasterCard", "AmericanExpress", "DinersClub", "Discover", "JCB"

  - `items.cardDetails.cardType` (string)
    Indicates the card is either credit or debit.
Valid values are:
| Type | Description |
|  --- | --- |
| Credit | Card draws funds from a credit line. |
| Debit | Card draws funds from a bank account. |
| Unknown | Card funding type could not be determined. |

Example: Credit
    Enum: "Credit", "Debit", "Unknown"

  - `items.cardDetails.cardDataSource` (string)
    Indicates the source of the card (credit or debit).
Valid values are:
| Item | Explanation |
|  --- | --- |
| EMV | Chip read using EMV tags. |
| EMVContactless | Tap chip read using EMV tags. |
| FallbackSwipe | Swipe used after failed chip read. |
| Internet | Virtual terminal or API entry. |
| Manual | Card present, keyed entry. |
| NFC | Contactless tap using EMV tags and track data. |
| Swipe | Magnetic stripe track data read. |

Example: Swipe
    Enum: "Internet", "Swipe", "NFC", "EMV", "EMVContactless", "FallbackSwipe", "Manual"

  - `items.cardDetails.cardholderVerificationMethod` (string)
    Indicates the method the cardholder was authenticated with.
Valid values are:
| Item | Explanation |
|  --- | --- |
| ElectronicSignatureAnalysis | Electronic signature captured and analyzed. |
| ETicketEnvAmex | E-ticket environment specific to American Express. |
| ManualOther | Other manual verification method. |
| ManualSignature | Paper or screen signature obtained. |
| NotAuthenticated | No cardholder verification performed. |
| OfflinePin | Offline PIN verified by card chip, no network. |
| PIN | Online PIN verified by issuer. |
| SystematicOther | Systematic or automated method not listed. |
| Unknown | Verification method is unknown. |

Example: PIN
    Enum: "NotAuthenticated", "PIN", "ElectronicSignatureAnalysis", "ManualSignature", "ManualOther", "Unknown", "SystematicOther", "ETicketEnvAmex", "OfflinePin"

  - `items.achDetails` (object)
    Indicates ACH account details exposed on transaction responses.

These may be masked for sensitive fields or fully displayed for non-sensitive fields.

  - `items.achDetails.maskedAccountNumber` (string)
    Indicates the masked ACH account number.
This displays only the last four numbers.
Example: **************89
    Example: **************89

  - `items.achDetails.accountRoutingNumber` (string)
    Indicates the masked ACH routing number.

Example: 123123123
    Example: 123123123

  - `items.achDetails.accountHolderType` (string)
    Identifies the holder type of the account.
Valid values are:
| Type | Description |
|  --- | --- |
| Business | Card issued to a business or company account. |
| Personal | Card issued to an individual for personal use. |

Example: Business
    Enum: "Business", "Personal"

  - `items.achDetails.accountType` (string)
    Identifies the type of the account.
Valid values are:
| Type | Description |
|  --- | --- |
| Checking | Account used for regular daily transactions. |
| Savings | Account used to hold and grow funds over time. |

Example: Checking
    Enum: "Checking", "Savings"

  - `items.achDetails.secCode` (string)
    Indicates the ACH SEC (standard entry class) code.
Valid values are:
| Code | Description |
|  --- | --- |
| CCD | Used for business to business payments. |
| PPD | Used for consumer payments like payroll or bill pay. |
| Web | Used for a payment authorized on a website. |

Example: CCD
    Enum: "Web", "PPD", "CCD"

  - `items.achDetails.isSameDayProcessing` (boolean)
    Indicates same-day ACH processing for faster settlement.
If `true`, the transaction uses the same-day ACH processing.
If `false`, the transaction does not use the same-day ACH processing.
If null or omitted, the default standard ACH processing is used.
Example: true
    Example: true

  - `items.processorDetails` (object)
    Payment processor identifiers for a transaction.

  - `items.processorDetails.mid` (string)
    Indicates the MID (merchant identifier) assigned by the processor.

Example: 932129304958123
    Example: 932129304958123

  - `items.processorDetails.tid` (string)
    Indicates the TID (terminal identifier) assigned by the processor.

example: 6095275263
    Example: 6095275263

  - `items.processorDetails.authCode` (string)
    Indicates the authorization code returned by the processor.

Example: VTLMC1
    Example: VTLMC1

  - `items.processorDetails.rrn` (string)
    Indicates the RRN (retrieval reference number) returned by the processor.

Example: 59d5df1aa58d4de3969175eeece571c1
    Example: 59d5df1aa58d4de3969175eeece571c1

  - `items.source` (object)
    Indicates an object describing the origination of the transaction.

  - `items.source.sourceType` (string)
    Indicates the source of the transaction.
Valid values are:
| Value | Description |
|  --- | --- |
| ApiKey | An external application created the transaction using an API key. |
| Invoice | A billed invoice created the transaction. |
| MobileApp | A mobile application created the transaction. |
| Portal | A staff member created the transaction through the web portal. |
| QuickPayment | A one-time payment link created the transaction. |
| Subscription | A recurring subscription created the transaction. |
| TapToPay | A mobile device using tap to pay created the transaction. |
| Terminal | A physical payment terminal created the transaction. |
| WebComponent | An embedded web component created the transaction. |

Example: QuickPayment
    Enum: "Portal", "ApiKey", "Terminal", "Invoice", "QuickPayment", "WebComponent", "Subscription", "MobileApp", "TapToPay"

  - `items.source.sourceId` (string)
    Indicates the Identifier of the originating entity.

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
    Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6

  - `items.source.sourceName` (string)
    Indicates a human-readable name of the originator.

Example: API Key for ecommerce app
    Example: API Key for ecommerce app

  - `pageInfo` (object)
    Indicates an object describing the pagination status.
If additional pages to review are needed, repeat the exact same search but include a new pageIndex value.
Typically, this will increment the current `pageIndex` by one.
However, any valid value may be used.
Value restrictions include:
* A value less than zero is not permitted.
* Values equal to or greater than `totalPages` end successfully but will not return any items.

  - `pageInfo.pageIndex` (integer)
    Indicates the page number from the search results.
The pageIndex value is zero-based.
Valid values range from zero to `totalPages` less one.
For example, if `totalPages` = 10, then the valid range is zero to nine.
Example: 0
    Example: 0

  - `pageInfo.pageSize` (integer)
    Indicates the number of items returned per page.

Example: 20
    Example: 20

  - `pageInfo.totalItems` (integer)
    Indicates the total number of items across all pages.

Example: 1012
    Example: 1012

  - `pageInfo.totalPages` (integer)
    Indicates the total number of pages available.

Example: 51
    Example: 51

  - `pageInfo.hasMore` (boolean)
    Indicates additional pages are available after the current one.
If `true`, additional pages are available after the current one.
If `false`, additional pages are not available after the current one.
Example: true
    Example: true

## Response 400 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 401 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 402 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 403 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 404 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 409 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 429 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 500 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

