# Retrieves payment session details by ID

GET {{baseURL}}/v2/payment-sessions/{{paymentSessionId}}
This endpoint retrieves the details of the specified payment session by ID.
See Also:
To create a new payment session, see POST /v2/payment-sessions.
To cancel a payment session, see POST /v2/payment-sessions/{{paymentSessionId}}/cancel.

Endpoint: GET /v2/payment-sessions/{paymentSessionId}
Version: V2 Beta
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer JWT

## Path parameters:

  - `paymentSessionId` (string, required)
    Specifies the payment session identifier.

Example: edf7b36a-1b2c-4d3e-4f5a-6b7c8d9e0f36

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `statusId` (integer)
    For internal use only.

Do not use.

  - `status` (string)
    Indicates the payment session status.
Valid values:
| Status | Description |
|  --- | --- |
| Created | Payment session was initialized but not yet processed. |
| Completed | Payment session was completed. Check transaction details to verify if the payment was approved or not. |
| Cancelled | Payment session was canceled before completion. |
| Expired | Payment session expired before being completed. |
| Failed | Payment was attempted but did not succeed. A new session must be created for a new payment attempt. |

Example: Created
    Enum: "Created", "Completed", "Cancelled", "Expired", "Failed"

  - `mode` (string)
    Indicates the intent of the session.
| Name | Description |
|  --- | --- |
| Payment | Standard payment session. |
| SaveMethod | Vault-only session to store a payment method. The amount must be zero.No payment is processed. This stores the customer's card details for future use. `vaultedPaymentMethodId` is returned on the session once confirmed. |
| PaymentAndSave | Charge the payment and store the customer's card details for future use.`vaultedPaymentMethodId` is returned on the session once confirmed. |

Example: Payment
    Enum: "Payment", "SaveMethod", "PaymentAndSave"

  - `skipAddressVerification` (boolean)
    Indicates to bypass the AVS (address verification service) in the payment gateway.
This value is applicable only to `Payment` and `PaymentAndSave` from `mode`.
If `true`, bypasses AVS in the payment gateway.
If `false`, does not bypass AVS in the payment gateway.
Example: true
    Example: true

  - `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

  - `vaultedPaymentMethodId` (string)
    Indicates the identifier of the vaulted payment method when the session involves saving or using a stored payment method.

Example: 990a65f4-519c-44f9-a615-fc9c7781190c
    Example: 990a65f4-519c-44f9-a615-fc9c7781190c

  - `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

  - `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.
Example: 14.50 (for $14.50)
    Example: 14.5

  - `returnUrl` (string)
    Indicates the URL to redirect the payer to after a successful payment.

This value is not needed if using Flute Elements and Flute Checkout.

Example: https://api.payments.flute.com/xOut/sessions/session-complete.html
    Example: https://api.payments.flute.com/xOut/sessions/session-complete.html

  - `paymentLinkId` (string)
    Indicates the payment link that generated this payment session, when applicable.
This value is `null` for a payment session created directly through POST /v2/payment-sessions.
Example: 6f2a8b3c-9d4e-4f1a-8b7c-3e5d6a9f0c1b
    Example: 6f2a8b3c-9d4e-4f1a-8b7c-3e5d6a9f0c1b

  - `paymentMethods` (object)
    Identifies the payment methods a payment link accepts.
It is keyed by method so each one carries only the configuration that applies to it.

  - `paymentMethods.card` (object)
    Identifies the card configuration on a payable resource.

  - `paymentMethods.card.enabled` (boolean)
    Identifies whether card payments are accepted.

Naming the payment method without a body offers it with no further configuration.

Example: true
    Example: true

  - `paymentMethods.card.processorId` (string)
    Identifies the processor that charges this resource's card payments.
This must be an active card processor of the merchant.
Omit this value to pin the merchant's current default active card processor.
A response carries the pinned processor, or `null` for a resource created before pinning was introduced.
Example: d529945e-8d10-4cb4-9dc3-718e57f3f14e
    Example: d529945e-8d10-4cb4-9dc3-718e57f3f14e

  - `paymentMethods.ach` (object)
    Identifies the ACH configuration on a payable resource.

This is typed separately from the card configuration so that ACH-only settings are enforced by the contract rather than by validation.

  - `paymentMethods.ach.enabled` (boolean)
    Identifies whether ACH payments are accepted.

Naming the payment method without a body offers it with no further configuration.

Example: true
    Example: true

  - `paymentMethods.ach.processorId` (string)
    Identifies the processor that charges this resource's ACH payments.
This must be an active ACH processor of the merchant.
Omit this value to pin the merchant's current default active ACH processor.
A response carries the pinned processor, or `null` for a resource created before pinning was introduced.
Example: d529945e-8d10-4cb4-9dc3-718e57f3f14e
    Example: d529945e-8d10-4cb4-9dc3-718e57f3f14e

  - `paymentMethods.ach.achAllowFasterProcessing` (boolean)
    Identifies ACH (automated clearing house) payments made through this resource use same-day processing.
If `true`, a submitted ACH payment is processed the same day.
If `false`, a submitted ACH payment uses standard processing timing.
Example: false
    Example: false

  - `taxRate` (number)
    Identifies the tax rate percentage to apply to the base amount.
Valid values range from 0 to 100, with up to three decimal places.
`taxMode` and `taxRate` must be set together, or both omitted.
When both are omitted, there is no tax configured.
Example: 8.25 (for 8.25%)
    Example: 8.25

  - `taxMode` (string)
    Indicates how `taxRate` is applied to `amount`.
| Name | Description |
|  --- | --- |
| Exclusive | Adds the tax on top of `amount`. The payer is charged `amount` plus the tax. |
| Inclusive | Treats `amount` as already including the tax. No extra amount is added. |

`taxMode` and `taxRate` must be set together, or both omitted.
When both are omitted, the payment session has no tax configured.
Example: Exclusive
    Enum: "Exclusive", "Inclusive"

  - `metadata` (object)
    Indicates arbitrary key-value pairs to attach to the payment session object.
These values are used to store supplemental information.
They are not functionally used in this endpoint.
Instead, they are included while retrieving the payment session.
This allows additional notes to be passed along to the operator.
Pass null to clear all metadata.
Examples:
[ {"orderId": "9921"} ]
[ {"Guest notes": "Member of The World of Hyatt Credit Card."} ]
[{"orderId": "9921"}, {"Guest notes": "Member of The World of Hyatt Credit Card."}]
    Example: [{"orderId":"9921"},{"Guest notes":"Member of The World of Hyatt Credit Card."}]

  - `afterCompletionMessage` (string)
    Specifies a message shown to the payer after the payment session completes.

This value is not needed if using Flute Elements and Flute Checkout.

Example: Thank you for shopping with us.
    Example: Thank you for shopping with us.

  - `pageName` (string)
    Specifies the display name shown on the checkout page.

This is a free-formed name that is convenient for the merchant to recognize. 

Example: Peppared Street Cafe's Preferred Payment
    Example: Peppared Street Cafe's Preferred Payment

  - `expiresAt` (string)
    Specifies the expiration timestamp (in an ISO 8601 date-time UTC format) for the payment session.

The time must be in the future.

Example: 2026-02-19T20:24:52.934Z
    Example: 2026-02-19T20:24:52.934Z

  - `paymentNotes` (string)
    Specifies additional notes shown to the payer on the checkout page.

Example: The client's server is being repaired.
    Example: The client's server is being repaired.

  - `achAccountLast2` (string)
    Indicates the last two digits of an ACH (automated clearing house) bank account number.

Example: 84
    Example: 84

  - `achRoutingLast2` (string)
    Indicates the last two digits of an ACH (automated clearing house) bank routing number.

Example: 62
    Example: 62

  - `surchargeAmount` (number)
    Specifies the surcharge amount (in USD) applied.
Example: 18.45 (for $18.45)
    Example: 18.45

  - `transactionDetails` (object)

  - `transactionDetails.transactionReceiptUrl` (string)
    Indicates the direct URL link to the transaction receipt.

Example: https://receipts.flute.com/r/90d084d6-55b8-4fb8-b658-861534d07f9a
    Example: https://receipts.flute.com/r/90d084d6-55b8-4fb8-b658-861534d07f9a

  - `transactionDetails.transactionReceiptShortUrl` (string)
    Indicates the shortened direct URL link to the transaction receipt.

Example: "https://s.flute.com/745iZYxF83t"
    Example: https://s.flute.com/745iZYxF83t

  - `transactionDetails.source` (object)
    Transaction source information.

  - `transactionDetails.source.name` (string)
    Indicates the name of that specific instance.

This is a free-formed type name that is convenient for the merchant to recognize.

Example: Front Counter Terminal
    Example: Front Counter Terminal

  - `transactionDetails.source.type` (string)
    Indicates the description of the source.

This is a free-formed type name that is convenient for the merchant to recognize.

Example: Terminal
    Example: Terminal

  - `transactionDetails.source.id` (string)
    Indicates an identifier specifying the instance of the source.

Example: 5e6e2ad1-8c9d-4e0f-1a2b-3c4d5e6f7a03
    Example: 5e6e2ad1-8c9d-4e0f-1a2b-3c4d5e6f7a03

  - `transactionDetails.source.typeId` (integer)
    Reserved for internal use only.

Do not use.

  - `transactionDetails.source.version` (string)
    Indicates the version.

Example: 1.4.2
    Example: 1.4.2

  - `transactionDetails.transactionReceipt` (object)
    Transaction receipt information.

  - `transactionDetails.transactionReceipt.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

  - `transactionDetails.transactionReceipt.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

  - `transactionDetails.transactionReceipt.amount` (object)

  - `transactionDetails.transactionReceipt.amount.baseAmount` (number)
    Specifies the base transaction amount before adjustments.

Example: 99.99
    Example: 99.99

  - `transactionDetails.transactionReceipt.amount.percentageOffAmount` (number)
    Specifies the discount amount (in USD) taken off.
This discount was calculated using the preset percentage from `percentageOffRate`.
Example: 12.50 (for $12.50)
    Example: 12.5

  - `transactionDetails.transactionReceipt.amount.percentageOffRate` (number)
    Identifies the discount percentage.
This value is the percentage rate for the discount.
This discount percentage calculates the discount amount for `percentageOffAmount`.
Example: 3.5 (as 3.5%)
    Example: 3.5

  - `transactionDetails.transactionReceipt.amount.cashDiscountAmount` (number)
    Identifies the cash discount amount (in USD) taken off.
Example: 12.50 (for $12.50)
    Example: 12.5

  - `transactionDetails.transactionReceipt.amount.cashDiscountRate` (number)
    Identifies the discount percentage for a cash (or cash-equivalent) discount.
Example: 1.5 (for 1.5%)
    Example: 1.5

  - `transactionDetails.transactionReceipt.amount.surchargeAmount` (number)
    Specifies the surcharge amount (in USD) 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: 22 (for $22)
    Example: 22

  - `transactionDetails.transactionReceipt.amount.surchargeRate` (number)
    Indicates the percent of transaction surcharge 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

  - `transactionDetails.transactionReceipt.amount.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

  - `transactionDetails.transactionReceipt.amount.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

  - `transactionDetails.transactionReceipt.amount.taxAmount` (number)
    Indicates the tax amount established on a product.
Example: 3.75 (for 3.75%)
    Example: 3.75

  - `transactionDetails.transactionReceipt.amount.taxRate` (number)
    Indicates the default level 2 autoFill sales tax rate.
Examples:
5.0 (for 5.0%)
8.5 (for 8.5%)
10.25 (for 10.25%)
    Example: 8.5

  - `transactionDetails.transactionReceipt.amount.totalAmount` (number)
    Indicates the final total amount (in USD).
Example: 124.99 (for $124.99)
    Example: 124.99

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

Example: USD
    Enum: "USD"

  - `transactionDetails.transactionReceipt.processorId` (string)
    Identifies the payment processor.

Defaults to merchant's default processor.

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

  - `transactionDetails.transactionReceipt.processor` (string)
    Indicates the name of the payment processor.

Example: TSYS
    Example: TSYS

  - `transactionDetails.transactionReceipt.operationTypeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.transactionReceipt.operationType` (string)
    Identifies the type of the operation.
Valid values are:
| Item | Explanation |
|  --- | --- |
| PayNow | One-time charge for a service. |
| Subscription | Recurring charge for ongoing service. |

Example: PayNow
    Enum: "PayNow", "Subscription"

  - `transactionDetails.transactionReceipt.paymentMethodTypeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.transactionReceipt.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"

  - `transactionDetails.transactionReceipt.transactionTypeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.transactionReceipt.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"

  - `transactionDetails.transactionReceipt.customerPan` (string)
    Indicates the masked card number.
This displays only the last four numbers.
Example: ************1111
    Example: ************1111

  - `transactionDetails.transactionReceipt.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"

  - `transactionDetails.transactionReceipt.statusId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.transactionReceipt.status` (string)
    Indicates the status of the transaction.
Valid values are:
| Status | Explanation |
|  --- | --- |
| Cancelled | The transaction was canceled before completion. |
| Completed | The payment attempt finished processing. This does not mean the payment was approved — check `responseCode` and `responseDescription` on this same object to confirm approval or decline. |
| Created | The transaction was initialized but not yet processed. |
| Expired | The transaction expired before being completed. |
| Failed | The payment was attempted but did not succeed. A new session is needed. |

Example: Completed
    Enum: "Cancelled", "Completed", "Created", "Expired", "Failed"

  - `transactionDetails.transactionReceipt.merchantName` (string)
    Indicates the name of the customer's company or organization.

Example: Peppared Street Cafe
    Example: Peppared Street Cafe

  - `transactionDetails.transactionReceipt.merchantAddress` (string)
    Indicates the customer's company address.

Example: 123 Main St, Suite 100, New York
    Example: 123 Main St, Suite 100, New York

  - `transactionDetails.transactionReceipt.merchantPhoneNumber` (string)
    Indicates the customer's phone number.
Example: +14155552309
    Example: +14155552309

  - `transactionDetails.transactionReceipt.merchantEmailAddress` (string)
    Indicates the customer's email.
Example: peppared@example.com
    Example: peppared@example.com

  - `transactionDetails.transactionReceipt.merchantWebsite` (string)
    Indicates the customer's URL.

Example: PepparedStreetCafe.example.com
    Example: PepparedStreetCafe.example.com

  - `transactionDetails.transactionReceipt.authCode` (string)
    Indicates the authorization code from the card processor.

This authorization does not apply to tip adjustments.
The code explicitly falls back to the original.

Example: ABC123
    Example: ABC123

  - `transactionDetails.transactionReceipt.source` (object)
    Indicates an object describing the source of the transaction.

  - `transactionDetails.transactionReceipt.source.name` (string)
    Indicates the name of that specific instance.

This is a free-formed type name that is convenient for the merchant to recognize.

Example: Front Counter Terminal
    Example: Front Counter Terminal

  - `transactionDetails.transactionReceipt.source.type` (string)
    Indicates the description of the source.

This is a free-formed type name that is convenient for the merchant to recognize.

Example: Terminal
    Example: Terminal

  - `transactionDetails.transactionReceipt.source.id` (string)
    Indicates an identifier specifying the instance of the source.

Example: 5e6e2ad1-8c9d-4e0f-1a2b-3c4d5e6f7a03
    Example: 5e6e2ad1-8c9d-4e0f-1a2b-3c4d5e6f7a03

  - `transactionDetails.transactionReceipt.source.typeId` (integer)
    Reserved for internal use only.

Do not use.

  - `transactionDetails.transactionReceipt.cardholderAuthenticationMethodId` (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"

  - `transactionDetails.transactionReceipt.cvmResultMsg` (string)
    Indicates a message describing the CVM (cardholder verification method) the terminal attempted.
It also indicates whether the verification succeeded or failed.
Examples:
CVM Failed
Signature Verified
    Example: Signature Verified

  - `transactionDetails.transactionReceipt.cardDataSourceId` (string)
    For internal use only.

Do not use.

  - `transactionDetails.transactionReceipt.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"

  - `transactionDetails.transactionReceipt.responseCode` (string)
    Indicates the response code from processor.
Examples:
00
051
    Example: 00

  - `transactionDetails.transactionReceipt.responseDescription` (string)
    Indicates a human-readable message that explains the response and response code.
Examples:
Approved or completed successfully
Declined - Do Not Honor
    Example: Declined - Do Not Honor

  - `transactionDetails.transactionReceipt.cardProcessingDetails` (object)

  - `transactionDetails.transactionReceipt.cardProcessingDetails.authCode` (string)
    Indicates the authorization code from the card processor.

This authorization does not apply to tip adjustments.
The code explicitly falls back to the original.

Example: ABC123
    Example: ABC123

  - `transactionDetails.transactionReceipt.cardProcessingDetails.mid` (string)
    Indicates the MID (merchant identifier).

This is an identifier the acquirer or processor assigns to a specific merchant account. 

Example: 700123456789
    Example: 700123456789

  - `transactionDetails.transactionReceipt.cardProcessingDetails.tid` (string)
    Indicates the TID (terminal identifier).

This is an identifier of the specific physical terminal or device used in the transaction.

Example: 00012345
    Example: 00012345

  - `transactionDetails.transactionReceipt.cardProcessingDetails.rrn` (string)
    Indicates the RRN (retrieval reference number).

This is a card-network, such as for Visa or Mastercard, reference number assigned to every card transaction.
It is used to trace or retrieve the transaction later, such as for chargebacks or disputes.

Example: 625031412345
    Example: 625031412345

  - `transactionDetails.transactionReceipt.cardProcessingDetails.cardCreditDebitType` (string)
    Indicates the card as 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"

  - `transactionDetails.transactionReceipt.cardProcessingDetails.processCreditDebitType` (string)
    Indicates the network actually processed the transaction as a credit or a debit transaction.
This processing is specified with `CardProcessedAsType`.
This can differ from `cardType`, which reflects the card's own funding classification.
A card issued as debit can be processed as credit, and a card issued as credit can be processed as debit.
Processing type depends on network routing, chip fallback behavior, and issuer rules at the time of authorization.
Valid values are:
| Type | Description |
|  --- | --- |
| Credit | The transaction was processed as a credit transaction. |
| Debit | The transaction was processed as a debit transaction. |
| Unknown | The processing type could not be determined. |

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

  - `transactionDetails.transactionReceipt.achProcessingDetails` (object)

  - `transactionDetails.transactionReceipt.achProcessingDetails.customerAccountNumber` (string)
    Indicates the ACH account number.

This displays only the last four numbers.

Example: 4111111111111111
    Example: 4111111111111111

  - `transactionDetails.transactionReceipt.achProcessingDetails.customerRoutingNumber` (string)
    Indicates the ACH routing number.

Example: 867320021
    Example: 867320021

  - `transactionDetails.transactionReceipt.achProcessingDetails.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.transactionReceipt.achProcessingDetails.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.transactionReceipt.achProcessingDetails.taxId` (string)
    Specifies the tax identifier.

Example: 12-3456789
    Example: 12-3456789

  - `transactionDetails.transactionReceipt.availableOperations` (array)

  - `transactionDetails.transactionReceipt.availableOperations.availableAmount` (number)
    Indicates the maximum amount (in USD) eligible for the specified operation type.
See the field `type`.
Example: 49.99 (for $49.99)
    Example: 49.99

  - `transactionDetails.transactionReceipt.availableOperations.suggestedTips` (array)

  - `transactionDetails.transactionReceipt.availableOperations.suggestedTips.tipPercent` (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

  - `transactionDetails.transactionReceipt.availableOperations.suggestedTips.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

  - `transactionDetails.transactionReceipt.avsResponse` (object)
    Indicates the AVS (address verification service) response.

  - `transactionDetails.transactionReceipt.avsResponse.action` (string)
    Indicates allowing an action after address verification.
Valid values are:
| Status | Explanation |
|  --- | --- |
| Allow | If address verification passes, the payment proceeds. |
| Deny | If address verification does not pass, the payment is denied. |

Example: Allow
    Enum: "Allow", "Deny"

  - `transactionDetails.transactionReceipt.avsResponse.responseCode` (string)
    Indicates the response code from processor.
For a simplified explanation of the result, see the field `codeDescription`.
Example: Y
    Example: Y

  - `transactionDetails.transactionReceipt.avsResponse.codeDescription` (string)
    Indicates a simplified explanation of the result.
For the actual AVS (address verification service) result, see the field `responseCode`.
Example: Address and ZIP code match
    Example: Address and ZIP code match

  - `transactionDetails.transactionReceipt.avsResponse.group` (string)
    Indicates the AVS (address verification service) group type.
Valid values are:
| Status | Explanation |
|  --- | --- |
| Incompatible | The card issuer does not support this address check. |
| NoMatch | The billing address and postal code did not match. |
| PartialMatch | One part of the billing address matched, not both. |
| Unavailable | The address check result was not available. |
| ValidGroup | The billing address and postal code matched. |

Example: PartialMatch
    Enum: "NoMatch", "PartialMatch", "Incompatible", "Unavailable", "ValidGroup"

  - `transactionDetails.transactionReceipt.avsResponse.result` (string)
    Indicates the AVS (address verification service) result.
Valid values are:
| Status | Explanation |
|  --- | --- |
| Failed | The address check failed. |
| Passed | The address check passed. |

Example: Passed
    Enum: "Passed", "Failed"

  - `transactionDetails.transactionReceipt.emvTags` (object)

  - `transactionDetails.transactionReceipt.emvTags.ac` (string)
    Indicates the AC (application cryptogram).

This is the cryptographic value generated by the card chip so the issuer can authenticate the transaction.

Example: A123456789ABCDEF
    Example: A123456789ABCDEF

  - `transactionDetails.transactionReceipt.emvTags.tvr` (string)
    Indicates the TVR (terminal verification results).

This is a bitmask showing which checks the terminal ran and the success status of each one.
The individual checks include data authentication, cardholder verification, and risk management.

Example: 0000008000
    Example: 0000008000

  - `transactionDetails.transactionReceipt.emvTags.tsi` (string)
    Indicates the TSI (transaction status information).

This is a bitmask showing which processes were actually performed during the transaction.

Example: E800
    Example: E800

  - `transactionDetails.transactionReceipt.emvTags.aid` (string)
    Indicates the AID (application identifier).

This identifies the specific card payment application on the chip, such as Visa Credit or Mastercard Debit.

Example: A0000000031010
    Example: A0000000031010

  - `transactionDetails.transactionReceipt.emvTags.applicationLabel` (string)
    Indicates the application Label.

This is the human-readable name of that application, often shown on the terminal display.

Example: VISA CREDIT
    Example: VISA CREDIT

  - `transactionDetails.transactionReceipt.emvTags.rawTags` (array)
    Indicates the EMV chip transaction data elements, or tags. 

Each data element is identified by its own hex tag number according to the EMV specifications.
For example, the five most commonly needed ones are: ac (9F26), tvr (95), tsi (9B), aid (4F), and applicationLabel (50).
An actual EMV transaction can return many more tags than that, sometimes with dozens of possible values.

This tag array object contains all the returned pairings.

  - `transactionDetails.transactionReceipt.emvTags.rawTags.key` (string)
    Indicates the key of the pair.

Example: ac
    Example: ac

  - `transactionDetails.transactionReceipt.emvTags.rawTags.value` (string)
    Indicates the value of the pair.

Example: 9F26
    Example: 9F26

  - `transactionDetails.transactionReceipt.orderNumber` (string)
    Indicates a merchant-assigned order or invoice identifier associated to the transaction.

Example: ORD-4521
    Example: ORD-4521

  - `transactionDetails.id` (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

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

Example: 2025-02-19T20:24:52.934Z
    Example: 2025-02-19T20:24:52.934Z

  - `transactionDetails.amount` (object)

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

  - `transactionDetails.amount.percentageOffAmount` (number)
    Identifies the discount amount (in USD) taken off.
This discount was calculated using the preset percentage from `percentageOffRate`.
Example: 12.50 (for $12.50)
    Example: 12.5

  - `transactionDetails.amount.percentageOffRate` (number)
    Identifies the discount percentage.
This value is the percentage rate for the discount.
This discount percentage calculates the discount amount for `percentageOffAmount`.
Example: 3.5 (as 3.5%)
    Example: 3.5

  - `transactionDetails.amount.cashDiscountAmount` (number)
    Identifies the cash discount amount (in USD) taken off.
Example: 12.50 (for $12.50)
    Example: 12.5

  - `transactionDetails.amount.cashDiscountRate` (number)
    Identifies the discount percentage for a cash (or cash-equivalent) discount.
Example: 1.5 (for 1.5%)
    Example: 1.5

  - `transactionDetails.amount.surchargeAmount` (number)
    Specifies the surcharge amount (in USD) 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: 22 (for $22)
    Example: 22

  - `transactionDetails.amount.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

  - `transactionDetails.amount.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

  - `transactionDetails.amount.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

  - `transactionDetails.amount.taxAmount` (number)
    Indicates the tax amount established on a product.
Example: 3.75 (for 3.75%)
    Example: 3.75

  - `transactionDetails.amount.taxRate` (number)
    Indicates the default level 2 autoFill sales tax rate.
Examples:
5.0 (for 5.0%)
8.5 (for 8.5%)
10.25 (for 10.25%)
    Example: 8.5

  - `transactionDetails.amount.totalAmount` (number)
    Indicates the final total amount (in USD).
Example: 124.99 (for $124.99)
    Example: 124.99

  - `transactionDetails.currencyId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.createdBy` (string)
    Indicates the creator of the transaction.

Example: Alexandro Peppared
    Example: Alexandro Peppared

  - `transactionDetails.merchant` (string)
    Indicates the name of the customer's company or organization.

Example: Peppared Street Cafe
    Example: Peppared Street Cafe

  - `transactionDetails.processor` (string)
    Indicates the name of the payment processor.

Example: TSYS
    Example: TSYS

  - `transactionDetails.paymentMethodTypeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.paymentMethodName` (string)
    Indicates the name of the payment method.

This is a free-formed name that is convenient for the merchant to recognize.

Example: Cafe Peppared Payments
    Example: Cafe Peppared Payments

  - `transactionDetails.customerName` (string)
    Indicates the name of the customer's company or organization.

Example: Alexandro Peppared
    Example: Alexandro Peppared

  - `transactionDetails.customerCompany` (string)
    Indicates the name of the customer's company or organization.

Example: Peppared Street Cafe
    Example: Peppared Street Cafe

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

  - `transactionDetails.customerEmail` (string)
    Indicates the customer's email.
Example: peppared@example.com
    Example: peppared@example.com

  - `transactionDetails.customerPhone` (string)
    Indicates the customer's phone number.
Example: +14155552309
    Example: +14155552309

  - `transactionDetails.statusId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.responseCode` (string)
    Indicates the response code from processor.
Examples:
00
051
    Example: 00

  - `transactionDetails.responseMessage` (string)
    Indicates a human-readable message from the processor about the response.
For a more detailed explanation, see the field `responseDescription`.
Example: Approved
    Example: Approved

  - `transactionDetails.responseDescription` (string)
    Indicates a human-readable message that explains the response and response code.
Examples:
Approved or completed successfully
Declined - Do Not Honor
    Example: Declined - Do Not Honor

  - `transactionDetails.avsResponseCode` (string)
    Indicates the top-level AVS (address verification service) response code from the processor.
For the detailed AVS result, see the field `avsResponse`.
Example: Y
    Example: Y

  - `transactionDetails.availableStates` (array)
    Indicates the states this transaction can transition to next.

  - `transactionDetails.refunded` (boolean)
    Indicates this transaction has been refunded.
If `true`, the transaction has been refunded.
If `false`, the transaction has not been refunded.
Example: false
    Example: false

  - `transactionDetails.typeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.type` (string)
    Indicates the type of the transaction.
See the field `transactionType` on `transactionReceipt` for the transaction type as a documented enum value.

  - `transactionDetails.creditDebitTypeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.authCode` (string)
    Indicates the authorization code from the card processor.

This authorization does not apply to tip adjustments.
The code explicitly falls back to the original.

Example: ABC123
    Example: ABC123

  - `transactionDetails.mid` (string)
    Indicates the MID (merchant identifier).

This is an identifier the acquirer or processor assigns to a specific merchant account.

Example: 700123456789
    Example: 700123456789

  - `transactionDetails.tid` (string)
    Indicates the TID (terminal identifier).

This is an identifier of the specific physical terminal or device used in the transaction.

Example: 00012345
    Example: 00012345

  - `transactionDetails.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

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

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

  - `transactionDetails.availableOperations` (array)
    Indicates the operations still available on this transaction (such as capture, refund, or void).

  - `transactionDetails.histories` (array)
    Indicates the history of status transitions this transaction has gone through.
Example: []

  - `transactionDetails.histories.id` (string)
    Indicates the identifier of this status transition.

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

  - `transactionDetails.histories.transactionDateTime` (string)
    Indicates the date-time (in an ISO 8601 date-time format) this status transition occurred.

Example: 2026-05-05T14:32:15.867Z
    Example: 2026-05-05T14:32:15.867Z

  - `transactionDetails.histories.transactionAmount` (number)
    Indicates the amount (in USD) associated with this status transition.
Example: 124.99 (for $124.99)
    Example: 124.99

  - `transactionDetails.histories.transactionTypeId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.histories.transactionStatusId` (integer)
    For internal use only.

Do not use.

  - `transactionDetails.histories.transactionStatus` (string)
    Indicates the transaction status.
Valid values are:
| Status | Description |
|  --- | --- |
| Approved | Payment passed checks. Funds will move. |
| Declined | Bank or card issuer rejected payment. |
| Failed | Payment attempt ended in error. |
| Pending | Payment is waiting for a result. |

Example: Approved
    Enum: "Pending", "Approved", "Declined", "Failed"

## Response 404:

  - `404` (unknown)
    Not Found

## Response 404 fields (application/json):

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

Example: Unauthorized
    Example: Unauthorized

  - `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 Response | 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.

This is a unique identifier, a trace identifier, Flute attaches to a request/response pair so a single transaction can be traced end-to-end across systems and logs. 

Its intent is to support troubleshooting.
We recommend including this value when contacting support.

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

  - `entityId` (string)
    Indicates the entity identifier.
This is a field on Flute's standard error response object, alongside values such as `correlationId`, `errorCode`, or `statusCode`.
It's the identifier of the specific resource the failed request was about.
Error messages may specify "Entity with ID b31fbe9f-eebb-45ce-9cae-92265389f47f does not exist or has been deleted."
When a 404 (or similar entity-specific error, like a conflict) comes back,
check `entityId` to get the exact identifier of the record that couldn't be found or matched.
This is useful for confirming which resource reference was wrong, especially if the request touched multiple identifiers at once.
Example: null

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

  - `title` (string)
    Indicates a short, human-readable summary of the error category.

Example: Resource not found
    Example: Resource not found

  - `cause` (string)
    Indicates the reason the error occurred.

Example: The requested resource does not exist or has been deleted.
    Example: The requested resource does not exist or has been deleted.

  - `resolution` (string)
    Indicates the recommended action for resolving the error.

Example: Verify the resource ID is correct or retrieve a list of available resources.
    Example: Verify the resource ID is correct or retrieve a list of available resources.

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

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

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

Example: Unauthorized
    Example: Unauthorized

  - `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 Response | 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.

This is a unique identifier, a trace identifier, Flute attaches to a request/response pair so a single transaction can be traced end-to-end across systems and logs. 

Its intent is to support troubleshooting.
We recommend including this value when contacting support.

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

  - `entityId` (string)
    Indicates the entity identifier.
This is a field on Flute's standard error response object, alongside values such as `correlationId`, `errorCode`, or `statusCode`.
It's the identifier of the specific resource the failed request was about.
Error messages may specify "Entity with ID b31fbe9f-eebb-45ce-9cae-92265389f47f does not exist or has been deleted."
When a 404 (or similar entity-specific error, like a conflict) comes back,
check `entityId` to get the exact identifier of the record that couldn't be found or matched.
This is useful for confirming which resource reference was wrong, especially if the request touched multiple identifiers at once.
Example: null

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

  - `title` (string)
    Indicates a short, human-readable summary of the error category.

Example: Resource not found
    Example: Resource not found

  - `cause` (string)
    Indicates the reason the error occurred.

Example: The requested resource does not exist or has been deleted.
    Example: The requested resource does not exist or has been deleted.

  - `resolution` (string)
    Indicates the recommended action for resolving the error.

Example: Verify the resource ID is correct or retrieve a list of available resources.
    Example: Verify the resource ID is correct or retrieve a list of available resources.

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

