---
updatedAt: 2026-04-21T09:28:39.000Z
agentTools:
  projectIndex: https://customer-api.getpliant.com/llms.txt
---

# Callback: Add/Update

Subscribe to callbacks for this entity or change an existing callback.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "contact": {
      "name": "API Support",
      "email": "support@getpliant.com",
      "url": "https://www.getpliant.com"
    },
    "title": "Pliant Customer API",
    "description": "Pliant Customer 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": "Accounting Projects",
      "description": "This tag is for operations related to accounting projects"
    }
  ],
  "paths": {
    "/accounting/projects": {
      "get": {
        "summary": "List Projects",
        "description": "Returns a list of projects. Projects act as a cost unit for accounting purposes. You can use the `limit`, `page`, `sortBy` and `sortDirection` parameters to filter and sort the results.",
        "tags": [
          "Accounting Projects"
        ],
        "operationId": "get-projects",
        "parameters": [
          {
            "name": "organizationId",
            "in": "query",
            "required": true,
            "description": "The unique identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "The status to filter by.",
            "schema": {
              "type": "string",
              "enum": [
                "ACTIVE",
                "INACTIVE"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of items to return per page. The default value if not provided is 100, the maximum allowed value is 1000.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page number to return, starting with 0, this counts up to the total number of pages. The total number of pages is determined by the total number of records divided by the limit.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "The field to sort by.",
            "schema": {
              "type": "string",
              "enum": [
                "organizationId",
                "name"
              ]
            }
          },
          {
            "name": "sortDirection",
            "in": "query",
            "description": "The direction to sort by.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "projectId",
                          "name",
                          "costUnit",
                          "status"
                        ],
                        "properties": {
                          "projectId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of the project. This can be changed later."
                          },
                          "costUnit": {
                            "type": "string",
                            "description": "Cost unit of the project. This cannot be changed, once the Project is used in a transaction. Before that, a change is possible."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "ACTIVE",
                              "INACTIVE"
                            ],
                            "description": "Status of the project."
                          },
                          "isPrivate": {
                            "type": "boolean",
                            "description": "Indicator if the project is restricted to 1-n teams."
                          },
                          "teamIds": {
                            "type": "array",
                            "description": "Teams to which the project is restricted.",
                            "items": {
                              "type": "string",
                              "format": "uuid"
                            }
                          }
                        }
                      }
                    },
                    "hasNextPage": {
                      "type": "boolean",
                      "description": "Indicates whether there is a next page available."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/paths/~1cards/get/responses/400"
          },
          "401": {
            "$ref": "#/paths/~1cards/get/responses/401"
          },
          "403": {
            "$ref": "#/paths/~1cards/get/responses/403"
          },
          "500": {
            "$ref": "#/paths/~1cards/get/responses/500"
          }
        }
      }
    },
    "/cards/subscription": {
      "post": {
        "summary": "Callback: Add/Update",
        "description": "Subscribe to callbacks for this entity or change an existing callback.\n",
        "tags": [
          "Cards"
        ],
        "operationId": "create-card-subscription",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "callbackUrl": {
                    "type": "string",
                    "format": "uri",
                    "example": "https://myserver.com/send/callback/here",
                    "description": "The URL to send the callback to. Must be a valid and reachable URL. We do some basic validation to ensure the URL is syntactically correct and reachable for Pliant. Only HTTPS URLs are supported."
                  },
                  "eventTypes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "The event types to subscribe to.\nThe initial flow of events for cards is: \n`CARD_CREATED` - as soon as the card is created within Pliant, \n`CARD_ISSUED` - when the card is issued with the card issuer, and \n`CARD_ACTIVATED` - when the card is activated by the system or [cardholder](/docs/cardholder-entity) (virtual cards get activated automatically by the system, physical card are activated by the cardholder).\nAll other callback types can occur later over the lifetime of the card.\n",
                      "enum": [
                        "CARD_CREATED",
                        "CARD_ISSUED",
                        "CARD_ACTIVATED",
                        "CARD_LOCKED",
                        "CARD_UNLOCKED",
                        "CARD_TERMINATED",
                        "CARD_EXPIRED",
                        "CARD_LIMIT_CHANGED",
                        "CARD_LIMIT_CHANGE_FAILED",
                        "CARD_DETAILS_CHANGED",
                        "CARD_BALANCE_UPDATED",
                        "CARD_AVAILABLE_BALANCE_CHANGED",
                        "CARD_STATUS_CHANGED",
                        "CARD_VALIDITY_UPDATED",
                        "CARD_SHIPPED",
                        "CARD_CLICK_TO_PAY_INFO_CHANGED",
                        "CARD_BENEFIT_LOADED",
                        "CARD_BENEFIT_UNLOADED",
                        "CARD_LIMITS_CHANGED",
                        "CARD_ACCESS_LINK_REQUESTED",
                        "CARD_REASSIGNED"
                      ]
                    }
                  }
                },
                "required": [
                  "callbackUrl",
                  "eventTypes"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "callbacks": {
          "cardUpdated": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_CREATED`, `CARD_ISSUED`, `CARD_ACTIVATED`, `CARD_LOCKED`, `CARD_UNLOCKED`, `CARD_TERMINATED`, `CARD_LIMIT_CHANGED`, `CARD_DETAILS_CHANGED`, `CARD_SHIPPED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "type": "object",
                            "properties": {
                              "eventType": {
                                "type": "string",
                                "description": "The type of event."
                              }
                            }
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the [card account](/docs/card-account)."
                              },
                              "type": {
                                "type": "string",
                                "deprecated": true,
                                "nullable": true,
                                "description": "Deprecated, please use `cardConfig` instead.\n`BLACK` - Physical black premium credit card\n`PHYSICAL` - Physical credit card\n`VIRTUAL` - Virtual credit card\n`SINGLE_USE` - One-time virtual credit card (only one authorization allowed per card)\n`TRAVEL` - Virtual cards used specifically in travel industry related use cases\n",
                                "enum": [
                                  "BLACK",
                                  "PHYSICAL",
                                  "VIRTUAL",
                                  "SINGLE_USE",
                                  "TRAVEL"
                                ]
                              },
                              "cardConfig": {
                                "type": "string",
                                "description": "Please contact your Pliant contact person for details"
                              },
                              "cardDesignId": {
                                "type": "string",
                                "format": "uuid",
                                "nullable": true,
                                "description": "The unique identifier of the card design used for this card. Present only for virtual cards."
                              },
                              "status": {
                                "type": "string",
                                "description": "The status of the card.\n\n**Deprecation Notice:** The status values `PENDING_ACTIVATION`, `PENDING_ISSUANCE`, and `PENDING_REGISTRATION` are deprecated and will be mapped to `PENDING` with appropriate `pendingDetails` in the future. Use `PENDING` with the corresponding `pendingDetails` value instead.\n",
                                "enum": [
                                  "PENDING",
                                  "PENDING_ACTIVATION",
                                  "PENDING_ISSUANCE",
                                  "PENDING_REGISTRATION",
                                  "REQUEST_APPROVED",
                                  "REQUESTED",
                                  "REQUEST_CANCELLED",
                                  "REQUEST_REJECTED",
                                  "ACTIVE",
                                  "LOCKED",
                                  "LOCKED_PIN",
                                  "EXPIRED",
                                  "TERMINATED",
                                  "TERMINATED_LOST",
                                  "TERMINATED_STOLEN"
                                ],
                                "x-enumDescriptions": {
                                  "PENDING": "Card is in a pending state. Check `pendingDetails` for the specific reason.",
                                  "PENDING_ACTIVATION": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_ACTIVATION` instead.~~",
                                  "PENDING_ISSUANCE": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_ISSUANCE` instead.~~",
                                  "PENDING_REGISTRATION": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_REGISTRATION` instead.~~",
                                  "REQUEST_APPROVED": "Card request has been approved.",
                                  "REQUESTED": "Card has been requested.",
                                  "REQUEST_CANCELLED": "Card request has been cancelled.",
                                  "REQUEST_REJECTED": "Card request has been rejected.",
                                  "ACTIVE": "Card is active and can be used.",
                                  "LOCKED": "Card is locked.",
                                  "LOCKED_PIN": "Card is locked due to PIN issues.",
                                  "EXPIRED": "Card has expired.",
                                  "TERMINATED": "Card has been terminated.",
                                  "TERMINATED_LOST": "Card has been terminated because it was lost.",
                                  "TERMINATED_STOLEN": "Card has been terminated because it was stolen."
                                }
                              },
                              "pendingDetails": {
                                "type": "string",
                                "nullable": true,
                                "description": "The internal reason for a card's pending state. This field is only populated when `status` is `PENDING` or one of the deprecated `PENDING_...` statuses, and will be `null` for all non-pending statuses.\n",
                                "enum": [
                                  "PENDING_ACTIVATION",
                                  "PENDING_ISSUANCE",
                                  "PENDING_REGISTRATION",
                                  "PENDING_VALIDITY",
                                  "PENDING_SANCTION_SCREEN",
                                  "PENDING_INFORMATION"
                                ],
                                "x-enumDescriptions": {
                                  "PENDING_ACTIVATION": "Card is pending activation.",
                                  "PENDING_ISSUANCE": "Card is pending issuance.",
                                  "PENDING_REGISTRATION": "Card is pending registration.",
                                  "PENDING_VALIDITY": "Card is pending validity period.",
                                  "PENDING_SANCTION_SCREEN": "Card is pending sanction screening.",
                                  "PENDING_INFORMATION": "Card is pending additional information."
                                }
                              },
                              "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`",
                                "nullable": true
                              },
                              "limitChange": {
                                "type": "object",
                                "description": "Filled only for events of type CARD_LIMIT_CHANGED",
                                "nullable": true,
                                "properties": {
                                  "beforeChange": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "limit": {
                                        "type": "object",
                                        "properties": {
                                          "value": {
                                            "type": "number"
                                          },
                                          "currency": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      "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"
                                      },
                                      "transactionLimit": {
                                        "type": "object",
                                        "properties": {
                                          "value": {
                                            "type": "number"
                                          },
                                          "currency": {
                                            "type": "string"
                                          }
                                        }
                                      }
                                    }
                                  },
                                  "afterChange": {
                                    "type": "object",
                                    "nullable": true,
                                    "properties": {
                                      "limit": {
                                        "type": "object",
                                        "properties": {
                                          "value": {
                                            "type": "number"
                                          },
                                          "currency": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      "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"
                                      },
                                      "transactionLimit": {
                                        "type": "object",
                                        "properties": {
                                          "value": {
                                            "type": "number"
                                          },
                                          "currency": {
                                            "type": "string"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "isBenefit": {
                                "type": "boolean",
                                "description": "Indicates that the card was issued as an employee benefit.",
                                "nullable": true
                              },
                              "clickToPayInfo": {
                                "$ref": "#/paths/~1cards/post/responses/200/content/application~1json/schema/properties/clickToPayInfo"
                              },
                              "fundingType": {
                                "type": "string",
                                "description": "* `CHARGE` - normal (non-benefit) credit card\n* `LOAD_BASED_ACCRUING` - benefit card where money not spent is transferred to the next month\n* `LOAD_BASED_NON_ACCRUING` - benefit card where money not spent is lost end of month\n* `BALANCE_BASED` - benefit card with a standing balance that persists across months and is spent down until depleted (no monthly reset).\n",
                                "enum": [
                                  "CHARGE",
                                  "LOAD_BASED_ACCRUING",
                                  "LOAD_BASED_NON_ACCRUING",
                                  "BALANCE_BASED"
                                ]
                              },
                              "nextLoadDate": {
                                "type": "string",
                                "format": "date",
                                "description": "For cards that are loaded periodically, indicates the date when the card will be loaded the next time.",
                                "nullable": true
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardBalanceUpdated": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_BALANCE_UPDATED`. Hint: all cards are issued with zero limit until they are activated. The limit is updated to the desired amount when the card is activated.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "organizationId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The card account to which the card belongs."
                              },
                              "availableBalance": {
                                "type": "object",
                                "description": "The available balance 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."
                                  }
                                }
                              },
                              "spendingBalance": {
                                "type": "object",
                                "description": "The spending balance 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."
                                  }
                                }
                              },
                              "transactionLimit": {
                                "type": "object",
                                "description": "The transaction limit of the card, describing the maximum amount a single transaction can have on this 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."
                                  }
                                }
                              },
                              "limit": {
                                "type": "object",
                                "description": "The limit of the card, describing the overall limit of this 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."
                                  }
                                }
                              },
                              "isBenefit": {
                                "type": "boolean",
                                "nullable": true,
                                "description": "Indicates that the card was issued as an employee benefit."
                              },
                              "fundingType": {
                                "type": "string",
                                "description": "* `CHARGE` - normal (non-benefit) credit card\n* `LOAD_BASED_ACCRUING` - benefit card where money not spent is transferred to the next month\n* `LOAD_BASED_NON_ACCRUING` - benefit card where money not spent is lost end of month\n* `BALANCE_BASED` - benefit card with a standing balance that persists across months and is spent down until depleted (no monthly reset).\n",
                                "enum": [
                                  "CHARGE",
                                  "LOAD_BASED_ACCRUING",
                                  "LOAD_BASED_NON_ACCRUING",
                                  "BALANCE_BASED"
                                ]
                              },
                              "nextLoadDate": {
                                "type": "string",
                                "format": "date",
                                "nullable": true,
                                "description": "For cards that are loaded periodically, indicates the date when the card will be loaded the next time."
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardAvailableBalanceChanged": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/0"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/1"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/2"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/3"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/4"
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_AVAILABLE_BALANCE_CHANGED`.\nFired whenever the card's available balance is set or changes (value or currency), including the initial population when the card balance is first established.\n",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the organization this card belongs to."
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the cardholder this card belongs to."
                              },
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the card whose available balance changed."
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the [card account](/docs/card-account) this card belongs to."
                              },
                              "availableBalance": {
                                "type": "object",
                                "nullable": true,
                                "description": "The available balance of the card after the change.",
                                "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."
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardExpired": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_EXPIRED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "organizationId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The card account to which this card belongs to."
                              },
                              "expirationDate": {
                                "type": "string",
                                "description": "Date when card expires. For cards with type `SINGLE_USE` this is set to 12 months automatically and every value put here is ignored.",
                                "format": "date-time"
                              },
                              "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
                              },
                              "isBenefit": {
                                "type": "boolean",
                                "description": "Indicates that the card was issued as an employee benefit.",
                                "nullable": true
                              },
                              "fundingType": {
                                "type": "string",
                                "description": "* `CHARGE` - normal (non-benefit) credit card\n* `LOAD_BASED_ACCRUING` - benefit card where money not spent is transferred to the next month\n* `LOAD_BASED_NON_ACCRUING` - benefit card where money not spent is lost end of month\n* `BALANCE_BASED` - benefit card with a standing balance that persists across months and is spent down until depleted (no monthly reset).\n",
                                "enum": [
                                  "CHARGE",
                                  "LOAD_BASED_ACCRUING",
                                  "LOAD_BASED_NON_ACCRUING",
                                  "BALANCE_BASED"
                                ]
                              },
                              "nextLoadDate": {
                                "type": "string",
                                "format": "date",
                                "description": "For cards that are loaded periodically, indicates the date when the card will be loaded the next time.",
                                "nullable": true
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardStatusChanged": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_STATUS_CHANGED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the [card account](/docs/card-account)."
                              },
                              "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. Please refer to the [guide section](/docs/card-entity) to learn more about this. Please contact your Pliant contact person for details"
                              },
                              "status": {
                                "type": "string",
                                "description": "The current status of the card.\n\n**Deprecation Notice:** The status values `PENDING_ACTIVATION`, `PENDING_ISSUANCE`, and `PENDING_REGISTRATION` are deprecated and will be mapped to `PENDING` with appropriate `pendingDetails` in the future. Use `PENDING` with the corresponding `pendingDetails` value instead.\n",
                                "enum": [
                                  "PENDING",
                                  "PENDING_ACTIVATION",
                                  "PENDING_ISSUANCE",
                                  "PENDING_REGISTRATION",
                                  "REQUEST_APPROVED",
                                  "REQUESTED",
                                  "REQUEST_CANCELLED",
                                  "REQUEST_REJECTED",
                                  "ACTIVE",
                                  "LOCKED",
                                  "LOCKED_PIN",
                                  "EXPIRED",
                                  "TERMINATED",
                                  "TERMINATED_LOST",
                                  "TERMINATED_STOLEN"
                                ],
                                "x-enumDescriptions": {
                                  "PENDING": "Card is in a pending state. Check `pendingDetails` for the specific reason.",
                                  "PENDING_ACTIVATION": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_ACTIVATION` instead.~~",
                                  "PENDING_ISSUANCE": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_ISSUANCE` instead.~~",
                                  "PENDING_REGISTRATION": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_REGISTRATION` instead.~~",
                                  "REQUEST_APPROVED": "Card request has been approved.",
                                  "REQUESTED": "Card has been requested.",
                                  "REQUEST_CANCELLED": "Card request has been cancelled.",
                                  "REQUEST_REJECTED": "Card request has been rejected.",
                                  "ACTIVE": "Card is active and can be used.",
                                  "LOCKED": "Card is locked.",
                                  "LOCKED_PIN": "Card is locked due to PIN issues.",
                                  "EXPIRED": "Card has expired.",
                                  "TERMINATED": "Card has been terminated.",
                                  "TERMINATED_LOST": "Card has been terminated because it was lost.",
                                  "TERMINATED_STOLEN": "Card has been terminated because it was stolen."
                                }
                              },
                              "pendingDetails": {
                                "type": "string",
                                "nullable": true,
                                "description": "The internal reason for a card's pending state. This field is only populated when `status` is `PENDING` or one of the deprecated `PENDING_...` statuses, and will be `null` for all non-pending statuses.\n",
                                "enum": [
                                  "PENDING_ACTIVATION",
                                  "PENDING_ISSUANCE",
                                  "PENDING_REGISTRATION",
                                  "PENDING_VALIDITY",
                                  "PENDING_SANCTION_SCREEN",
                                  "PENDING_INFORMATION"
                                ],
                                "x-enumDescriptions": {
                                  "PENDING_ACTIVATION": "Card is pending activation.",
                                  "PENDING_ISSUANCE": "Card is pending issuance.",
                                  "PENDING_REGISTRATION": "Card is pending registration.",
                                  "PENDING_VALIDITY": "Card is pending validity period.",
                                  "PENDING_SANCTION_SCREEN": "Card is pending sanction screening.",
                                  "PENDING_INFORMATION": "Card is pending additional information."
                                }
                              },
                              "clickToPayInfo": {
                                "$ref": "#/paths/~1cards/post/responses/200/content/application~1json/schema/properties/clickToPayInfo"
                              },
                              "statusBeforeChange": {
                                "type": "string",
                                "description": "The previous status of the card before the change.\n\n**Deprecation Notice:** The status values `PENDING_ACTIVATION`, `PENDING_ISSUANCE`, and `PENDING_REGISTRATION` are deprecated and will be mapped to `PENDING` with appropriate `pendingDetails` in the future. Use `PENDING` with the corresponding `pendingDetails` value instead.\n",
                                "enum": [
                                  "PENDING",
                                  "PENDING_ACTIVATION",
                                  "PENDING_ISSUANCE",
                                  "PENDING_REGISTRATION",
                                  "REQUEST_APPROVED",
                                  "REQUESTED",
                                  "REQUEST_CANCELLED",
                                  "REQUEST_REJECTED",
                                  "ACTIVE",
                                  "LOCKED",
                                  "LOCKED_PIN",
                                  "EXPIRED",
                                  "TERMINATED",
                                  "TERMINATED_LOST",
                                  "TERMINATED_STOLEN"
                                ],
                                "x-enumDescriptions": {
                                  "PENDING": "Card was in a pending state. Check `pendingDetails` for the specific reason.",
                                  "PENDING_ACTIVATION": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_ACTIVATION` instead.~~",
                                  "PENDING_ISSUANCE": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_ISSUANCE` instead.~~",
                                  "PENDING_REGISTRATION": "~~(Deprecated) Use `PENDING` with `pendingDetails: PENDING_REGISTRATION` instead.~~",
                                  "REQUEST_APPROVED": "Card request was approved.",
                                  "REQUESTED": "Card was requested.",
                                  "REQUEST_CANCELLED": "Card request was cancelled.",
                                  "REQUEST_REJECTED": "Card request was rejected.",
                                  "ACTIVE": "Card was active and could be used.",
                                  "LOCKED": "Card was locked.",
                                  "LOCKED_PIN": "Card was locked due to PIN issues.",
                                  "EXPIRED": "Card expired.",
                                  "TERMINATED": "Card was terminated.",
                                  "TERMINATED_LOST": "Card was terminated because it was lost.",
                                  "TERMINATED_STOLEN": "Card was terminated because it was stolen."
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardValidityUpdated": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_VALIDITY_UPDATED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the card."
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the organization."
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the cardholder."
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the [card account](/docs/card-account)."
                              },
                              "validFrom": {
                                "type": "string",
                                "format": "date",
                                "nullable": true,
                                "description": "The start date of the validity period in which the card is usable for purchases.",
                                "example": "2024-01-30"
                              },
                              "validTo": {
                                "type": "string",
                                "format": "date",
                                "nullable": true,
                                "description": "The end date of the validity period in which the card is usable for purchases.",
                                "example": "2024-12-31"
                              },
                              "timezone": {
                                "type": "string",
                                "nullable": true,
                                "description": "The timezone for the validity period.",
                                "example": "Europe/Berlin"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardLimitChangeFailed": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_LIMIT_CHANGE_FAILED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "limitChangeFailure": {
                                "type": "string",
                                "description": "Description of why the limit change failed."
                              },
                              "attemptedLimitChange": {
                                "type": "object",
                                "properties": {
                                  "limit": {
                                    "type": "object",
                                    "description": "The limit that was attempted to set. See [card](/docs/card-entity).",
                                    "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)!"
                                      }
                                    }
                                  },
                                  "transactionLimit": {
                                    "type": "object",
                                    "description": "The transaction limit that was attempted to set. See [card](/docs/card-entity).",
                                    "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 limit that was attempted to set. See [card](/docs/card-entity).\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\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"
                                  },
                                  "maxTransactionCount": {
                                    "type": "number",
                                    "minimum": 1,
                                    "maximum": 999999999,
                                    "description": "The maximum number of transactions that was attempted to set. See [card](/docs/card-entity). Optional field to describe the maximum number of transactions within the range of `1..999999999` that can be performed with this card. If not provided, the card can be used for an unlimited number of transactions until the card expires."
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardClickToPayInfoChanged": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/0"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/1"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/2"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/3"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/4"
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_CLICK_TO_PAY_INFO_CHANGED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the card."
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the organization."
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the cardholder."
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the [card account](/docs/card-account)."
                              },
                              "clickToPayInfo": {
                                "$ref": "#/paths/~1cards/post/responses/200/content/application~1json/schema/properties/clickToPayInfo"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardBenefitLoaded": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/0"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/1"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/2"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/3"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/4"
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_BENEFIT_LOADED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "type": "object",
                            "required": [
                              "organizationId",
                              "cardId",
                              "cardAccountId",
                              "loadAmount"
                            ],
                            "properties": {
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The ID of the organization.",
                                "example": "54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df"
                              },
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The ID of the card that was loaded.",
                                "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The ID of the card account associated with the card.",
                                "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
                              },
                              "loadAmount": {
                                "type": "object",
                                "description": "The amount loaded onto 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.",
                                    "example": 5000
                                  },
                                  "currency": {
                                    "type": "string",
                                    "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar.",
                                    "example": "EUR"
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardBenefitUnloaded": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/0"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/1"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/2"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/3"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/4"
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_BENEFIT_UNLOADED`.",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "type": "object",
                            "required": [
                              "organizationId",
                              "cardId",
                              "cardAccountId",
                              "unloadAmount"
                            ],
                            "properties": {
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The ID of the organization.",
                                "example": "54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df"
                              },
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The ID of the card that was unloaded.",
                                "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The ID of the card account associated with the card.",
                                "example": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
                              },
                              "unloadAmount": {
                                "type": "object",
                                "description": "The amount unloaded from 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.",
                                    "example": 5000
                                  },
                                  "currency": {
                                    "type": "string",
                                    "description": "The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar.",
                                    "example": "EUR"
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardLimitsChanged": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/0"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/1"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/2"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/3"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/4"
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_LIMITS_CHANGED`.\nFired when additional limits are created, updated, or removed on a card. The payload includes the full updated `additionalLimits[]` array and the `cardAccountId`.\n",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the card whose additional limits changed."
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "nullable": true,
                                "description": "The unique identifier of the card account this card belongs to."
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the organization this card belongs to."
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the cardholder this card belongs to."
                              },
                              "additionalLimits": {
                                "type": "array",
                                "description": "The full current set of additional limits on the card after the change. An empty array indicates all additional limits were removed.",
                                "items": {
                                  "type": "object",
                                  "description": "An additional limit entry in the CARD_LIMITS_CHANGED callback payload. This shape differs from the GET card response — it includes `limitRenewDate` directly and does not include `balanceInfo`.",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "format": "uuid",
                                      "description": "The unique identifier of this additional limit."
                                    },
                                    "limitRenewFrequency": {
                                      "type": "string",
                                      "nullable": true,
                                      "enum": [
                                        "PER_TRANSACTION",
                                        "DAILY",
                                        "WEEKLY",
                                        "MONTHLY",
                                        "QUARTERLY",
                                        "ANNUAL",
                                        "TOTAL"
                                      ],
                                      "description": "The renewal frequency of this additional 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.\n"
                                    },
                                    "limitRenewDate": {
                                      "type": "string",
                                      "format": "date",
                                      "nullable": true,
                                      "description": "Date when this additional limit's balance will next be renewed, e.g. `2026-06-01`. Null for `TOTAL` frequency limits."
                                    },
                                    "limit": {
                                      "type": "object",
                                      "nullable": true,
                                      "description": "The monetary cap for this additional limit.",
                                      "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": "Maximum number of transactions allowed under this additional limit within its renewal period. Null if no transaction-count cap is configured."
                                    },
                                    "scope": {
                                      "type": "object",
                                      "nullable": true,
                                      "description": "The scope restriction of this additional limit. Null when no scope is defined.",
                                      "properties": {
                                        "categories": {
                                          "type": "array",
                                          "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",
                                          "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",
                                          "description": "When `true`, this additional limit applies to ATM withdrawal transactions."
                                        },
                                        "currency": {
                                          "type": "string",
                                          "nullable": true,
                                          "description": "ISO 4217 currency code this limit is scoped to, e.g. `PLN`. Null when no currency scope is defined."
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardAccessLinkRequested": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/0"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/1"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/2"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/3"
                  },
                  {
                    "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardReassigned/{$request.body#~1callbackUrl}/post/parameters/4"
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_ACCESS_LINK_REQUESTED`.\nFired when a new card access link has been requested. The payload includes the data required to send out an access link to the cardholder.\n",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The Pliant card id (UUIDv4) of the card."
                              },
                              "cardholderId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The id (UUIDv4) of the cardholder this card has been issued for."
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The id (UUIDv4) of the organization this cardholder and card belong to."
                              },
                              "accessLink": {
                                "type": "string",
                                "description": "The access link to that the user can use to access the card."
                              },
                              "expiryDate": {
                                "type": "string",
                                "description": "The point in time this access link expires.",
                                "example": "2026-01-01T00:00:00Z",
                                "format": "date-time"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          },
          "cardReassigned": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "description": "This callback object is used for the following event types: `CARD_REASSIGNED`.\nFired once per card when the card is moved from one [card account](/docs/card-account) to another, for example when a card account is superseded by a successor card account.\nThe card itself is unchanged - card number, expiry date, limits and status stay the same - only the card account the card belongs to changes.\nPartners that store a card to card account mapping should update it to `cardAccountId` when receiving this event.\n",
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "properties": {
                              "cardId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The Pliant card id (UUIDv4) of the card that was reassigned."
                              },
                              "organizationId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The id (UUIDv4) of the organization this card belongs to."
                              },
                              "previousCardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The id of the [card account](/docs/card-account) the card was assigned to before the reassignment. This card account is `SUPERSEDED` from this point on and keeps the history of the card, e.g. its past transactions, statements and account entries."
                              },
                              "cardAccountId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The id of the [card account](/docs/card-account) the card is assigned to now. This is the successor card account, referenced as `supersededBy` on the previous card account. Balance, limits and bank account information of the card are served from this card account from now on."
                              },
                              "reassignedAt": {
                                "type": "string",
                                "format": "date-time",
                                "description": "The point in time the card was reassigned to the new card account.",
                                "example": "2026-01-01T00:00:00Z"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accounting/projects/subscription": {
      "post": {
        "deprecated": false,
        "summary": "Callback: Add/Update",
        "description": "Subscribe to callbacks for this entity or change an existing callback.",
        "tags": [
          "Accounting Projects"
        ],
        "operationId": "create-accounting-project-subscription",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "callbackUrl": {
                    "type": "string",
                    "format": "uri",
                    "example": "https://myserver.com/send/callback/here",
                    "description": "The URL to send the callback to. Must be a valid and reachable URL. We do some basic validation to ensure the URL is syntactically correct and reachable for Pliant. Only HTTPS URLs are supported."
                  },
                  "eventTypes": {
                    "type": "array",
                    "description": "The event types to subscribe to.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "PROJECT_CREATED",
                        "PROJECT_UPDATED",
                        "PROJECT_DELETED",
                        "PROJECT_STATUS_CHANGED"
                      ]
                    }
                  }
                },
                "required": [
                  "callbackUrl",
                  "eventTypes"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "callbacks": {
          "accountingProjectUpdated": {
            "{$request.body#/callbackUrl}": {
              "post": {
                "parameters": [
                  {
                    "in": "header",
                    "name": "X-Organization-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the organization this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Partner-Organization-Id",
                    "schema": {
                      "type": "string",
                      "description": "Filled, if the value `partnerOrganizationId` is [set](/reference/update-organization) by the partner on the organization itself. Referencing the organization identifier of the partner. Example value: `abc123`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Payment-Program-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Referencing the payment program this callback was sent for. See [guides](/docs/callbacks) for more details. Example value: `54e6e7e7-0c23-4a54-bccb-2d3ff2fd02df`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Id",
                    "schema": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this callback. Can be used to deduplicate callbacks to achieve idempotent behavior. See [guides](/docs/callbacks) for more details. Example value: `12a03093-eaad-4ae5-9d8d-42e7f6f8b7c6`."
                    }
                  },
                  {
                    "in": "header",
                    "name": "X-Callback-Created-At",
                    "schema": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date and time when the callback was created. Can be used to reorder callbacks. See [guides](/docs/callbacks) for more details. Example value: `2024-03-15T15:55:58.623375258Z`."
                    }
                  }
                ],
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "allOf": [
                          {
                            "$ref": "#/paths/~1cards~1subscription/post/callbacks/cardUpdated/{$request.body#~1callbackUrl}/post/requestBody/content/application~1json/schema/allOf/0"
                          },
                          {
                            "$ref": "#/paths/~1accounting~1projects/get/responses/200/content/application~1json/schema/properties/data/items"
                          }
                        ]
                      }
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "We expect the partner to return a HTTP 200 status code if the callback was successfully received. On 4xx and 5xx status codes, we will [retry](/docs/callbacks#retries) the callback."
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "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"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
```