# Retrieves a POS transaction by ID

<span class="api-endpoint">GET {{<a href="#urlbases">baseURL</a>}}/pos-api/v1/pos-transactions/{{posTransactionsid}}</span>
Gets POS transaction by ID

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

## Path parameters:

  - `posTransactionsid` (string, required)
    Indicates the POS transaction identifier.

## Query parameters:

  - `waitForTransactionProcessing` (boolean)
    <br>Specifies the transaction to wait for a transition to one of completed statuses or a timeout. 

If `true`, transaction is to wait for a transition.<br>
If `false`, transaction is not to wait for a transition.

Example: true

## Response 200 fields (application/json):

  - `id` (string)
    Indicates the POS transaction identifier.

Example: 102ae6f7-8a9b-4c0d-1e2f-3a4b5c6d7
    Example: 102ae6f7-8a9b-4c0d-1e2f-3a4b5c6d7

  - `createdOn` (string)
    Indicates the date-time (in an ISO 8601 date-time UTC format) when the POS transaction was created.

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

  - `modifiedOn` (string)
    Indicates the date-time (in an ISO 8601 date-time UTC format) of the last POS transaction modification.

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

  - `merchantId` (string)
    Indicates the identifier of the merchant.

Example: 46063d32-10fa-44cb-b118-20ddd085ce3f
    Example: 46063d32-10fa-44cb-b118-20ddd085ce3f

  - `customerId` (string)
    Specifies 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

  - `terminalId` (string)
    ID of terminal should handle POS Transaction

  - `paymentProcessorId` (string)
    Predefined PaymentProcessorID

  - `posDeviceId` (string)
    External POS Device ID

  - `referenceId` (string)
    External Reference Device ID

  - `posTransactionStatusId` (integer)
    Indicates the value of the status identifier.
Possible values:
| Value | Name |
|  --- | --- |
| 1 | TerminalConnecting |
| 2 | TransactionProcessing |
| 3 | DeclinedByProcessor |
| 4 | CancelByPos |
| 5 | CancelByTerminal |
| 6 | Completed |
| 7 | Error |
| 8 | Inconsistency |
| 9 | TerminalOffline |
| 10 | TransactionSentToProcessor |

Example: 2
    Example: 2

  - `posTransactionStatus` (string)
    Indicates the status identifier.
Possible values:
| Name | Value |
|  --- | --- |
| TerminalConnecting | 1 |
| TransactionProcessing | 2 |
| DeclinedByProcessor | 3 |
| CancelByPos | 4 |
| CancelByTerminal | 5 |
| Completed | 6 |
| Error | 7 |
| Inconsistency | 8 |
| TerminalOffline | 9 |
| TransactionSentToProcessor | 10 |

Example: TransactionProcessing
    Example: TransactionProcessing

  - `transactionId` (string)
    ID of attached transaction. Available after processing.

  - `amount` (number)
    Transaction amount for transaction types requires Amount.

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

  - `targetTransactionId` (string)
    Transaction Id for Void, Capture, Refund.

  - `transactionTypeId` (integer)
    Set the transaction type to be processed by the terminal.
Possible values:
| Id | Type | Remarks |
|  --- | --- | --- |
| 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 |  |
| 10 | Settle |  |

Example: 10
    Example: 10

  - `transactionType` (string)
    Specifies transaction type being processed by the terminal.
Possible values:
| Id | Type |
|  --- | --- |
| 1 | Authorization |
| 2 | Sale |
| 3 | Capture |
| 4 | Void |
| 5 | Refund |

Example: 1
    Example: 1

  - `isCompleted` (boolean)
    Indicates the POS transaction completion status.
If `true`, the transaction is complete.
If `false`, the transaction is being processed.
The POS transaction status can still be changed.
Example: true
    Example: true

  - `transaction` (object)

  - `transaction.transactionId` (string)
    Transaction ID

  - `transaction.amount` (number)
    Transaction amount

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

  - `transaction.transactionStatusId` (integer)
    Indicates the transaction status identifier.
Possible values:
| Value | Status |
|  --- | --- |
| 1 | Authorized |
| 2 | Captured |
| 3 | Voided |
| 4 | Refunded |
| 5 | Verified |
| 6 | Settled |
| 7 | PartiallyAuthorized |
| 90 | Pending |
| 91 | Declined |
| 92 | Failed |

Example: 6
    Example: 6

  - `transaction.transactionStatus` (string)
    Indicates the transaction status.
Possible values:
| Value | Status |
|  --- | --- |
| Authorized | 1 |
| Captured | 2 |
| Voided | 3 |
| Refunded | 4 |
| Verified | 5 |
| Settled | 6 |
| PartiallyAuthorized | 7 |
| Pending | 90 |
| Declined | 91 |
| Failed | 92 |

Example: Settled
    Example: Settled

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

Example: 5
    Example: 5

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

  - `transaction.authCode` (string)
    Indicates the authorization code received for the transaction.

Example: VTLMC1
    Example: VTLMC1

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

Example: 43252511
    Example: 43252511

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

Example: 8820432549239101
    Example: 8820432549239101

  - `transactionReceipt` (object)
    Indicates an object describing the transaction receipt.
The transaction receipt will be null or empty before the transaction is completed.
After the completed transaction, it be filled out.

  - `transactionReceipt.transactionId` (string)
    Identifies the transaction identifier.

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

  - `transactionReceipt.transactionDateTime` (string)
    Identifies the date-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

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

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

Example: 129.99
    Example: 129.99

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

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

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

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

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

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

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

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

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

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

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

Example: USD
    Example: USD

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

Example: ef08c4d5-6e7f-4a8b-9c0d-1e2f3a4b5c81
    Example: ef08c4d5-6e7f-4a8b-9c0d-1e2f3a4b5c81

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

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

example: 1
    Example: 1

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

Example: PayNow
    Example: PayNow

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

Example: 2
    Example: 2

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

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

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

  - `transactionReceipt.customerId` (string)
    Specifies 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

  - `transactionReceipt.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: ************4512
    Example: ************4512

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

Example: 2
    Example: 2

  - `transactionReceipt.statusId` (integer)

  - `transactionReceipt.status` (string)

  - `transactionReceipt.merchantName` (string)

  - `transactionReceipt.merchantAddress` (string)

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

  - `transactionReceipt.merchantEmailAddress` (string)

  - `transactionReceipt.merchantWebsite` (string)

  - `transactionReceipt.authCode` (string)

  - `transactionReceipt.source` (object)

  - `transactionReceipt.source.typeId` (integer)

  - `transactionReceipt.source.type` (string)

  - `transactionReceipt.source.id` (string)

  - `transactionReceipt.source.name` (string)

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

  - `transactionReceipt.cardholderAuthenticationMethod` (string)

  - `transactionReceipt.cvmResultMsg` (string)

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

  - `transactionReceipt.cardDataSource` (string)

  - `transactionReceipt.responseCode` (string)

  - `transactionReceipt.responseDescription` (string)

  - `transactionReceipt.cardProcessingDetails` (object)

  - `transactionReceipt.cardProcessingDetails.authCode` (string)

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

Example: 43252511
    Example: 43252511

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

Example: 8820432549239101
    Example: 8820432549239101

  - `transactionReceipt.cardProcessingDetails.cardCreditDebitTypeId` (integer)

  - `transactionReceipt.cardProcessingDetails.cardCreditDebitType` (string)

  - `transactionReceipt.cardProcessingDetails.processCreditDebitTypeId` (integer)

  - `transactionReceipt.cardProcessingDetails.processCreditDebitType` (string)

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

  - `transactionReceipt.cardProcessingDetails.cardTypeId` (integer)

  - `transactionReceipt.cardProcessingDetails.cardType` (string)

  - `transactionReceipt.achProcessingDetails` (object)

  - `transactionReceipt.achProcessingDetails.customerAccountNumber` (string)

  - `transactionReceipt.achProcessingDetails.customerRoutingNumber` (string)

  - `transactionReceipt.achProcessingDetails.accountHolderType` (string)

  - `transactionReceipt.achProcessingDetails.accountHolderTypeId` (integer)

  - `transactionReceipt.achProcessingDetails.accountType` (string)

  - `transactionReceipt.achProcessingDetails.accountTypeId` (integer)

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

Example: 98-7654321
    Example: 98-7654321

  - `transactionReceipt.availableOperations` (array)

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

  - `transactionReceipt.availableOperations.type` (string)

  - `transactionReceipt.availableOperations.availableAmount` (number)

  - `transactionReceipt.availableOperations.suggestedTips` (array)

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

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

  - `transactionReceipt.avsResponse` (object)
    Address Verification Service Response

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

Example: 1
    Example: 1

  - `transactionReceipt.avsResponse.action` (string)
    AVS Action

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

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

Example: 5
    Example: 5

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

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

Example: 1
    Example: 1

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

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

  - `transactionReceipt.emvTags` (object)

  - `transactionReceipt.emvTags.ac` (string)

  - `transactionReceipt.emvTags.tvr` (string)

  - `transactionReceipt.emvTags.tsi` (string)

  - `transactionReceipt.emvTags.aid` (string)

  - `transactionReceipt.emvTags.applicationLabel` (string)

  - `transactionReceipt.emvTags.rawTags` (array)

  - `transactionReceipt.emvTags.rawTags.key` (string)

  - `transactionReceipt.emvTags.rawTags.value` (string)

  - `transactionReceipt.orderNumber` (string)

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

