# Retrieves a transaction by ID

<span class="api-endpoint">GET {{<a href="#urlbases">baseURL</a>}}/pay-api/v1/transactions/{{transactionId}}</span>
This endpoint retrieves a specified transaction details.
<span class="api-seealso">See Also:</span><br>
To return a list of transactions, see `POST /pay-api/v1/transactions`

Endpoint: GET /pay-api/v1/transactions/{id}
Version: V1
Security: Bearer

## Path parameters:

  - `transactionId` (string, required)
    Specifies the transaction identifier.

## Response 200 fields (application/json):

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

Example: c7c15dd0-03e7-4e55-917c-54bedafba5e7
    Example: c7c15dd0-03e7-4e55-917c-54bedafba5e7

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

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

  - `amount` (object)
    Indicates an object detailing the amount.

  - `amount.baseAmount` (number)
    Identifies the original amount (in USD) of a transaction before adjustments are applied.

Example: 129.99
    Example: 129.99

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

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

  - `amount.cashDiscountAmount` (number)
    Identifies the discount amount (in USD) when a cash (or cash-equivalent) discount is applied.
This discount was calculated using the preset percentage from `cashDiscountRate`.
Example: 10.55
    Example: 10.55

  - `amount.cashDiscountRate` (number)
    Identifies the discount percentage for a cash (or cash-equivalent) discount.
This value is percentage rate for the discount.
This discount percentage calculates the discount amount for `cashDiscountAmount`.
Example: 1.5 (as 1.5%)
    Example: 1.5

  - `amount.surchargeAmount` (number)
    Identifies the amount (in USD) when a surcharge is applicable.
This is a surcharge on the base amount.
This surcharge was calculated using the preset percentage from `surchargeRate`.
Example: 6.45
    Example: 6.45

  - `amount.surchargeRate` (number)
    Identifies the surcharge percentage.
This is a surcharge on the base amount.
This value is surcharge percentage rate.
This surcharge percentage calculates the surcharge amount for `surchargeAmount`.
Example: 1.5 (as 1.5%)
    Example: 1.5

  - `amount.tipAmount` (number)
    Specifies the absolute amount (in USD) of the tip to be added.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first.

Values for `tipAmount` and `tipRate` are mutually exclusive.
Care must be taken to include one or the other but not both.
If neither value is provided, no tip is added.
Example: 14.50
    Example: 14.5

  - `amount.tipRate` (number)
    Specifies the tip rate as a percentage of the base amount to be added.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first.

Values for `tipAmount` and `tipRate` are mutually exclusive.
Care must be taken to include one or the other but not both.
If neither value is provided, no tip is added.
Example: 15 (as 15%)
    Example: 15

  - `amount.totalAmount` (number)
    Specifies the transaction's total amount. 

This includes the base amount, tips, taxes, shipping, discounts, and other charges.

Example: 3219.45
    Example: 3219.45

  - `currencyId` (integer)
    Indicates the Flute currency identifier.
Always set to *1*.
Example: 1
    Example: 1

  - `currency` (string)
    Indicates the currency code (in ISO 4217 currency code).

Example: USD
    Example: USD

  - `processorId` (string)
    Indicates the processor identifier.

Example: f019d5e6-7f8a-4b9c-0d1e-2f3a4b5c6d92
    Example: f019d5e6-7f8a-4b9c-0d1e-2f3a4b5c6d92

  - `processor` (string)
    Indicates the payment processor.
This is the system or company that handles the actual movement and authorization of payment transactions.
Examples:
TSYS
Fiserv
    Example: TSYS

  - `operationTypeId` (integer)
    Indicates the operation type value.
Possible values:
| Id | Operation Type |
|  --- | --- |
| 1 | PayNow |
| 2 | Subscription |

example: 1
    Example: 1

  - `operationType` (string)
    Indicates the operation type.
Possible values:
| Operation Type | Id |
|  --- | --- |
| PayNow | 1 |
| Subscription | 2 |

Example: PayNow
    Example: PayNow

  - `paymentMethodTypeId` (integer)
    Indicates the payment method type identifier.
Value values:
| Id | Name |
|  --- | --- |
| 1 | Card (for credit card) |
| 2 | ElectronicCheck |

Example: 2
    Example: 2

  - `paymentMethodType` (string)
    Indicates the payment method type name.
Value values:
| Name | Id | Notes |
|  --- | --- | --- |
| Card | 1 | For credit or debit card |
| ElectronicCheck | 2 |  |

Example: Card
    Example: Card

  - `transactionTypeId` (integer)
    Indicates the transaction type identifier.
Possible values:
| Type | Value |
|  --- | --- |
| Authorization | 1 |
| Sale | 2 |
| Capture | 3 |
| Void | 4 |
| Refund | 5 |
| Verify | 6 |

Example: 5
    Example: 5

  - `transactionType` (string)
    Indicates the transaction type name.
Possible values:
| Value | Type |
|  --- | --- |
| Authorization | 1 |
| Sale | 2 |
| Capture | 3 |
| Void | 4 |
| Refund | 5 |
| Verify | 6 |

Example: Refund
    Example: Refund

  - `customerId` (string)
    Indicates the customer identifier.
This is used when saving the payment method.
If this value is provided, the payment method is saved to the specified customer.
If this value is not provided, a new customer record is created.
Example: fd9198a4-eb6f-4620-9603-4f4638289de5
    Example: fd9198a4-eb6f-4620-9603-4f4638289de5

  - `customerPan` (string)
    Indicates customer’s PAN (primary account number).
This is the payment card number.
The value is masked except for a few numbers for additional security.
Example: ************3655
    Example: ************3655

  - `cardTokenType` (integer)
    Identifies the card token type.
Possible values:
| Id | Type | Description |
|  --- | --- | --- |
| 1 | Local | Regular |
| 2 | Network | Network |

Example: 2
    Example: 2

  - `statusId` (integer)

  - `status` (string)

  - `merchantName` (string)

  - `merchantAddress` (string)

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

  - `merchantEmailAddress` (string)

  - `merchantWebsite` (string)

  - `authCode` (string)

  - `source` (object)

  - `source.typeId` (integer)

  - `source.type` (string)

  - `source.id` (string)

  - `source.name` (string)

  - `cardholderAuthenticationMethodId` (integer)
    Possible values:
| Value | Name |
|  --- | --- |
| 0 | NotAuthenticated |
| 1 | PIN |
| 2 | ElectronicSignatureAnalysis |
| 3 | ManualSignature |
| 4 | ManualOther |
| 5 | Unknown |
| 6 | SystematicOther |
| 7 | ETicketEnvAmex |
| 8 | OfflinePin |

Example: 0
    Example: 0

  - `cardholderAuthenticationMethod` (string)

  - `cvmResultMsg` (string)

  - `cardDataSourceId` (integer)
    Specifies the card data source.
Possible values:
| Value | Name | Description |
|  --- | --- | --- |
| 1 | Internet | Virtual Terminal, ISV API |
| 2 | Swipe | Track1, Track2 |
| 3 | NFC | EMV Tags, Track2 |
| 4 | EMV | EMV Tags |
| 5 | EMVContactless | EMV Tags |
| 6 | FallbackSwipe | Track 2 |
| 7 | Manual | Card present keyed transaction |

Example: 2
    Example: 2

  - `cardDataSource` (string)

  - `responseCode` (string)

  - `responseDescription` (string)

  - `cardProcessingDetails` (object)

  - `cardProcessingDetails.authCode` (string)

  - `cardProcessingDetails.mid` (string)
    Indicates the MID (merchant identifier) assigned to this transaction.

Example: 43252511
    Example: 43252511

  - `cardProcessingDetails.tid` (string)
    Indicates the TID (terminal identifier) assigned to this transaction.

Example: 8820432549239101
    Example: 8820432549239101

  - `cardProcessingDetails.cardCreditDebitTypeId` (integer)

  - `cardProcessingDetails.cardCreditDebitType` (string)

  - `cardProcessingDetails.processCreditDebitTypeId` (integer)

  - `cardProcessingDetails.processCreditDebitType` (string)

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

This is a transaction tracking identifier used to specify and trace a transaction across systems.

Example: 10628361287F
    Example: 10628361287F

  - `cardProcessingDetails.cardTypeId` (integer)

  - `cardProcessingDetails.cardType` (string)

  - `achProcessingDetails` (object)

  - `achProcessingDetails.customerAccountNumber` (string)

  - `achProcessingDetails.customerRoutingNumber` (string)

  - `achProcessingDetails.accountHolderType` (string)

  - `achProcessingDetails.accountHolderTypeId` (integer)

  - `achProcessingDetails.accountType` (string)

  - `achProcessingDetails.accountTypeId` (integer)

  - `achProcessingDetails.taxId` (string)
    Specifies the customer's TIN (tax identifier number).

Example: 98-7654321
    Example: 98-7654321

  - `availableOperations` (array)

  - `availableOperations.typeId` (integer)
    Possible values:
| Id | Type | Description |
|  --- | --- | --- |
| 1 | Authorization |  |
| 2 | Sale |  |
| 3 | Capture |  |
| 4 | Void |  |
| 5 | Refund |  |
| 6 | CardAuthentication |  |
| 7 | RefundWORef | Refund without reference.As a warning, these are considered high-risk transaction types, as funds are debited directly from the merchant's account even if the original sale was not processed through Flute. |
| 8 | TipAdjustment |  |
| 11 | AchDebit |  |
| 12 | AchRefund |  |
| 13 | AchHold |  |
| 14 | AchUnHold |  |
| 15 | AchCancel |  |
| 16 | AchCredit |  |

  - `availableOperations.type` (string)

  - `availableOperations.availableAmount` (number)

  - `availableOperations.suggestedTips` (array)

  - `availableOperations.suggestedTips.tipAmount` (number)
    Specifies the absolute amount (in USD) of the tip to be added.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first.

Values for `tipAmount` and `tipRate` are mutually exclusive.
Care must be taken to include one or the other but not both.
Example: 14.50
    Example: 14.5

  - `availableOperations.suggestedTips.tipPercent` (number)
    Specifies the tip rate as a percentage of the base amount to be added.
This amount adds to the base amount of the original transaction.
That transaction must be authorized first.

Values for `tipAmount` and `tipRate` are mutually exclusive.
Care must be taken to include one or the other but not both.
Example: 15 (as 15%)
    Example: 15

  - `avsResponse` (object)
    Address Verification Service Response

  - `avsResponse.actionId` (integer)
    Possible values:
| Value | Name |
|  --- | --- |
| 1 | Allow |
| 2 | Deny |

Example: 1
    Example: 1

  - `avsResponse.action` (string)
    AVS Action

  - `avsResponse.responseCode` (string)
    AVS Response Code

  - `avsResponse.groupId` (integer)
    Possible values:
| Value | Name |
|  --- | --- |
| 1 | NoMatch |
| 2 | PartialMatch |
| 3 | Incompatible |
| 4 | Unavailable |
| 5 | ValidGroup |

Example: 5
    Example: 5

  - `avsResponse.group` (string)
    AVS Code Group

  - `avsResponse.resultId` (integer)
    Possible values:
| Value | Name |
|  --- | --- |
| 1 | Passed |
| 2 | Failed |

Example: 1
    Example: 1

  - `avsResponse.result` (string)
    AVS Response Result. Passed - all address data is correct. Failed - some address data is incorrect.

  - `avsResponse.codeDescription` (string)
    AVS Response Code Description

  - `emvTags` (object)

  - `emvTags.ac` (string)

  - `emvTags.tvr` (string)

  - `emvTags.tsi` (string)

  - `emvTags.aid` (string)

  - `emvTags.applicationLabel` (string)

  - `emvTags.rawTags` (array)

  - `emvTags.rawTags.key` (string)

  - `emvTags.rawTags.value` (string)

  - `orderNumber` (string)

  - `baseAmount` (number)
    Identifies the original amount (in USD) of a transaction before adjustments are applied.

Deprecated. Use Amount.BaseAmount

Example: 129.99
    Example: 129.99

  - `totalAmount` (number)
    Deprecated. Use Amount.TotalAmount

  - `tsysCardDetails` (object)

  - `tsysCardDetails.authCode` (string)

  - `tsysCardDetails.mid` (string)
    Indicates the MID (merchant identifier) assigned to this transaction.

Example: 43252511
    Example: 43252511

  - `tsysCardDetails.tid` (string)
    Indicates the TID (terminal identifier) assigned to this transaction.

Example: 8820432549239101
    Example: 8820432549239101

  - `achDetails` (object)

  - `achDetails.customerAccountNumber` (string)

  - `achDetails.customerRoutingNumber` (string)

  - `achDetails.accountHolderType` (string)

  - `achDetails.accountHolderTypeId` (integer)

  - `achDetails.accountType` (string)

  - `achDetails.accountTypeId` (integer)

  - `achDetails.taxId` (string)
    Indicates the customer's TIN (tax identifier number).

Example: 98-7654321
    Example: 98-7654321

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

## Response 404 fields (application/json):

  - `details` (string)

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

  - `exceptionType` (string)

  - `correlationId` (string)

  - `entityId` (string)

  - `errorCode` (string)

## Response 500 fields (application/json):

  - `details` (string)

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

  - `exceptionType` (string)

  - `correlationId` (string)

  - `entityId` (string)

  - `errorCode` (string)

