A Capture transaction is a type of transaction which captures an existing, previously approved Authorization, and settles the transaction for funding.

As a type of follow-up transaction, there are fewer required fields for a Capture transaction request. At minimum, the only required fields are the type property being set to the value capture, and the transactionId property being set to the ID of the previously approved Auth transaction you wish to capture.

๐Ÿ“„ Notes regarding Capture transactions:

  • A Capture request must be performed against a previously approved Auth transaction.
  • A Capture transaction can be processed for a different amount from than the original Auth transaction authorized amount, and may have additional transaction details that override the original Authorization.
  • Capturing an Auth for an amount above the originally authorized amount is only permitted for scenarios where tipping is enabled and is still processed as a "partial capture" (e.g. restaurants).

Partial Capture

In the event that only part of an auth transaction should be captured, a partial capture should be performed. Specifying an amount less than the original sale transaction as part of your capture request will enure only that amount is captured.

๐Ÿšง

Follow-On Captures

Certain Connections allow for multiple partial captures, up to the limit of the remaining authorization balance.

However, other processors do not permit subsequent captures on a single authorization. In these cases, each additional transaction will require a new authorization to be submitted before capture.

API Request Example

A Capture transaction can be created by calling our POST /v1/transactions API endpoint and providing capture as the value of the type property. For Partial Captures, also include amountand number value as part of your request.

Below are standard Capture and Partial Capture transaction example with the minimum required request fields, for a previously approved Auth transaction which had the id of h1rn8c9nd81y9bkgzax2k2rax.

{
    "type": "capture",
    "transactionId": "txn_h1rn8c9nd81y9bkgzax2k2rax"
}
{
    "amount": 125,
    "authorization": {
        "approvedAmount": 125,
        "processorCode": "payment_intent",
        "processorMessage": "succeeded",
        "processorTransactionId": "pi_3MeLvLAzKBz0Hugp0rXImKdc",
        "status": "A"
    },
    "createdOn": "2023-02-22T17:38:16Z",
    "currency": "USD",
    "id": "txn_6v59stftbs837axmpahj21m8jf",
    "merchantId": "mid_2zyd88xrnr90xskmjmqpd0x1vj",
    "message": "Capture Succeeded",
    "originalTransactionId": "txn_h1rn8c9nd81y9bkgzax2k2rax",
    "payment": {
        "bin": "432100",
        "brand": "VISA",
        "last4": "0012",
        "type": "CREDIT"
    },
    "plan": {
        "id": "plan_57jaev7pna8nftrkr6xksaastw",
        "name": "Stripe Only Plan"
    },
    "platformId": "pfm_7aj2pxrrcg8zs8x6cxyyrwmyqe",
    "processor": {
        "id": "midCon_6v59stftbs837axmpahj21m8jf",
        "name": "Stripe"
    },
    "type": "capture"
}
{
    "type": "capture",
  	"amount": 50,
    "transactionId": "txn_h1rn8c9nd81y9bkgzax2k2rax"
}
{
    "amount": 50,
    "approvedAmount": 50,
    "authorization": {
        "approvedAmount": 50,
        "processorCode": "payment_intent",
        "processorMessage": "succeeded",
        "processorTransactionId": "pi_3MeLvLAzKBz0Hugp0rXImKdc",
        "status": "A"
    },
    "createdOn": "2023-02-22T17:38:16Z",
    "currency": "USD",
    "id": "txn_6v59stftbs837axmpahj21m8jf",
    "merchantId": "mid_2zyd88xrnr90xskmjmqpd0x1vj",
    "message": "Capture Succeeded",
    "originalTransactionId": "txn_h1rn8c9nd81y9bkgzax2k2rax",
    "payment": {
        "bin": "432100",
        "brand": "VISA",
        "last4": "0012",
        "type": "CREDIT"
    },
    "plan": {
        "id": "plan_57jaev7pna8nftrkr6xksaastw",
        "name": "Stripe Only Plan"
    },
    "platformId": "pfm_7aj2pxrrcg8zs8x6cxyyrwmyqe",
    "processor": {
        "id": "midCon_6v59stftbs837axmpahj21m8jf",
        "name": "Stripe"
    },
    "type": "capture"
}