---
updatedAt: 2026-04-21T09:29:18.000Z
agentTools:
  projectIndex: https://partner.getpliant.com/llms.txt
---

# Create Card Request

Create a card request for a specific cardholder.

**This endpoint has changed in comparison to the previous version of the API.** The following changes were made:
- changed the HTTP response code to 202 Accepted and removed the response body, to reflect the asynchronous nature of this endpoint
- deprecated `type` and replaced it with `cardConfig`


# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "contact": {
      "name": "API Support",
      "email": "support@getpliant.com",
      "url": "https://www.getpliant.com"
    },
    "title": "Pliant Partner API",
    "description": "Pliant Partner API",
    "version": "2.1.0",
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/license/MIT"
    }
  },
  "servers": [
    {
      "url": "https://partner-api.getpliant.com/api",
      "description": "Pliant Production Server"
    },
    {
      "url": "https://sandbox.partner-api.getpliant.com/api",
      "description": "Pliant Sandbox Server"
    },
    {
      "url": "https://pci-api.getpliant.com",
      "description": "PCI Vault Production Server"
    },
    {
      "url": "https://pci-sandbox.partner-api.getpliant.com",
      "description": "PCI Vault Sandbox Server"
    }
  ],
  "x-readme": {
    "explorer-enabled": false,
    "samples-languages": [
      "curl",
      "java",
      "kotlin"
    ],
    "headers": [
      {
        "key": "Pliant-API-Version",
        "value": "2.1.0"
      }
    ]
  },
  "tags": [
    {
      "name": "Cards",
      "description": "This tag is for operations related to cards"
    },
    {
      "name": "Card Requests",
      "description": "This tag is for operations related to card requests"
    }
  ],
  "paths": {
    "/cards/limits/{cardId}": {
      "put": {
        "summary": "Update Card Limit",
        "description": "Change the card limit for a given virtual or physical card, as long as the card is not terminated. This is unrelated to the renew frequency of the card.\nMeaning you can update the limit of a card with a `TOTAL` renew frequency (equals no limit renewal) as well as a `MONTHLY` renew frequency etc.\n\n**Additional limits:** Use the `additionalLimits` field to create, update, or remove additional limits on the card in the same request.\n- Entries **with** an `id` → update the matching existing additional limit.\n- Entries **without** an `id` → create a new additional limit.\n- Existing additional limits **omitted** from the array → soft-delete (removed).\n- Passing `null` or omitting `additionalLimits` → leave existing additional limits unchanged.\n- Passing an **empty array `[]`** → remove all additional limits from the card.\n\n**Response:** This endpoint returns `204 No Content`. To read the updated limit state use `GET /api/cards/{cardId}` or subscribe to the `CARD_LIMITS_CHANGED` callback.\n",
        "tags": [
          "Cards"
        ],
        "operationId": "update-card-limit",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "description": "The ID of the card to update the limit for.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "required": [
                      "limit",
                      "transactionLimit"
                    ],
                    "properties": {
                      "limit": {
                        "type": "object",
                        "description": "The limit of the card. The limit renews according to the `limitRenewFrequency` or never, if `limitRenewFrequency` is set to `TOTAL`.",
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                          },
                          "currency": {
                            "type": "string",
                            "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar. This has to match the currency of the respective [card account](/docs/card-account)!"
                          }
                        }
                      },
                      "limitRenewFrequency": {
                        "type": "string",
                        "enum": [
                          "DAILY",
                          "WEEKLY",
                          "MONTHLY",
                          "QUARTERLY",
                          "ANNUAL",
                          "TOTAL"
                        ],
                        "description": "The frequency of the card limit renewal.\n* `DAILY` - The card limit is renewed every day\n* `WEEKLY` - The card limit is renewed every week\n* `MONTHLY` - The card limit is renewed every calendar month, this is the default setting.\n* `QUARTERLY` - The card limit is renewed every calendar quarter.\n* `ANNUAL` - The card limit is renewed every year.\n* `TOTAL` - The card limit is never going to be renewed. After the limit is spent the card cannot be used anymore.\n"
                      },
                      "transactionLimit": {
                        "type": "object",
                        "description": "The transaction limit of the card. Meaning the maximum amount of a single transaction. This is always below or equal to the `limit` of the card.",
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                          },
                          "currency": {
                            "type": "string",
                            "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar. This has to match the currency of the respective [card account](/docs/card-account)!"
                          }
                        }
                      },
                      "maxTransactionCount": {
                        "type": "number",
                        "minimum": 1,
                        "maximum": 999999999,
                        "description": "Optional field to describe the maximum number of transactions within the range of `1..999999999` that can be performed with this card.\nIf not provided, the card can be used for an unlimited number of transactions until the card expires.\n"
                      },
                      "monthlyLimit": {
                        "type": "object",
                        "deprecated": true,
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                          },
                          "currency": {
                            "type": "string",
                            "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar. This has to match the currency of the respective [card account](/docs/card-account)!"
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "additionalLimits": {
                        "type": "array",
                        "nullable": true,
                        "description": "Additional limits to create, update, or remove. See endpoint description for update semantics.",
                        "items": {
                          "type": "object",
                          "description": "An additional limit to set on a card.\n\n**Update semantics (applies to `PUT /api/cards/limits/{cardId}`):**\n- Entries **with** an `id` → update the matching existing additional limit.\n- Entries **without** an `id` → create a new additional limit.\n- Existing additional limits **omitted** from the array → soft-delete (removed from the card).\n- Passing `null` or omitting `additionalLimits` entirely → leave existing additional limits unchanged.\n- Passing an **empty array `[]`** → remove all additional limits from the card.\n\nThe `id` field is only meaningful for `PUT /api/cards/limits/{cardId}` and `POST /api/cards/limits/requests`. It is ignored in all other contexts.\n",
                          "properties": {
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "nullable": true,
                              "description": "Identifies an existing additional limit to update. Omit or set to null to create a new limit. Only meaningful for `PUT /api/cards/limits/{cardId}` and `POST /api/cards/limits/requests`."
                            },
                            "limitRenewFrequency": {
                              "type": "string",
                              "enum": [
                                "PER_TRANSACTION",
                                "DAILY",
                                "WEEKLY",
                                "MONTHLY",
                                "QUARTERLY",
                                "ANNUAL",
                                "TOTAL"
                              ],
                              "description": "The renewal frequency for this additional limit. `PER_TRANSACTION` is only valid for additional limits, not for the card's primary limit.\n* `PER_TRANSACTION` - Limit applies to each individual transaction.\n* `DAILY` - The limit is renewed every day.\n* `WEEKLY` - The limit is renewed every week.\n* `MONTHLY` - The limit is renewed every calendar month.\n* `QUARTERLY` - The limit is renewed every calendar quarter.\n* `ANNUAL` - The limit is renewed every year.\n* `TOTAL` - The limit is never renewed. Once spent, no further transactions are allowed under this limit.\n"
                            },
                            "limit": {
                              "type": "object",
                              "description": "The monetary cap for this additional limit. For unscoped limits and limits with `categories`, `acceptanceMethods`, or `atmWithdrawal` scope, the currency must match the card account currency. For currency-scoped limits (`scope.currency` is set), the currency must match `scope.currency`.",
                              "properties": {
                                "value": {
                                  "type": "number",
                                  "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                                },
                                "currency": {
                                  "type": "string",
                                  "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar."
                                }
                              }
                            },
                            "maxTransactionCount": {
                              "type": "number",
                              "nullable": true,
                              "minimum": 1,
                              "maximum": 999999999,
                              "description": "Max number of transactions per renewal period (`1..999999999`). Null means no cap."
                            },
                            "scope": {
                              "type": "object",
                              "nullable": true,
                              "description": "Restricts when this limit applies. Null for a general (unscoped) limit. At least one of `categories`, `acceptanceMethods`, `atmWithdrawal: true`, or `currency` must be set for a scoped limit.",
                              "properties": {
                                "categories": {
                                  "type": "array",
                                  "nullable": true,
                                  "description": "Merchant category types this limit applies to.",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "ADVERTISING_AND_MARKETING",
                                      "COMPUTING_AND_SOFTWARE",
                                      "EDUCATION_AND_TRAINING",
                                      "ELECTRONICS_AND_IT_EQUIPMENT",
                                      "ENTERTAINMENT_AND_WELLNESS",
                                      "FOOD_AND_DRINKS",
                                      "GIFTS_AND_VOUCHERS",
                                      "HEALTHCARE",
                                      "MATERIALS_AND_PACKAGING",
                                      "OFFICE_SUPPLIES_AND_EQUIPMENT",
                                      "SERVICES",
                                      "TRAVEL_AND_ACCOMMODATION",
                                      "OTHER"
                                    ]
                                  }
                                },
                                "acceptanceMethods": {
                                  "type": "array",
                                  "nullable": true,
                                  "description": "The card acceptance methods this limit applies to.",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "ONLINE",
                                      "MOBILE_WALLET",
                                      "MANUAL_ENTRY",
                                      "CONTACTLESS",
                                      "CHIP_DIP",
                                      "NOT_AVAILABLE",
                                      "MAGNETIC_STRIPE",
                                      "OTHER"
                                    ]
                                  }
                                },
                                "atmWithdrawal": {
                                  "type": "boolean",
                                  "nullable": true,
                                  "description": "When `true`, this additional limit applies to ATM withdrawal transactions."
                                },
                                "currency": {
                                  "type": "string",
                                  "nullable": true,
                                  "description": "ISO 4217 currency code this limit applies to, e.g. `PLN` or `USD`. When set, the limit tracks spending in that currency only and is independent of the card's billing currency.\nConstraints:\n* Must differ from the card account's billing currency.\n* The `limit` amount currency must equal this value.\n"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Ok"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    },
    "/cards/requests": {
      "post": {
        "summary": "Create Card Request",
        "description": "Create a card request for a specific cardholder.\n\n**This endpoint has changed in comparison to the previous version of the API.** The following changes were made:\n- changed the HTTP response code to 202 Accepted and removed the response body, to reflect the asynchronous nature of this endpoint\n- deprecated `type` and replaced it with `cardConfig`\n",
        "tags": [
          "Card Requests"
        ],
        "operationId": "create-card-request",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "required": [
                      "organizationId",
                      "cardholderId"
                    ],
                    "properties": {
                      "organizationId": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The ID of the organization to create the card request for."
                      },
                      "cardholderId": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The id of the [cardholder](/docs/cardholder-entity) to create this card request for. This cardholder needs to have a phone number, otherwise 3DS security mechanism during a purchase will not work."
                      },
                      "cardAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The ID of the [card account](/docs/card-account) to create the card request for. If not provided, the card will be created for the default [card account](/docs/card-account) of the organization. If the given card account has `status` `SUPERSEDED`, the request is transparently resolved to its successor (`supersededBy`) and the response carries the id of that successor card account."
                      },
                      "cardControls": {
                        "$ref": "#/components/schemas/CardControls"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "validityPeriod",
                      "requestedTransactionLimit",
                      "requestedLimit",
                      "comment"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "nullable": true,
                        "deprecated": true,
                        "enum": [
                          "VIRTUAL",
                          "SINGLE_USE",
                          "PHYSICAL",
                          "BLACK",
                          "TRAVEL"
                        ],
                        "description": "Deprecated, please use `cardConfig` instead.\n`VIRTUAL` - Virtual credit card\n`SINGLE_USE` - One-time virtual credit card (only one authorization allowed per card)  \n`PHYSICAL` - Physical credit card\n`BLACK` - Physical black premium credit card\n`TRAVEL` - Virtual cards used specifically in travel industry related use cases\nEither `type` or `cardConfig` has to be provided. Please prefer `cardConfig`.\n"
                      },
                      "cardConfig": {
                        "type": "string",
                        "description": "The Pliant card configuration of this card. This describes all feature of this card in one single configuration, e.g. the type of the card and also the design of the card etc. It replaces the deprecated card `type`. Please refer to the [guide section](/docs/card-entity) to learn more about possible values. Either `type` or `cardConfig` has to be provided. Please prefer `cardConfig`.",
                        "nullable": true
                      },
                      "validityPeriod": {
                        "type": "string",
                        "description": "Date when card expires in months; Mandatory for virtual cards. For cards with type `PHYSICAL` or `BLACK` this is set to 36 months automatically, for cards with type `SINGLE_USE` it is set to 12 months automatically.",
                        "enum": [
                          "3",
                          "6",
                          "9",
                          "12",
                          "18",
                          "24",
                          "30",
                          "36"
                        ]
                      },
                      "label": {
                        "type": "string",
                        "description": "Available only for virtual cards with a `cardConfig` containing `VIRTUAL` or `TRAVEL`. The maximum length is 40 characters.",
                        "maxLength": 40,
                        "nullable": true
                      },
                      "purpose": {
                        "type": "string",
                        "description": "Available only for virtual cards with type `SINGLE_USE`"
                      },
                      "requestedTransactionLimit": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                          },
                          "currency": {
                            "type": "string",
                            "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar."
                          }
                        }
                      },
                      "requestedMonthlyLimit": {
                        "type": "object",
                        "deprecated": true,
                        "description": "Use `requestedLimit` instead",
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                          },
                          "currency": {
                            "type": "string",
                            "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar."
                          }
                        }
                      },
                      "requestedLimit": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts."
                          },
                          "currency": {
                            "type": "string",
                            "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar."
                          }
                        }
                      },
                      "limitRenewFrequency": {
                        "type": "string",
                        "enum": [
                          "DAILY",
                          "WEEKLY",
                          "MONTHLY",
                          "QUARTERLY",
                          "ANNUAL",
                          "TOTAL"
                        ],
                        "description": "* `DAILY` - The card limit is renewed every day\n* `WEEKLY` - The card limit is renewed every week\n* `MONTHLY` - The card limit is renewed every calendar month\n* `QUARTERLY` - The card limit is renewed every calendar quarter\n* `ANNUAL` - The card limit is renewed every year\n* `TOTAL` - The card limit is never going to be renewed. After the limit is spent the card cannot be used anymore.\n"
                      },
                      "comment": {
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 200
                      },
                      "additionalLimits": {
                        "type": "array",
                        "nullable": true,
                        "description": "Optional additional limits to request on the card. Forwarded to card management and applied when the request is approved.",
                        "items": {
                          "$ref": "#/paths/~1cards~1limits~1{cardId}/put/requestBody/content/application~1json/schema/allOf/1/properties/additionalLimits/items"
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted. The request was successful, please wait until the callback is triggered, since this is an asynchronous operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$ref": "#/components/schemas/CardRequestCreate"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "This API uses oAuth2 with client credentials flow to [obtain the Bearer Token](/docs/authenticated-api-usage).",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "CardRequestCreate": {
        "type": "object",
        "required": [
          "cardRequestId"
        ],
        "properties": {
          "cardRequestId": {
            "type": "string",
            "format": "uuid",
            "description": "The ID of the card request itself."
          }
        }
      },
      "CardControls": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "values",
              "restriction"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "MCC",
                  "CATEGORY"
                ],
                "description": "Type of the category control to use. `MCC` represents the merchant category code as defined by card networks, whereas `CATEGORY` is a Pliant internal grouping of transactions done with a credit card. Both values can be found in the response from the [transaction details endpoint](./get-transactions-detail-batch) or in our [guide section](/docs/card-controls-1)."
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Values for this category control which should be allowed or blocked. Can be either a list of `MCCs` or Pliant's payment categories. Both values can be found in the response from the [transaction details endpoint](./get-transactions-detail-batch) or in our [guide section](/docs/card-controls-1)."
              },
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ]
              }
            }
          },
          "merchants": {
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "values",
              "restriction"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "MATCH_TERM",
                  "MID"
                ],
                "description": "Type of the merchant control to use. `MATCH_TERM` is the merchant name to match. Matching here works by checking if the provided term is part of a merchant name, the check is case insensitive. `MID` represents the merchant identifier as assigned by the card network. It can be found in the [transaction details response](./get-transactions-detail-batch). There it is named `mid`."
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Values for this merchant control which should be allowed or blocked."
              },
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ]
              }
            }
          },
          "dates": {
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "values",
              "timezone",
              "restriction"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "YEARLY",
                  "MONTHLY",
                  "WEEKLY",
                  "FIXED"
                ],
                "description": "Type of the date control to use. `YEARLY`, `MONTHLY` and `WEEKLY` are recurring dates, whereas `FIXED` is a fixed date range."
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Values for this date control which should be allowed or blocked.\n`YEARLY`, `MONTHLY` and `FIXED` each take exactly one value. A second value is rejected.\n`WEEKLY` takes one or more weekdays.\nPatterns:\n`YEARLY`: one range `dd.MM-dd.MM`.\n`MONTHLY`: one range `dd-dd`. Days are `01` to `28`, or `last`, `last-1` or `last-2` for the last day of the month or one to two days before.\n`WEEKLY`: one or more of `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n`FIXED`: one range `dd.MM.yyyy-dd.MM.yyyy`.\nTo block transactions at the end of the month, use `MONTHLY` with the single value `20-last`.\n"
              },
              "timezone": {
                "type": "string",
                "description": "Timezone to use for the date control. A list of valid timezones can be found in our [guide section](/docs/card-controls-1)."
              },
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ]
              }
            }
          },
          "times": {
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "values",
              "timezone",
              "restriction"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "TIMERANGE"
                ],
                "description": "Type of the time control. Currently only `TIMERANGE` is supported."
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Only one time range is allowed for this control. The allowed pattern is `HH:mm-HH:mm`.\nSo for example if you want to block all transactions between 10pm and 6am, you can use `TIMERANGE` with the value `22:00-06:00`.\n"
              },
              "timezone": {
                "type": "string",
                "description": "Timezone to use for the time control. A list of valid timezones can be found in our [guide section](/docs/card-controls-1)."
              },
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ]
              }
            }
          },
          "locations": {
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "values",
              "restriction"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "POSTAL_CODE",
                  "REGION"
                ],
                "description": "Type of the location-based control.\n- `POSTAL_CODE`: Then `values` are postal codes\n- `REGION`: Then `values` are region IDs of your organization\n"
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Values for this location control which should be allowed or blocked.\nFor `POSTAL_CODE`, each value is matched in full and case-insensitively against the merchant postal code. A shorter value is not a prefix, and `*` is not a wildcard: `68` matches only `68`, and `68*` matches only the literal `68*`.\nFor `REGION`, each value is a region ID of your organization.\nIf the transaction has no merchant postal code, this control does not decline it.\nExample: to block postal codes `12345` and `67890`, send both values with restriction `BLOCKED`.\n"
              },
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ]
              }
            }
          },
          "countries": {
            "type": "object",
            "nullable": true,
            "required": [
              "restriction",
              "values"
            ],
            "description": "Optional object defining country-based transaction restrictions.\nYou can configure cards to either allow transactions only in specified countries (whitelist)\nor block transactions in specified countries (blacklist).\nCountry codes must be valid ISO 3166-1 alpha-3 codes (e.g., `DEU`, `AUT`, `USA`).\nThis control is not available for US-issued cards.\n",
            "properties": {
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ],
                "description": "Defines the restriction type for the country control.\n- `ALLOWED`: Only transactions in the listed countries are permitted (whitelist).\n- `BLOCKED`: Transactions in the listed countries are declined (blacklist).\n"
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of ISO 3166-1 alpha-3 country codes (e.g., `DEU`, `AUT`, `USA`).\nAt least one country code must be provided.\n"
              }
            }
          },
          "currencies": {
            "type": "object",
            "nullable": true,
            "required": [
              "restriction",
              "values"
            ],
            "description": "Optional object defining currency-based transaction restrictions.\nYou can configure cards to either allow transactions only in specified currencies (whitelist)\nor block transactions in specified currencies (blacklist).\nCurrency codes must be valid ISO 4217 codes (e.g., `EUR`, `GBP`, `USD`).\n",
            "properties": {
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED",
                  "BLOCKED"
                ],
                "description": "Defines the restriction type for the currency control.\n- `ALLOWED`: Only transactions in the listed currencies are permitted (whitelist).\n- `BLOCKED`: Transactions in the listed currencies are declined (blacklist).\n"
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of ISO 4217 currency codes (e.g., `EUR`, `GBP`, `USD`).\nAt least one currency code must be provided.\n"
              }
            }
          },
          "acceptanceMethods": {
            "type": "object",
            "nullable": true,
            "required": [
              "type",
              "values",
              "restriction"
            ],
            "description": "Optional object defining which acceptance methods are permitted.\nThis control is an allow-list only. `restriction` must be `ALLOWED`.\nThe methods in `values` are the only ones permitted; every other method is declined.\nThere is no block-list. Do not send `BLOCKED`: it is not applied, and the methods in `values` are stored as the allowed set.\n",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ACCEPTANCE_METHOD"
                ],
                "description": "Type of the acceptance method control to use. Currently only `ACCEPTANCE_METHOD` is supported.\n"
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "ONLINE",
                    "MOBILE_WALLET",
                    "MANUAL_ENTRY",
                    "CONTACTLESS",
                    "CHIP_DIP",
                    "NOT_AVAILABLE",
                    "MAGNETIC_STRIPE",
                    "OTHER"
                  ]
                },
                "description": "List of acceptance methods that are allowed for transactions. \nOnly the methods listed here will be permitted if this control is provided.\nPossible values:\n- `ONLINE`: Card-not-present transactions\n- `MOBILE_WALLET`: Payments via mobile wallets (e.g., Apple Pay, Google Pay)\n- `MANUAL_ENTRY`: Card number entered manually\n- `CONTACTLESS`: Tap-based payments\n- `CHIP_DIP`: Inserted chip transactions\n- `NOT_AVAILABLE`: Transactions where acceptance method information is unavailable\n- `MAGNETIC_STRIPE`: Swipe-based payments\n- `OTHER`: Any other unspecified acceptance method\n"
              },
              "restriction": {
                "type": "string",
                "enum": [
                  "ALLOWED"
                ],
                "description": "Must be `ALLOWED`. Only the methods in `values` are permitted.\n`BLOCKED` is not a supported restriction and does not block the methods in `values`.\n"
              }
            }
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "The error code"
          },
          "exceptionId": {
            "type": "string",
            "format": "uuid",
            "description": "The id of the exception that was thrown"
          },
          "message": {
            "type": "string",
            "description": "The cause of the error or further explanations on the error"
          }
        }
      }
    },
    "responses": {
      "400": {
        "description": "Bad Request. The API consumer sent a malformed request which could not be processed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized. The API consumer is not authorized to access the requested resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden. The API consumer is not allowed to access the requested resource.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "404": {
        "description": "Not Found. The requested resource could not be found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "500": {
        "description": "Internal Server Error. The request was not completed due to an internal error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
```