---
title: "Capture a pre-authorised transaction"
method: POST
path: "/v1/transactions/{id}/capture"
tags: ["Captures"]
---

# Capture a pre-authorised transaction

`POST /v1/transactions/{id}/capture`

## Request

- Base URL: `https://docs.teya.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.teya.com/v1/transactions/{id}/capture`
- Auth: OAuth 2
  - Authorization code: `https://id.teya.com/oauth/v2/oauth-authorize`
  - Client credentials
  - Token URL: `https://id.teya.com/oauth/v2/oauth-token`
- TypeScript: <https://skmtc.dev/teya/apis/teya-apis-for-external-plugins/docs/v1/transactions/:id/capture/post.ts> (a function with typed inputs; its response is checked against the schema)

API to capture a previously pre-authorised transaction.
<br><br><strong>Usage notes:</strong>
<ul>
<li>The capture amount must be less than or equal to the original authorisation amount.</li>
<li>Only one capture is allowed per pre-authorised transaction. Once captured (fully or partially), the transaction cannot be captured again.</li>
</ul>
<br><strong>Access Token Required scope:</strong> captures/create

## Path parameters

- `id` string, required: The transaction ID of the pre-authorisation to capture

## Headers

- `Idempotency-Key` string: A unique key to identify the request. If the request is repeated with the same key, the same response will be returned. If the request is repeated with a different key or without a key, a new capture will be created.
- `User-Agent` string, required

## Request body

- CaptureRequest: A request to capture a pre-authorised transaction
  - `amount` integer, required: A positive integer representing the amount to capture in the smallest currency unit (e.g., 100 cents to charge $1). Must be less than or equal to the original authorisation amount.

## Response `201`

Capture processed

- CaptureResponse: A response to a capture request
  - `transaction_id` string, required: Unique identifier of the capture created
  - `card_acceptor_id` string, required: `mid` or `card_acceptor_id` (ISO 8583 field standard). Used to uniquely identify the merchant in the transaction.
  - `status` 'SUCCESS' | 'FAILURE' | 'PENDING', required: The status of the capture
  - `status_reason` 'ACCOUNT_INVALID' | 'CANNOT_VALIDATE_AUTHENTICATION' | 'CARD_COUNT_EXCEEDED' | 'CARD_DECLINED' | 'CARD_EXPIRED' | 'CARD_LIMIT_EXCEEDED' | 'CARD_NOT_ACTIVE' | 'DISABLED_ACCOUNT' | 'DO_NOT_HONOR' | 'ECOM_NEGATIVE_CARD_AUTHENTICATION_VERIFICATION' | 'EXCEEDS_AMOUNT_LIMIT' | 'FORMAT_ERROR' | 'INCORRECT_CARD_AUTHENTICATION' | 'INSUFFICIENT_FUNDS' | 'INVALID_CARD_NUMBER' | 'INVALID_TRANSACTION' | 'ISSUER_DECLINED' | 'LOST_OR_STOLEN' | 'MERCHANT_CONFIGURATION' | 'PIN_LIMIT_EXCEEDED' | 'PROCESSOR_UNAVAILABLE' | 'RESTRICTED_CARD' | 'SCA_PIN_REQUIRED' | 'SCA_REQUIRED' | 'SUSPECTED_FRAUD' | 'TEMPORARY_ISSUE_RETRY' | 'TIMEOUT' | 'TRANSACTION_NOT_ALLOWED' | 'UNABLE_TO_ROUTE_TRANSACTION' | 'UNSUPPORTED_ISSUER' | 'NEGATIVE_BALANCE_LIMIT' | 'OTHER': Reason for `FAILURE` status
  - `issuer_result` PaymentsGatewayServiceCaptureIssuerResult
    - `approval_code` string: Identifier of the authorisation returned by the issuer. When the transaction is not authorised, this field is empty
    - `response_code` string: Response code returned by the issuer, indicating the result of the operation
  - `processed_at` string, date-time: The date and time the capture was processed (in ISO 8601 with time-zone).

## Other responses

- `202`: Capture processing
- `400`: Bad Request
- `401`: Unauthorised
- `403`: Forbidden
- `404`: Transaction not found
- `409`: Conflict
- `500`: Internal Server Error

---

[API](https://skmtc.dev/teya/apis/teya-apis-for-external-plugins.md) - [All operations](https://skmtc.dev/teya/apis/teya-apis-for-external-plugins/llms.txt) - [OpenAPI document](https://skmtc.dev/teya/apis/teya-apis-for-external-plugins/revisions/e26c4d895fa7?raw)
