---
title: "Create a pre-authorization"
method: POST
path: "/api/creditcontrol/accounts/{creditAccountId}/transactions"
tags: ["Account"]
---

# Create a pre-authorization

`POST /api/creditcontrol/accounts/{creditAccountId}/transactions`

Creates a Pre-Authorization. Also known as authorization hold, card authorization or pre-auth, pre-authorization is the practice of holding this balance as unavailable until either the merchant clears the transaction, also called settlement, or the hold *falls off*.

This operation does not appear in statements, but the available balance will be updated.

The result of this operation is generating a `transactionId` (pre-authorization identification) to use in a settlement.

## Permissions

Any user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:

| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Credit Control | Main | **Main Access** |
| Credit Control | Statements | **Create Statements** |

There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).

>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.

## Path parameters

- `creditAccountId` string, required

## Headers

- `Content-Type` string, required
- `Accept` string, required

## Request body

- object
  - `value` number, required — Pre-Authorization value.
  - `settle` boolean, required — Indicates whether pre-authorization should be available to be settled. This means that the `transactionId` created in this request can be used to be associated with an order within a maximum period of 30 days.
  - `installments` number, required — Number of installments.
  - `expirationDate` string — Pre-Authorization expiration date. This field should only be sent if the `settle` field is sent as `false`.

## Response `200`

OK

- object
  - `id` string, required — Pre-Authorization identification.
  - `value` number, required — Pre-Authorization value.
  - `expirationDate` string — Pre-Authorization expiration date.
  - `installments` number, required — Number of installments.

---

[API](https://skmtc.net/vtex/apis/customer-credit-api.md) · [All operations](https://skmtc.net/vtex/apis/customer-credit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vtex/customer-credit-api/revisions/6397d4efe3b7/schema)
