Skip to content

Captures a transaction

Request

POST {{baseURL}}/v2/transactions/{{transactionId}}/capture

This endpoint captures a transaction.

This captures a previously authorized transaction and settling it for the specified amount. It is used when a transaction was created with captureMethod of Manual. This allows merchants to delay settlement until fulfillment is confirmed. The captureAmount can be less than or equal to the original authorized amount to support partial captures.

If successful, this returns the full transaction object reflecting the updated status. A processor declining the transaction returns a 402 error.

This endpoint is Idempotent. See the idempotency-key header entry. For more information, see Idempotency.

This endpoint requires a merchant API token. A partner API token will result in a permissions error including possibly a 403 response.

See Also:
To list transactions, see GET /v2/transactions.
To retrieve a transaction by ID, see GET /v2/transactions/{transactionId}.
To create a new transaction, see POST /v2/transactions.

Security
Bearer
Path
transactionIdstring, (uuid)required

Specifies the transaction identifier.

Example: 487471b7-0149-44ed-840b-97d920e06829

Example:487471b7-0149-44ed-840b-97d920e06829
Headers
idempotency-keystring, (uuid), <= 255 characters

Specifies the client-generated idempotency-key.

This key is optional. We recommend using the key to prevent multiple invocations of the operation. This key makes this request safely retryable, or idempotent. If the idempotency key is not included, the call will not have idempotency protection.

A retry with the same key, made within the retention window, returns the original response verbatim. The operation is not repeated. The retention window, also called the TTL (time to live) is 1440 minutes (24 hours) by default but this setting may be changed.

A retry with the same key while the original request is still processing returns 409 Conflict (IdempotencyKeyInProgress). Retry again after a short delay.

Reusing the same key with a different request body returns 422 Unprocessable Content (IdempotencyKeyConflict). Generate a new key for each distinct operation.

A 500 series server error is not stored against the key. A retry with the same key after a 500 series response processes the request again.

Example:6a1f7e2c-4b3d-4e5a-8f9c-1d2e3f4a5b6c
Bodyapplication/json

Specifies an object defining the transaction.

If the request body is null or omitted, a full capture is included.
If baseAmount is included, a partial capture is made.

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

Specifies the amount to capture (in USD).

If null or omitted, the full authorized amount is captured.
If an amount is specified, a partial amount is captured.

This value must both:

  • Be greater than zero
  • Not exceed the remaining authorized amount.

Examples:
null
129.99

Example:129.99
curl -i -X POST \
  https://sandbox.api.flute.com/v2/transactions/487471b7-0149-44ed-840b-97d920e06829/capture \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'idempotency-key: 6a1f7e2c-4b3d-4e5a-8f9c-1d2e3f4a5b6c' \
  -d '{
    "amount": 50
  }'

Responses

OK

Bodyapplication/json
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"
transactionDateTimestring, (date-time)

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"
transactionStatusstring

Indicates the aggregated transaction status.

Valid values are:

StatusDescription
AuthorizedPayment approved but funds not yet captured.
CancelledTransaction stopped before it completed.
CapturedApproved funds collected from the card.
ChargedBackCardholder disputed the charge with their bank.
ClearedFunds finished processing and settled.
DeclinedPayment rejected by the bank or processor.
FailedTransaction could not complete due to an error.
HeldTransaction paused and awaiting release.
HeldByProcessorProcessor paused the transaction for review.
InformationalRecord used for reference only, not a live charge.
InProgressTransaction is still processing.
PartiallyAuthorizedOnly part of the requested amount was approved.
PendingTransaction is waiting for a result.
RefundedFunds returned to the cardholder.
ScheduledTransaction set to run at a future time.
SettledFunds moved from issuer to the merchant account.
VerifiedCard or account confirmed as valid.
VoidedAuthorization canceled before capture.

Example: Authorized

Enum:"Authorized""Captured""Voided""Refunded""Verified""Settled""PartiallyAuthorized""Informational""Scheduled""Cancelled"
Example:"Authorized"
transactionTypestring

Identifies the type of the transaction.

Valid values are:

TypeExplanation
AchCancelCancels a pending ACH transaction.
AchCreditSends funds to a bank account.
AchDebitPulls funds from a bank account.
AchHoldHolds an ACH transaction temporarily.
AchRefundReturns funds from an ACH payment.
AchUnHoldReleases a held ACH transaction.
AuthorizationReserves funds for later capture.
CaptureCollects funds from an authorization.
CardAuthenticationConfirms cardholder identity before payment.
RefundReturns funds from a transaction.
RefundWORefRefunds a transaction without a reference.
SaleAuthorizes and captures funds together.
SettleSubmits a batch for final processing.
TipAdjustmentChanges the tip amount on a transaction.
VoidCancels a transaction before settlement.

Example: AchDebit

Enum:"AchCancel""AchCredit""AchDebit""AchHold""AchRefund""AchUnHold""Authorization""Capture""CardAuthentication""Refund"
Example:"AchDebit"
cardTokenTypestring

Indicates the type of the token.

Valid values are:

TypeMeaning
LocalTokenized and stored within Flute's own vault
NetworkTokenized through a card network, such as Visa or Mastercard, using their network tokenization services

Example: Local

Enum:"Local""Network"
Example:"Local"
paymentMethodTypestring

Identifies the payment method type.

Valid values are:

TypeDescription
ACHPayment made through an ACH bank transfer.
CardPayment made with a credit or debit card.
CashPayment made with physical currency.

Example: Card

Enum:"Card""ACH""Cash"
Example:"Card"
referenceIdstring or null, <= 36 characters

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"
originalTransactionIdstring or null, (uuid)

Indicates the original transaction identifier.

This value will be provided if the current transaction is a card refund.
Otherwise, it will be null or omitted.

Example: 4d5d19c0-7b8c-4d9e-0f1a-2b3c4d5e6f92

Example:"4d5d19c0-7b8c-4d9e-0f1a-2b3c4d5e6f92"
processedAmountnumber or null, (double), decimal places <= 2

Indicates the transaction amount (in USD).

The value will be null until the transaction is completed.

Examples:
87.39 (for $87.39)
null

Example:87.39
refundDetailsobject

Indicates an object detailing the refund posture for a transaction that can be refunded.

This value is null on transactions that are themselves refunds or credits. Those cannot be refunded again.

currencyCodestring or null, <= 3 characters

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

Example: USD

Default:"USD"
Value:"USD"
Example:"USD"
pricingTypestring or null

Identifies the type of pricing.

This value is required only when Dual Pricing is enabled.

Valid values are:

StatusExplanation
CardThe transaction uses the card price, which may include a surcharge.
CashThe transaction uses the cash price, which may include a cash discount.

Example: Card

Enum:"Card""Cash"
Example:"Card"
merchantIdstring, (uuid)

Identifies the merchant identifier.

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

Example:"5611f824-48ef-4255-978d-91ce13953bbd"
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"
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"
batchIdstring or null, (uuid)

Indicates the batch settlement identifier.

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

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

Indicates an object detailing the amount breakdown details.

taxDetailsobject or null

Identifies the tax charged on the transaction.

A checkout session or a payment link configures the tax. This object is null when the transaction carries no tax. It is also null when the only tax sent was a level 2 sales tax rate. A level 2 sales tax rate qualifies the transaction for interchange. The payer is not charged it.

This differs from the tax in the amount breakdown. The amount breakdown reports only a tax that raised the total. An Inclusive tax is already inside the base amount, so the amount breakdown reports it as 0.

cardDetailsobject or null

Indicates the card details exposed on transaction responses.

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

achDetailsobject or null

Indicates ACH account details exposed on transaction responses.

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

processorDetailsobject

Payment processor identifiers for a transaction.

declineDetailsobject

Indicates an object detailing a declined or failed transaction. This value is null when the transaction was approved or is pending.

addressVerificationServiceResponseobject

Indicates the AVS (address verification service) response for card payments.

transactionEventsArray of objects or null

Indicates an object detailing the chronological list of events that occurred for this transaction.

sourceobject

Indicates an object describing the origination of the transaction.

Response
{ "transactionId": "1db9c80e-1265-49b9-b2ef-fbf92acf5d42", "transactionStatus": "Approved", "processedAmount": 100, "currencyCode": "USD", "amountDetails": { "baseAmount": 100, "tipAmount": 0, "surchargeAmount": 0, "discountAmount": 0 }, "processorResponse": { "processorName": "TSYS", "responseCode": "00", "responseMessage": "Approved", "responseDefinition": "Approved and completed" }, "responseDetails": null, "addressVerificationServiceResponse": null, "receipt": null }