Skip to content

Cancels a POS transaction by ID

Request

POST {{baseURL}}/v2/pos/transactions/{{posTransactionId}}/cancel

This endpoint cancels a POS transaction by ID.

This sends a cancellation signal to the gateway to abort an in-progress POS transaction.

It can only be called while the transaction is in a cancellable state. This is typically before the customer has presented their card on the terminal.

A cancellation request is not guaranteed if the terminal has already begun processing the payment. In that case the posTransactionStatus reflects the actual terminal outcome.

See Also:
To list POS transactions, see GET /v2/pos/transactions.
To retrieve a POS transaction by ID, see GET /v2/pos/transactions/{posTransactionId}.
To create a POS transaction reversal, see POST /v2/pos/transactions/reversal.
To print a receipt for a POS transaction, see POST /v2/pos/transactions/{posTransactionId}/print-receipt.

Security
Bearer
Path
posTransactionIdstring, (uuid)required

Specifies the POS transaction identifier to cancel.

Example:bc037464-05f0-4cc6-b1d9-66d44636a1a1
curl -i -X POST \
  https://sandbox.api.flute.com/v2/pos/transactions/bc037464-05f0-4cc6-b1d9-66d44636a1a1/cancel \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

OK

Bodyapplication/json
posTransactionIdstring, (uuid)

Indicates the POS transaction identifier.

Example: f77b4b4d-2f35-4cd2-8631-31318a4713a1

Example:"f77b4b4d-2f35-4cd2-8631-31318a4713a1"
posTransactionStatusstring

Indicates the status of the transaction.

Valid values are:

ValueDescription
CancelledThe POS transaction was canceled before it completed.
CompletedThe POS transaction finished processing successfully.
FailedThe POS transaction did not complete because of an error.
InProgressThe POS transaction is still being processed.

Example: Completed

Enum:"Cancelled""Completed""Failed""InProgress"
Example:"Completed"
createdOnstring, (date-time)

Indicates the date-time (in an ISO 8601 UTC date-time format) the POS transaction was created on.

Example: 2026-01-15T10:30:56.264Z

Example:"2026-01-15T10:30:56.264Z"
modifiedOnstring, (date-time)

Indicates the date-time (in an ISO 8601 UTC date-time format) when the POS transaction was last updated.

Example: 2026-03-16T16:32:58.743Z

Example:"2026-03-16T16:32:58.743Z"
merchantIdstring, (uuid)

Identifies the merchant identifier.

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

Example:"5611f824-48ef-4255-978d-91ce13953bbd"
customerIdstring or null, (uuid)

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"
terminalIdstring, (uuid)

Indicates the terminal identifier that handles the transaction.

The terminal must be in semi-integrated mode and available (online and ready). A semi-integrated terminal is one that is connected to a POS system, typically through a network or cable.

Example: 0dfac966-9dbd-4608-a65f-d6a4c961dd35

Example:"0dfac966-9dbd-4608-a65f-d6a4c961dd35"
paymentProcessorIdstring or null, (uuid)

Identifies the payment processor.

Defaults to merchant's default processor.

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

Example:"76215e54-a85b-4d42-9553-163fe393cb02"
posDeviceIdstring or null, [ 1 .. 36 ] characters

Indicates the external POS terminal identifier.

Example: POS-DEVICE-001

Example:"POS-DEVICE-001"
referenceIdstring or null

External Reference ID

Example:"REF-EXT-12345"
captureMethodstring

Identifies the capture method.

Capture is the step that converts an authorization, funds reserved before a transaction, into an actual charge or funds captured for settlement.

Possible values:

ValueDescription
AutoThe transaction is captured automatically at the same time as authorization or immediately after, with no separate action required.
ManualThe transaction has been authorized. However, an explicit capture request must be made later to actually allocate the money.

Care must be taken because if the transaction is never captured, the authorization simply expires and no funds move.

Example: Auto

Default:"Auto"
Enum:"Auto""Manual"
Example:"Auto"
transactionIdstring or null, (uuid)

Indicates the attached transaction identifier.

This value is available after processing.

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

Example:"f01339ec-8184-48c7-b58d-0780d6499ef4"
baseAmountnumber or null, (double), decimal places <= 2, >= 0.01

Identifies the base transaction amount (in USD) before adjustments.

Examples:
125
125.5
125.50

Example:125.5
currencyCodestring or null

Identifies the transaction's currency code (in uppercase ISO 4217 currency code).

Example: USD

Default:"USD"
Example:"USD"
extraAmountsobject or null

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.

processedAmountnumber or null, (double), decimal places <= 2

Indicates the transaction amount (in USD).

The value will be null until the transaction is completed.

Example: 87.39

Example:87.39
linkedTransactionobject

Indicates an object detailing the related POS transaction.

This value will be null until the transaction is completed.

Response
{ "posTransactionId": "2eca4f2c-0cc2-4355-aa0b-a3e65368591d", "status": "TransactionProcessing" }