Spendesk · Schema
supplier
Spend ManagementCorporate CardsExpense ManagementInvoicesProcurementFintechAccountingPayments
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Supplier ID in Spendesk |
| name | string | Supplier name |
| isArchived | boolean | Indicates if supplier is archived. Archiving suppliers is a feature that needs to be activated in Spendesk. |
| externalIds | array | IDs this supplier has in external systems (ERPs), one entry per system. Only present when `externalIds` is requested through `include`. Not to be confused with `accountPayable.externalId`, which is th |
| accountPayable | objectnull | Account payable assigned to the supplier (if exists) |
| address | object | Supplier's address |
| legalName | stringnull | Legal name of the supplier |
| registrationNo | stringnull | Tax registration number of the supplier |
| vatNo | stringnull | VAT number of the supplier |
| createdAt | object | |
| updatedAt | object | |
| createdBy | stringnull | Id of the user that created the supplier (If available) |
| updatedBy | stringnull | Id of the user that updated the supplier (If available) |
| bic | stringnull | Supplier's bank account BIC (for GET endpoints, backward compatibility) |
| iban | stringnull | Supplier's bank account IBAN (for GET endpoints, backward compatibility) |
| bankCountry | stringnull | Supplier's bank account ISO alpha-2 country code (for GET endpoints, backward compatibility) |
| bankDetailsUpdatedAt | stringnull | Date and time when bank details were last updated (ISO 8601) |
| bankDetailsUpdatedBy | stringnull | Id of the user who last updated the bank details |
| bankInfo | objectnull | Bank information for the supplier (for POST/PATCH endpoints) |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/spendesk/main/json-schema/spendesk-supplier-schema.json",
"title": "supplier",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/spendesk-public-api-openapi.yml#/components/schemas/supplier",
"additionalProperties": false,
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Supplier ID in Spendesk"
},
"name": {
"type": "string",
"description": "Supplier name"
},
"isArchived": {
"type": "boolean",
"description": "Indicates if supplier is archived. Archiving suppliers is a feature that needs to be activated in Spendesk."
},
"externalIds": {
"type": "array",
"description": "IDs this supplier has in external systems (ERPs), one entry per system. Only present when `externalIds` is requested through `include`. Not to be confused with `accountPayable.externalId`, which is the external ID of the account payable rather than of the supplier itself.",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"externalId": {
"type": "string",
"description": "ID of the supplier in the external system."
},
"provider": {
"type": [
"string",
"null"
],
"description": "The external system the ID belongs to (e.g. Netsuite, Xero)."
},
"source": {
"type": [
"string",
"null"
],
"description": "Who recorded the mapping. `native_integration` means a native ERP sync owns it and keeps it up to date; `public_api` means it was set through the API."
}
},
"required": [
"externalId"
]
}
},
"accountPayable": {
"type": [
"object",
"null"
],
"description": "Account payable assigned to the supplier (if exists)",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Internal Spendesk ID of the account payable"
},
"generalAccountCode": {
"type": "string",
"description": "Accounting code of the account payable"
},
"auxiliaryAccountCode": {
"type": [
"string",
"null"
],
"description": "Auxiliary code of the account payable; empty string (never null) if unset"
},
"externalId": {
"type": [
"string",
"null"
],
"description": "ERP ID of the account payable, if available; supplier ERP IDs: externalIds"
}
},
"required": [
"id",
"generalAccountCode"
]
},
"address": {
"type": "object",
"description": "Supplier's address",
"additionalProperties": false,
"properties": {
"line1": {
"type": [
"string",
"null"
],
"description": "Full street address as free text"
},
"line2": {
"type": [
"string",
"null"
],
"description": "Always null; street is in line1"
},
"city": {
"type": [
"string",
"null"
],
"description": "City"
},
"postalCode": {
"type": [
"string",
"null"
],
"description": "Postal/ZIP code"
},
"stateOrCounty": {
"type": [
"string",
"null"
],
"description": "Always null (not stored)"
},
"country": {
"type": [
"string",
"null"
],
"description": "Country as entered at supplier creation time"
}
},
"required": [
"line1",
"line2",
"city",
"postalCode",
"stateOrCounty",
"country"
]
},
"legalName": {
"type": [
"string",
"null"
],
"description": "Legal name of the supplier"
},
"registrationNo": {
"type": [
"string",
"null"
],
"description": "Tax registration number of the supplier"
},
"vatNo": {
"type": [
"string",
"null"
],
"description": "VAT number of the supplier"
},
"createdAt": {
"$ref": "#/$defs/dateTime"
},
"updatedAt": {
"$ref": "#/$defs/dateTime"
},
"createdBy": {
"type": [
"string",
"null"
],
"description": "Id of the user that created the supplier (If available)"
},
"updatedBy": {
"type": [
"string",
"null"
],
"description": "Id of the user that updated the supplier (If available)"
},
"bic": {
"type": [
"string",
"null"
],
"description": "Supplier's bank account BIC (for GET endpoints, backward compatibility)"
},
"iban": {
"type": [
"string",
"null"
],
"description": "Supplier's bank account IBAN (for GET endpoints, backward compatibility)"
},
"bankCountry": {
"type": [
"string",
"null"
],
"description": "Supplier's bank account ISO alpha-2 country code (for GET endpoints, backward compatibility)"
},
"bankDetailsUpdatedAt": {
"type": [
"string",
"null"
],
"description": "Date and time when bank details were last updated (ISO 8601)"
},
"bankDetailsUpdatedBy": {
"type": [
"string",
"null"
],
"description": "Id of the user who last updated the bank details"
},
"bankInfo": {
"type": [
"object",
"null"
],
"description": "Bank information for the supplier (for POST/PATCH endpoints)",
"additionalProperties": false,
"properties": {
"iban": {
"type": [
"string",
"null"
],
"description": "Supplier's bank account IBAN"
},
"bic": {
"type": [
"string",
"null"
],
"description": "Supplier's bank account BIC"
},
"bankCountry": {
"type": [
"string",
"null"
],
"description": "Country where the bank is located"
},
"accountNumber": {
"type": [
"string",
"null"
],
"description": "Bank account number"
},
"routingNumber": {
"type": [
"string",
"null"
],
"description": "Bank routing number (US)"
},
"sortCode": {
"type": [
"string",
"null"
],
"description": "Bank sort code (UK)"
},
"accountHolderName": {
"type": [
"string",
"null"
],
"description": "Name of the account holder"
}
}
}
},
"required": [
"id",
"name",
"isArchived",
"address",
"legalName",
"registrationNo",
"vatNo",
"createdAt",
"updatedAt"
],
"$defs": {
"dateTime": {
"type": "string",
"format": "date-time",
"description": "String containing a UTC datetime expressed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format like `2023-05-12T14:06:40Z`.",
"title": "dateTime"
}
}
}
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/spendesk-supplier"
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.