***

title: Capture the pre-authorization
icon: calendar-exclamation
intro: Capture the pre-authorization
published: true
---------------------

For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.payroc.com/essentials-guides/hosted-payment-page/extend-your-solution/run-a-pre-authorization/llms.txt. For full documentation content, see https://docs.payroc.com/essentials-guides/hosted-payment-page/extend-your-solution/run-a-pre-authorization/llms-full.txt.

If your merchant doesn't capture a pre-authorization, it expires and the issuing bank releases the hold on the customer's card.

To capture the pre-authorization, you must use our API.

## Before you begin

### Bearer tokens

Use our Identity Service to generate a Bearer token to include in the header of your requests. To generate your Bearer token, complete the following steps:

1. Include your API key in the x-api-key parameter in the header of a POST request.
2. Send your request to [https://identity.payroc.com/authorize](https://identity.payroc.com/authorize).

<Note>
  **Note:** You need to generate a new Bearer token before the previous Bearer token expires.
</Note>

**Example request**

```bash
curl --location --request POST 'https://identity.payroc.com/authorize' --header 'x-api-key: <api key>'
```

**Example response**\
If your request is successful, we return a response that contains your Bearer token, information about its scope, and when it expires.

```json
{
  "access_token": "eyJhbGc....adQssw5c",
  "expires_in": 3600,
  "scope": "service_a service_b",
  "token_type": "Bearer"
}
```

### Headers

To create the header of each POST request, you must include the following parameters:

* **Content-Type:** Include application/json as the value for this parameter.
* **Authorization:** Include your Bearer token in this parameter.
* **Idempotency-Key:** Include a UUID v4 to make the request idempotent.

```bash
curl
-H "Content-Type: application/json"
-H "Authorization: <Bearer token>"
-H "Idempotency-Key: <UUID v4>"
```

### Errors

If your request is unsuccessful, we return an error. For more information about errors, see [Errors](/api/errors).

## Send a POST request to capture the pre-authorization

To capture the pre-authorization, you need the UNIQUEREF that we returned to the merchant's receipt page. Send the UNIQUEREF in the paymentId path parameter in a POST request to our Payments endpoint.

| Environment | Prefix   | URL                                                                                                                    |
| :---------- | :------- | :--------------------------------------------------------------------------------------------------------------------- |
| Test        | api.uat. | [https://api.uat.payroc.com/v1/payments/:paymentId/capture](https://api.uat.payroc.com/v1/payments/:paymentId/capture) |
| Production  | api.     | [https://api.payroc.com/v1/payments/:paymentId/capture](https://api.payroc.com/v1/payments/:paymentId/capture)         |

Depending on the amount you want to capture:

* **Capture the full amount of the pre-authorization** - Don’t send a value for the amount parameter in your request.
* **Capture less than the amount of the pre-authorization** - Send a value for the amount parameter in your request.
* **Capture more than the amount of the pre-authorization** - Adjust the pre-authorization before you capture it. For more information about adjusting a pre-authorization, go to [Adjust Payment](https://docs.payroc.com/api/schema/card-payments/payments/adjust).

### Request parameters

To create the body of your request, use the following parameters:

<EndpointSchemaSnippet endpoint="POST /payments/{paymentId}/capture" selector="request.body" />

### Example request

<EndpointRequestSnippet endpoint="POST /payments/{paymentId}/capture" />

### Response fields

If your request is successful, we capture the pre-authorization and return a response. The response contains the following fields:

<EndpointSchemaSnippet endpoint="POST /payments/{paymentId}/capture" selector="response.body" />

### Example response

<EndpointResponseSnippet endpoint="POST /payments/{paymentId}/capture" example="payment" />