Top-level input fields for capturing an authorized transaction.
transaction IdID!RequiredID of the transaction to be captured.
An identifier to detect duplicate operations and prevent double-processing. This can be used to protect from submitting a duplicate request; for instance, after receiving an INTERNAL error where the ultimate state of the request is uncertain.
If a request is made with a new apiRequestKey, it will be processed as normal. If subsequent requests are made with the same apiRequestKey, and the first request resulted in a transaction being created (in any status), then the same transaction in its current status will be returned.
Subsequent requests with the same apiRequestKey must have the same input values as the original request. Subsequent requests with the same apiRequestKey must also be made after the initial request completes, and before 30 days has elapsed since the initial request finished. If a subsequent request is made while the first is in-flight or with different input values than the original request, it will result in a VALIDATION error on the subsequent request. If an apiRequestKey is reused after 30 days since its first use, it will be treated as if it has not been used before.
If an initial request is made with an apiRequestKey, but the request receives a AUTHENTICATION, AUTHORIZATION, NOT_FOUND, RESOURCE_LIMIT, or NOT_IMPLEMENTED error, and no transaction is created, then no duplication will be considered. Subsequent requests with the same apiRequestKey will be treated as non-duplicate requests, just as if they were the first request with that value.
transactionCaptureInput fields for the capture, with details that will define the resulting transaction.
amountAmountDeprecatedsince 2019-07-29This field is included for supporting legacy clients. Please use transaction.amount instead.
The amount to capture on the transaction. Must be greater than 0. You can't capture more than the authorized amount unless your industry and processor support settlement adjustment (capturing a certain percentage over the authorized amount); contact us for assistance. If you capture an amount that is less than what was authorized, the transaction object will return the amount captured.
input CaptureTransactionInput {
clientMutationId: String
apiRequestKey: String
transactionId: ID!
amount: Amount @deprecated(reason: "This field is included for supporting legacy clients. Please use `transaction.amount` instead.")
transaction: CaptureTransactionOptionsInput
}