---
api: 'Business API'
---

# Update card invitation settings

Update settings for a specific card invitation, based on its ID.
You can update successfully created invitations that have not been claimed yet (`state=created`).

:::note
- This feature is not available in Sandbox.
- To increase your account's card limits, please contact [Revolut API Support](mailto:api-requests@revolut.com).
:::

:::warning
Some spend control parameters can affect one another.
When updating spend controls, review the resulting settings in the response to ensure they reflect the configuration you intended.
:::

For more information, see the guides: [Manage card invitations](/docs/guides/manage-accounts/cards/manage-card-invitations).

## Endpoint

PATCH `/card-invitations/{card_invitation_id}`

## Parameters

### path parameters

- `card_invitation_id` (string, required)
  The ID of the card invitation.

## Request body

### Attributes

- `label` (string, optional)
    The label of the card.
    
    Cards without labels are not allowed.
    If set to `null`, the default label will be set according to the card's type.
    
    :::tip[Default labels]
    For virtual cards, the default label is `Virtual`.
    For physical cards, depending on the type, it can be, for example, `Standard` or `Metal`. 
    
    As these values depend on available card types, they are subject to change over time.
    :::
- `spending_limits` (object, optional)
    All spending limits to be set for the card.
    
    You can have at most 1 periodic (day/week/month/quarter/all-time) and 1 non-periodic (single transaction) limit at a time.
    If you try to specify 2 periodic limits at a time, it will result in an error.
    
    Use `null` as the value for a specific limit to erase that limit.
    Use `null` as the value for the `spending_limits` object to erase all limits.
  - `spending_limits.single` (object, optional)
      The limit for a single transaction.
    - `spending_limits.single.amount` (number)
        The value of the spending limit.
    - `spending_limits.single.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.day` (object, optional)
      The daily limit for transactions.
    - `spending_limits.day.amount` (number)
        The value of the spending limit.
    - `spending_limits.day.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.week` (object, optional)
      The weekly limit for transactions.
    - `spending_limits.week.amount` (number)
        The value of the spending limit.
    - `spending_limits.week.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.month` (object, optional)
      The monthly limit for transactions.
    - `spending_limits.month.amount` (number)
        The value of the spending limit.
    - `spending_limits.month.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.quarter` (object, optional)
      The quarterly limit for transactions.
    - `spending_limits.quarter.amount` (number)
        The value of the spending limit.
    - `spending_limits.quarter.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.year` (object, optional)
      The yearly limit for transactions.
    - `spending_limits.year.amount` (number)
        The value of the spending limit.
    - `spending_limits.year.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.all_time` (object, optional)
      The all-time limit for transactions.
    - `spending_limits.all_time.amount` (number)
        The value of the spending limit.
    - `spending_limits.all_time.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
- `spending_period` (object, optional)
    The controls for the card's spending period.
    
    They let you set or modify the dates when the card should become available or unavailable for spending, and define what happens after the end date.
    
    If specified, you must provide at least one of these:
    - `start_date`
    - `end_date` together with `end_date_action`
    
    The spending period dates must be in the future.
    
    The dates are inclusive.
    This means that:
    - If you set the `start_date` to `2026-03-31`, the card will become active on that day.
    - If you set the `end_date` to `2027-12-31`, the card will be active through that day, and will be locked/terminated starting on 1st Jan 2028.
    
    :::note
    You can update the spending period settings in a few ways, depending on your use case:
    - To remove the start date, but keep the end date settings, provide the current `spending_period` settings without the `start_date`.
    - To remove the start date when no end date is set, provide the `spending_period.start_date` set to `null`.
    - To remove **all** spending period settings, provide `spending_period` set to `null`.
    
    If you wish to erase a spending period end date, you can do this in a similar way, applying the steps to `spending_period.end_date` and `spending_period.end_date_action`.
    :::
  - `spending_period.start_date` (string, optional)
      The start date (inclusive) of the spending period, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DD`).
      Uses the [timezone set by the business](https://business.revolut.com/settings/appearance), or defaults to `Europe/London`.
  - `spending_period.end_date` (string, optional)
      The end date (inclusive) of the spending period, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DD`).
      Uses the [timezone set by the business](https://business.revolut.com/settings/appearance), or defaults to `Europe/London`.
  - `spending_period.end_date_action` (enum, optional)
      The action to take after the end date of the spending period.
      Possible enum values:

      - `lock`
      - `terminate`
- `categories` (array of enum, optional)
    The list of merchant categories to be available for card spending.
    Use `null` to erase the value and reset to empty (all categories will be allowed).
    
    :::note
    The `categories` and `merchant_controls` parameters have the following restrictions:
    - If you set `categories`, you **cannot** set `merchant_controls.control_type` to `allow`.
    - You **can** set `merchant_controls.control_type` to `block`.
    - You may also set **either** `categories` or `merchant_controls` independently, or **set neither**.
    - Both parameters can be used together **only** if `merchant_controls.control_type` is `block`.
    :::
- `merchant_controls` (object, optional)
    The merchant-level controls for card spending.
    
    They let you block or allow the card to only transact with specific merchants:
    - `allow`: permits only the specified merchants (cannot be used if the `categories` parameter is set).
    - `block`: blocks the specified merchants (can be used with or without `categories`).
  - `merchant_controls.control_type` (enum)
      The type of control to apply.
      Possible enum values:

      - `block`
      - `allow`
  - `merchant_controls.merchant_ids` (array of string)
      The list of IDs of merchants to which the control applies.
      
      :::tip
      To find merchant IDs, check transaction details (→ `merchant.id`).
      You can fetch transaction details for a [specific transaction](/docs/api/business#get-transaction#response) or for [all transactions](/docs/api/business#get-transactions#response).
      :::
- `countries` (array of string, optional)
    The list of countries where the card can be used, provided as 2-letter [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) codes.
- `accounts` (array of string, optional)
    The list of accounts to link to the card.
    If not specified, all accounts will be linked.
    To retrieve account IDs, use the [`GET /accounts` operation](/docs/api/business#get-accounts).

## Returns

### 200

Information about the updated card invitation

#### Response attributes

- `id` (string)
    The ID of the card invitation.
- `state` (enum)
    The current state of the card invitation:
    - **`created`**: Invitation has been created but not yet claimed.
    - **`expired`**: Invitation has expired due to expiry date being reached or manual cancellation.
    - **`failed`**: Invitation claim attempt failed.
    - **`redeemed`**: Invitation has been successfully claimed.
    
    To learn more about card invitation lifecycle, see the guide: [Manage card invitations → Card invitation state](/docs/guides/manage-accounts/cards/manage-card-invitations#card-invitation-state).
    Possible enum values:

    - `created`
    - `expired`
    - `failed`
    - `redeemed`
- `created_at` (string)
    The date and time the card invitation was created in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
- `updated_at` (string)
    The date and time the card invitation was last updated in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
- `expiry_date` (string, optional)
    The date and time after which this card invitation expires if not claimed or cancelled before then.
    Specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
    :::note
    Only returned for invitations in state `created`.
    :::tip
    For other states, to find out when a card invitation transitioned to its [final state](/docs/guides/manage-accounts/cards/manage-card-invitations#card-invitation-state), check the `updated_at` value. 
    :::
- `holder_id` (string, optional)
    The ID of the team member to be assigned as the holder of the card after the invitation is claimed.
- `virtual` (boolean)
    Specifies whether the issued card will be a virtual (`true`) or physical (`false`) one.
- `label` (string, optional)
    The label of the card.
- `spend_program` (object, optional)
    The [spend program](https://help.revolut.com/business/help/making-paymentsbusiness/spend-controls/setting-card-presets-for-my-team-members/) assigned to the card.
    :::note
    To use this property, please contact [Revolut API Support](mailto:api-requests@revolut.com).
    :::
  - `spend_program.label` (string)
      The name of the spend program.
- `spending_limits` (object, optional)
    All spending limits set for the card.
  - `spending_limits.single` (object, optional)
      The limit for a single transaction.
    - `spending_limits.single.amount` (number)
        The value of the spending limit.
    - `spending_limits.single.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.day` (object, optional)
      The daily limit for transactions.
    - `spending_limits.day.amount` (number)
        The value of the spending limit.
    - `spending_limits.day.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.week` (object, optional)
      The weekly limit for transactions.
    - `spending_limits.week.amount` (number)
        The value of the spending limit.
    - `spending_limits.week.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.month` (object, optional)
      The monthly limit for transactions.
    - `spending_limits.month.amount` (number)
        The value of the spending limit.
    - `spending_limits.month.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.quarter` (object, optional)
      The quarterly limit for transactions.
    - `spending_limits.quarter.amount` (number)
        The value of the spending limit.
    - `spending_limits.quarter.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.year` (object, optional)
      The yearly limit for transactions.
    - `spending_limits.year.amount` (number)
        The value of the spending limit.
    - `spending_limits.year.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
  - `spending_limits.all_time` (object, optional)
      The all-time limit for transactions.
    - `spending_limits.all_time.amount` (number)
        The value of the spending limit.
    - `spending_limits.all_time.currency` (string)
        The currency of the spending limit, provided as [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code in upper case.
- `spending_period` (object, optional)
    The controls for the card's spending period.
    
    They specify the dates when the card will become available or unavailable for spending, and define what happens after the end date.
  - `spending_period.start_date` (string, optional)
      The start date (inclusive) of the spending period, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DD`).
      Uses the [timezone set by the business](https://business.revolut.com/settings/appearance), or defaults to `Europe/London`.
  - `spending_period.end_date` (string, optional)
      The end date (inclusive) of the spending period, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DD`).
      Uses the [timezone set by the business](https://business.revolut.com/settings/appearance), or defaults to `Europe/London`.
  - `spending_period.end_date_action` (enum, optional)
      The action to take after the end date of the spending period.
      Possible enum values:

      - `lock`
      - `terminate`
- `categories` (array of enum, optional)
    The list of merchant categories that will be available for card spending.             
    If this parameter is not specified, categories are not restricted.
- `merchant_controls` (object, optional)
    The merchant-level controls for card spending.
    
    They block or allow the card to only transact with specific merchants: 
    - `allow`: permits only the specified merchants (cannot be used if the `categories` parameter is set)
    - `block`: blocks the specified merchants (can be used with or without `categories`)
  - `merchant_controls.control_type` (enum)
      The type of control to apply.
      Possible enum values:

      - `block`
      - `allow`
  - `merchant_controls.merchant_ids` (array of string)
      The list of IDs of merchants to which the control applies.
      
      :::tip
      To find merchant IDs, check transaction details (→ `merchant.id`).
      You can fetch transaction details for a [specific transaction](/docs/api/business#get-transaction#response) or for [all transactions](/docs/api/business#get-transactions#response).
      :::
- `countries` (array of string, optional)
    The list of countries where the team member will be able to use the card.
    Specified as 2-letter [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) codes.
- `accounts` (array of string)
    The list of accounts that will be linked to the card.

## Error responses

| HTTP status code | Description |
| --- | --- |
| 400 | Bad request  Returned, for example, when there's nothing to update or the provided details are unsupported for this operation.  If the invalid value is an array item, the error might indicate the array index of this faulty item, counting from `0`.  For example, if you provide the list of countries, such as `"countries": ["GB", "USA", ...]`, the first item (`GB`) has index `0`, the second item (`USA`) has index `1`, and so on. In the example, `USA` is invalid, because it should be a 2-letter code. In such a case, the error will indicate that `countries[1]` is invalid, thus pointing to the second item in the array, i.e. `USA`. |
| 401 | Unauthorised  Returned, for example, when the credentials you used to make the request are invalid. For more information, see the **Authorization** section. |
| 404 | Card invitation doesn't exist  The card invitation for which you wish to update details does not exist. |
| 422 | Unprocessable Entity  Returned, for example, when you try to update a card invitation that's not in state `created`. Such an invitation is no longer active and therefore cannot be modified. |
