Adyen · Schema
PaymentInstrumentInfo
PaymentsFinancial ServicesFintechAgentic CommercePoint-of-SalePayment Processing
Properties
| Name | Type | Description |
|---|---|---|
| balanceAccountId | string | The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument. |
| bankAccount | object | Contains the business account details. |
| card | object | Contains information about the card. Required when you create a payment instrument of `type` **card**. |
| description | string | Your description for the payment instrument, maximum 300 characters. |
| issuingCountryCode | string | The two-character [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code where the payment instrument is issued. For example, **NL** or **US**. |
| paymentInstrumentGroupId | string | The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/paymentInstrumentGroups__resParam_id) to which the payment instrument belongs. |
| reference | string | Your reference for the payment instrument, maximum 150 characters. |
| status | string | The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **active** by default. However, there can be exceptions for cards based on the `card |
| statusReason | string | The reason for the status of the payment instrument. Possible values: **accountClosure**, **damaged**, **endOfLife**, **expired**, **lost**, **stolen**, **suspectedFraud**, **transactionRule**, **othe |
| type | string | Type of payment instrument. Possible value: **card**, **bankAccount**. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/adyen/main/json-schema/adyen-payment-instrument-info-schema.json",
"title": "PaymentInstrumentInfo",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/adyen-instruments-api-openapi.yml#/components/schemas/PaymentInstrumentInfo",
"properties": {
"balanceAccountId": {
"description": "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/balanceAccounts__resParam_id) associated with the payment instrument.",
"type": "string"
},
"bankAccount": {
"description": "Contains the business account details.",
"$ref": "#/$defs/BankAccountModel"
},
"card": {
"description": "Contains information about the card. Required when you create a payment instrument of `type` **card**.",
"$ref": "#/$defs/CardInfo"
},
"description": {
"description": "Your description for the payment instrument, maximum 300 characters.",
"maxLength": 300,
"type": "string"
},
"issuingCountryCode": {
"description": "The two-character [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code where the payment instrument is issued. For example, **NL** or **US**.",
"type": "string"
},
"paymentInstrumentGroupId": {
"description": "The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/paymentInstrumentGroups__resParam_id) to which the payment instrument belongs.",
"type": "string"
},
"reference": {
"description": "Your reference for the payment instrument, maximum 150 characters.",
"maxLength": 150,
"type": "string"
},
"status": {
"description": "The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **active** by default. However, there can be exceptions for cards based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **inactive**.\n\nPossible values: \n\n * **active**: The payment instrument is active and can be used to make payments. \n\n * **inactive**: The payment instrument is inactive and cannot be used to make payments. \n\n * **suspended**: The payment instrument is suspended, either because it was stolen or lost. \n\n * **closed**: The payment instrument is permanently closed. This action cannot be undone. \n\n",
"enum": [
"active",
"closed",
"inactive",
"suspended"
],
"type": "string"
},
"statusReason": {
"x-addedInVersion": "2",
"description": "The reason for the status of the payment instrument.\n\nPossible values: **accountClosure**, **damaged**, **endOfLife**, **expired**, **lost**, **stolen**, **suspectedFraud**, **transactionRule**, **other**.\nIf the reason is **other**, you must also send the `statusComment` parameter describing the status change.",
"enum": [
"accountClosure",
"damaged",
"endOfLife",
"expired",
"lost",
"other",
"stolen",
"suspectedFraud",
"transactionRule"
],
"type": "string"
},
"type": {
"description": "Type of payment instrument.\n\nPossible value: **card**, **bankAccount**. ",
"enum": [
"bankAccount",
"card"
],
"type": "string"
}
},
"required": [
"balanceAccountId",
"issuingCountryCode",
"type"
],
"type": "object",
"$defs": {
"Authentication": {
"properties": {
"email": {
"description": "The email address where the one-time password (OTP) is sent.",
"type": "string"
},
"password": {
"description": "The password used for 3D Secure password-based authentication. The value must be between 1 to 30 characters and must only contain the following supported characters.\n\n* Characters between **a-z**, **A-Z**, and **0-9**\n\n* Special characters: **+-*/%()=?!#'\",;:$&**",
"maxLength": 30,
"minLength": 1,
"type": "string"
},
"phone": {
"description": "The phone number where the one-time password (OTP) is sent.\n\nThis object must have:\n\n* A `type` set to **mobile**.\n\n* A `number` with a valid country code.\n\n* A `number` with more than 4 digits, excluding the country code.\n\n>Make sure to verify that the card user owns the phone number.",
"$ref": "#/$defs/Phone"
}
},
"type": "object"
},
"BankAccountModel": {
"properties": {
"formFactor": {
"description": "Form factor of the bank account - **virtual** or **physical** (default)",
"enum": [
"physical",
"unknown",
"virtual"
],
"type": "string"
}
},
"type": "object"
},
"BulkAddress": {
"properties": {
"city": {
"description": "The name of the city.",
"type": "string"
},
"company": {
"description": "The name of the company.",
"type": "string"
},
"country": {
"description": "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.",
"type": "string"
},
"email": {
"description": "The email address.",
"type": "string"
},
"houseNumberOrName": {
"description": "The house number or name.",
"type": "string"
},
"mobile": {
"description": "The full telephone number.",
"type": "string"
},
"postalCode": {
"description": "The postal code.\n\nMaximum length:\n\n* 5 digits for addresses in the US.\n\n* 10 characters for all other countries.",
"type": "string"
},
"stateOrProvince": {
"description": "The two-letter ISO 3166-2 state or province code.\n\nMaximum length: 2 characters for addresses in the US.",
"type": "string"
},
"street": {
"description": "The streetname of the house.",
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"CardConfiguration": {
"properties": {
"activation": {
"description": "Overrides the activation label design ID defined in the `configurationProfileId`. The activation label is attached to the card and contains the activation instructions.",
"type": "string"
},
"activationUrl": {
"description": "Your app's URL, if you want to activate cards through your app. For example, **my-app://ref1236a7d**. A QR code is created based on this URL, and is included in the carrier. Before you use this field, reach out to your Adyen contact to set up the QR code process. \n\nMaximum length: 255 characters.",
"maxLength": 255,
"type": "string"
},
"bulkAddress": {
"description": "Overrides the shipment bulk address defined in the `configurationProfileId`.",
"$ref": "#/$defs/BulkAddress"
},
"cardImageId": {
"description": "The ID of the card image. This is the image that will be printed on the full front of the card.",
"type": "string"
},
"carrier": {
"description": "Overrides the carrier design ID defined in the `configurationProfileId`. The carrier is the letter or packaging to which the card is attached.",
"type": "string"
},
"carrierImageId": {
"description": "The ID of the carrier image. This is the image that will printed on the letter to which the card is attached.",
"type": "string"
},
"configurationProfileId": {
"description": "The ID of the card configuration profile that contains the settings of the card. For example, the envelope and PIN mailer designs or the logistics company handling the shipment. All the settings in the profile are applied to the card, unless you provide other fields to override them.\n\nFor example, send the `shipmentMethod` to override the logistics company defined in the card configuration profile.",
"type": "string"
},
"currency": {
"description": "The three-letter [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the card. For example, **EUR**.",
"type": "string"
},
"envelope": {
"description": "Overrides the envelope design ID defined in the `configurationProfileId`. ",
"type": "string"
},
"insert": {
"description": "Overrides the insert design ID defined in the `configurationProfileId`. An insert is any additional material, such as marketing materials, that are shipped together with the card.",
"type": "string"
},
"language": {
"description": "The two-letter [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code of the card. For example, **en**.",
"type": "string"
},
"logoImageId": {
"description": "The ID of the logo image. This is the image that will be printed on the partial front of the card, such as a logo on the upper right corner.",
"type": "string"
},
"pinMailer": {
"description": "Overrides the PIN mailer design ID defined in the `configurationProfileId`. The PIN mailer is the letter on which the PIN is printed.",
"type": "string"
},
"shipmentMethod": {
"description": "Overrides the logistics company defined in the `configurationProfileId`.",
"type": "string"
}
},
"required": [
"configurationProfileId"
],
"type": "object"
},
"CardInfo": {
"properties": {
"authentication": {
"description": "Contains the card user's password and mobile phone number. This is required when you issue cards that can be used to make online payments within the EEA and the UK, or can be added to digital wallets. Refer to [3D Secure and digital wallets](https://docs.adyen.com/issuing/3d-secure-and-wallets) for more information.",
"$ref": "#/$defs/Authentication"
},
"brand": {
"description": "The brand of the physical or the virtual card.\nPossible values: **visa**, **mc**.",
"type": "string"
},
"brandVariant": {
"description": "The brand variant of the physical or the virtual card. For example, **visadebit** or **mcprepaid**.\n>Reach out to your Adyen contact to get the values relevant for your integration.",
"type": "string"
},
"cardholderName": {
"description": "The name of the cardholder.\n Maximum length: 26 characters.",
"maxLength": 26,
"type": "string"
},
"configuration": {
"description": "Settings required when creating a physical or a virtual card. \n\nReach out to your Adyen contact to get the values that you can send in this object.",
"$ref": "#/$defs/CardConfiguration"
},
"deliveryContact": {
"x-addedInVersion": "2",
"description": "The delivery contact (name and address) for physical card delivery.",
"$ref": "#/$defs/DeliveryContact"
},
"formFactor": {
"description": "The form factor of the card.\nPossible values: **virtual**, **physical**.",
"enum": [
"physical",
"unknown",
"virtual"
],
"type": "string"
},
"threeDSecure": {
"description": "Allocates a specific product range for either a physical or a virtual card. Possible values: **fullySupported**, **secureCorporate**.\n>Reach out to your Adyen contact to get the values relevant for your integration.",
"type": "string"
}
},
"required": [
"formFactor",
"cardholderName",
"brand",
"brandVariant"
],
"type": "object"
},
"DeliveryAddress": {
"properties": {
"city": {
"description": "The name of the city.",
"type": "string"
},
"country": {
"description": "The two-character ISO-3166-1 alpha-2 country code. For example, **US**.\n>If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.",
"type": "string"
},
"line1": {
"description": "The street name. For example, if the address is \"Rokin 49\", provide \"Rokin\".",
"type": "string"
},
"line2": {
"description": "The house number or name. For example, if the address is \"Rokin 49\", provide \"49\".",
"type": "string"
},
"line3": {
"description": "Optional information about the address.",
"type": "string"
},
"postalCode": {
"description": "The postal code.\nMaximum length:\n* 5 digits for an address in the US.\n* 10 characters for an address in all other countries.",
"type": "string"
},
"stateOrProvince": {
"description": "The two-letterISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada.\n> Required for the US and Canada.",
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"DeliveryContact": {
"properties": {
"address": {
"description": "The address of the contact.",
"$ref": "#/$defs/DeliveryAddress"
},
"email": {
"description": "The email address of the contact.",
"type": "string"
},
"fullPhoneNumber": {
"description": "The full phone number of the contact provided as a single string. It will be handled as a landline phone.\n**Examples:** \"0031 6 11 22 33 44\", \"+316/1122-3344\", \"(0031) 611223344\"",
"type": "string"
},
"name": {
"description": "The name of the contact.",
"$ref": "#/$defs/Name"
},
"phoneNumber": {
"description": "The phone number of the contact.",
"$ref": "#/$defs/PhoneNumber"
},
"webAddress": {
"description": "The URL of the contact's website.",
"type": "string"
}
},
"required": [
"name",
"address"
],
"type": "object"
},
"Name": {
"properties": {
"firstName": {
"description": "The first name.",
"type": "string"
},
"lastName": {
"description": "The last name.",
"type": "string"
}
},
"required": [
"firstName",
"lastName"
],
"type": "object"
},
"Phone": {
"properties": {
"number": {
"description": "The full phone number provided as a single string. \nFor example, **\"0031 6 11 22 33 44\"**, **\"+316/1122-3344\"**, \n\n or **\"(0031) 611223344\"**.",
"type": "string"
},
"type": {
"description": "Type of phone number.\nPossible values: \n**Landline**, **Mobile**.\n",
"enum": [
"landline",
"mobile"
],
"type": "string"
}
},
"required": [
"number",
"type"
],
"type": "object"
},
"PhoneNumber": {
"properties": {
"phoneCountryCode": {
"description": "The two-character ISO-3166-1 alpha-2 country code of the phone number.\nFor example, **US** or **NL**.",
"type": "string"
},
"phoneNumber": {
"description": "The phone number.\nThe inclusion of the phone number country code is not necessary.",
"type": "string"
},
"phoneType": {
"description": "The type of the phone number.\nPossible values: **Landline**, **Mobile**, **SIP**, **Fax**.",
"enum": [
"Fax",
"Landline",
"Mobile",
"SIP"
],
"type": "string"
}
},
"type": "object"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/adyen-payment-instrument-info"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.