> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equalsmoney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage transaction limits

> A **transaction limit** defines the maximum amount that can be spent on a card in a single transaction.

A card can have both a spending limit and a transaction limit. [Learn more about spending limits](/pages/cards/manage-spending-limits).

<Info>
  The endpoints described in this guide are currently in beta mode.
</Info>

## Retrieve a transaction limit

<Note>
  **GET** `/v2/cards/{cardId}/transaction-limits`
</Note>

### Request

Use this request to retrieve a transaction limit for a given card, based on its `id`.

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X GET \
    'https://api.equalsmoney.com/v2/cards/e9293471-5eb3-4dbc-916c-dbaf9e2deefd/transaction-limits?accountId=F12345&budgetId=775596ae-2624-40af-a9dc-9756110a4a03' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE'
  ```

  ```bash Request structure theme={null}
  curl -i -X GET \
    'https://api.equalsmoney.com/v2/cards/{cardId}/transaction-limits?accountId={accountId}&budgetId={budgetId}' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE'
  ```
</CodeGroup>

#### Path parameters

<ParamField body="cardId" type="string (uuid)" required>
  The ID of the card that you want to retrieve the transaction limit for.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

#### Query parameters

<ParamField body="accountId" type="string" required>
  The ID of the account that the card is associated with.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="budgetId" type="string (uuid)" required>
  The ID of the budget that the card is associated with.

  Allowable values: An existing `budgetId` (≤ 36 characters)
</ParamField>

<ParamField body="personId" type="string (uuid)">
  The ID of the person that the card belongs to.

  Allowable values: An existing `personId` (≤ 36 characters)
</ParamField>

### Response

If your request is successful, you'll receive a `200` response.

<CodeGroup>
  ```json Sample response theme={null}
  {
    "id": "775596ae-2624-40af-a9dc-9756110a4a03",
    "amount": 100.5,
    "active": false,
    "limitTurnedOff": true,
    "currencyCode": "GBP",
    "limitWindow": "TRANSACTION"
  }
  ```

  ```json Response structure theme={null}
  {
    "id": "string",
    "amount": number,
    "active": boolean,
    "limitTurnedOff": boolean,
    "currencyCode": "string",
    "limitWindow": "string"
  }
  ```
</CodeGroup>

For more detailed information about this request and its response, [see the API reference](/api-reference/transaction-limits/retrieve-transaction-limit-for-a-card).

## Create a transaction limit

<Note>
  **POST** `/v2/cards/{cardId}/transaction-limits`
</Note>

### Request

Use this request to create a transaction limit for a given card.

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards/e9293471-5eb3-4dbc-916c-dbaf9e2deefd/transaction-limits?accountId=F12345&budgetId=775596ae-2624-40af-a9dc-9756110a4a03' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "amount": 100.5,
      "active": false,
      "limitTurnedOff": true,
      "limitWindow": "TRANSACTION"
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards/{cardId}/transaction-limits?accountId={accountId}&budgetId={budgetId}' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '
    {
      "id": "string",
      "amount": number,
      "active": boolean,
      "limitTurnedOff": boolean,
      "limitWindow": "string"
    }'
  ```
</CodeGroup>

#### Path parameters

<ParamField body="cardId" type="string (uuid)" required>
  The ID of the card that you want to create a transaction limit for.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

#### Query parameters

<ParamField body="accountId" type="string" required>
  The ID of the account that the card is associated with.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="budgetId" type="string (uuid)" required>
  The ID of the budget that the card is associated with.

  Allowable values: An existing `budgetId` (≤ 36 characters)
</ParamField>

<ParamField body="personId" type="string (uuid)">
  The ID of the person that the card belongs to.

  Allowable values: An existing `personId` (≤ 36 characters)
</ParamField>

#### Request body schema

<ParamField body="id" type="string (uuid)">
  The ID of the transaction limit that you want to create.

  Allowable values: A valid string
</ParamField>

<ParamField body="amount" type="number" required>
  The amount that you want to set as the transaction limit.

  Allowable values: A valid number
</ParamField>

<ParamField body="active" type="boolean">
  Whether or not you want the transaction limit to be active on Marqeta.

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="limitTurnedOff" type="boolean">
  Whether or not you want the transaction limit to be turned off.

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="limitWindow" type="string" required>
  The time period for which the transaction limit applies. Always set this to `TRANSACTION`.

  Allowable values: `TRANSACTION`
</ParamField>

### Response

If your request is successful, you'll receive a `200` response.

<CodeGroup>
  ```json Sample response theme={null}
  {
    "id": "775596ae-2624-40af-a9dc-9756110a4a03",
    "amount": 100.5,
    "active": false,
    "limitTurnedOff": true,
    "currencyCode": "GBP",
    "limitWindow": "TRANSACTION"
  }
  ```

  ```json Response structure theme={null}
  {
    "id": "string",
    "amount": number,
    "active": boolean,
    "limitTurnedOff": boolean,
    "currencyCode": "string",
    "limitWindow": "string"
  }
  ```
</CodeGroup>

For more detailed information about this request and its response, [see the API reference](/api-reference/transaction-limits/create-transaction-limit-for-a-card).

## Update a transaction limit

<Note>
  **PUT** `/v2/cards/{cardId}/transaction-limits/{limitId}`
</Note>

### Request

Use this request to update the transaction limit for a given card.

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X PUT \
    'https://api.equalsmoney.com/v2/cards/e9293471-5eb3-4dbc-916c-dbaf9e2deefd/transaction-limits/0684fc07-4abc-46de-b664-da45ef3c4072?accountId=F12345&budgetId=775596ae-2624-40af-a9dc-9756110a4a03' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "amount": 100.5,
      "active": false,
      "limitTurnedOff": true,
      "limitWindow": "TRANSACTION"
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X PUT \
    'https://api.equalsmoney.com/v2/cards/{cardId}/transaction-limits/{limitId}?accountId={accountId}&budgetId={budgetId}' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "id": "string",
      "amount": number,
      "active": boolean,
      "limitTurnedOff": boolean,
      "limitWindow": "string"
    }`
  ```
</CodeGroup>

#### Path parameters

<ParamField body="cardId" type="string (uuid)" required>
  The ID of the card that the transaction limit applies to.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

<ParamField body="limitId" type="string (uuid)" required>
  The ID of the transaction limit that you want to update.

  Allowable values: An existing `limitId` (≤ 36 characters)
</ParamField>

#### Query parameters

<ParamField body="accountId" type="string" required>
  The ID of the account that the card is associated with.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="budgetId" type="string (uuid)" required>
  The ID of the budget that the card is associated with.

  Allowable values: An existing `budgetId` (≤ 36 characters)
</ParamField>

<ParamField body="personId" type="string (uuid)">
  The ID of the person that the card belongs to.

  Allowable values: An existing `personId` (≤ 36 characters)
</ParamField>

#### Request body schema

<ParamField body="id" type="string (uuid)">
  The new ID of the transaction limit.

  Allowable values: A valid string
</ParamField>

### Response

If your request is successful, you'll receive a `200` response.

<CodeGroup>
  ```json Sample response theme={null}
  {
    "id": "775596ae-2624-40af-a9dc-9756110a4a03",
    "amount": 100.5,
    "active": false,
    "limitTurnedOff": true,
    "currencyCode": "GBP",
    "limitWindow": "TRANSACTION"
  }
  ```

  ```json Response structure theme={null}
  {
    "id": "string",
    "amount": number,
    "active": boolean,
    "limitTurnedOff": boolean,
    "currencyCode": "string",
    "limitWindow": "string"
  }
  ```
</CodeGroup>

For more detailed information about this request and its response, [see the API reference](/api-reference/transaction-limits/update-transaction-limit-for-a-card).
