NMI · Schema
Collection of Fields
PaymentsPayment GatewayPayment ProcessingTokenizationRecurring BillingCustomer VaultFintechEmbedded PaymentsPayment Facilitation
Properties
| Name | Type | Description |
|---|---|---|
| id | object | |
| name | object | |
| description | object | |
| min | integer | The minimum number of records that can be added to the collection. |
| max | integer | The maximum number of records that can be added to the collection. |
| fields | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/nmi/main/json-schema/nmi-package-collection-schema.json",
"title": "Collection of Fields",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/nmi-payments-sign-up-api-openapi.yml#/components/schemas/package-collection",
"type": "object",
"summary": "Fields grouped into a Collection",
"required": [
"id",
"name",
"description",
"min",
"max",
"fields"
],
"properties": {
"id": {
"$ref": "#/$defs/collection-id"
},
"name": {
"$ref": "#/$defs/collection-name"
},
"description": {
"$ref": "#/$defs/collection-description"
},
"min": {
"type": "integer",
"description": "The minimum number of records that can be added to the collection.",
"minimum": 0,
"maximum": 100
},
"max": {
"type": "integer",
"description": "The maximum number of records that can be added to the collection.",
"minimum": 0,
"maximum": 100
},
"fields": {
"$ref": "#/$defs/package-fields"
}
},
"$defs": {
"account-number-field": {
"type": "object",
"title": "String",
"summary": "Bank Account Number field.",
"description": "This field allows the user to set bank account number.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"account_number"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 17
},
"min": {
"type": "integer",
"description": "The minimum length of the field."
},
"max": {
"type": "integer",
"description": "The maximum length of the field."
}
}
},
"boolean-field": {
"type": "object",
"title": "Boolean",
"summary": "Boolean field.",
"description": "This field allows the user to provide a boolean value.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "Type of the field.",
"enum": [
"boolean"
]
},
"default": {
"type": [
"boolean",
"null"
],
"description": "Default value for the field."
}
}
},
"choice-field": {
"type": "object",
"title": "Choice",
"summary": "Single choice field.",
"description": "This field allows the user to select a single value from a list of options.",
"required": [
"id",
"name",
"type",
"required",
"default",
"choices"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "Type of the field.",
"enum": [
"choice"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "Default value for the field.",
"maxLength": 1000
},
"choices": {
"type": "array",
"description": "List of choices.",
"maxItems": 1000,
"items": {
"type": "string",
"maxLength": 1000
}
}
}
},
"collection-description": {
"type": "string",
"description": "The description of the package collection.",
"maxLength": 10000
},
"collection-id": {
"type": "string",
"description": "The unique identifier of the collection.",
"pattern": "^col_[a-z0-9_]{3,46}$",
"minLength": 7,
"maxLength": 50
},
"collection-name": {
"type": "string",
"description": "The name of the package collection.",
"maxLength": 1000
},
"date-field": {
"type": "object",
"title": "Date",
"summary": "Date field.",
"description": "This field allows the user to set a date. Expected format: YYYY-MM-DD",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"date"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"minLength": 10,
"maxLength": 10
},
"min": {
"type": [
"string",
"null"
],
"format": "date",
"minLength": 10,
"maxLength": 10,
"description": "The minimum date that can be submitted."
},
"max": {
"type": [
"string",
"null"
],
"format": "date",
"minLength": 10,
"maxLength": 10,
"description": "The maximum date that can be submitted."
}
}
},
"decimal-field": {
"type": "object",
"title": "Decimal",
"summary": "Decimal field.",
"description": "This field allows the user to enter a decimal value.",
"required": [
"id",
"name",
"type",
"required",
"default",
"min",
"max"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"decimal"
]
},
"default": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The default value for the field if no value is provided."
},
"min": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The minimum value allowed for the field."
},
"max": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The maximum value allowed for the field."
}
}
},
"email-field": {
"type": "object",
"title": "String",
"summary": "Email field.",
"description": "This field allows the user to set an email.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"email"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 1000
},
"min": {
"type": "integer",
"description": "The minimum length of the field."
},
"max": {
"type": "integer",
"description": "The maximum length of the field."
},
"regex": {
"type": [
"string",
"null"
],
"description": "The regular expression that the field must match."
}
}
},
"field-id": {
"type": "string",
"description": "The unique identifier of the field.",
"pattern": "^fld_[a-z0-9_]{3,46}$",
"minLength": 7,
"maxLength": 50
},
"field-name": {
"type": "string",
"description": "Name of the field.",
"maxLength": 1000
},
"field-required": {
"type": "boolean",
"description": "Whether the field is required."
},
"integer-field": {
"type": "object",
"title": "Integer",
"summary": "Integer field.",
"description": "This field allows the user to enter an integer value.",
"required": [
"id",
"name",
"type",
"required",
"default",
"min",
"max"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"integer"
]
},
"default": {
"type": [
"integer",
"null"
],
"description": "The default value for the field if no value is provided."
},
"min": {
"type": "integer",
"description": "The minimum value that can be entered."
},
"max": {
"type": "integer",
"description": "The maximum value that can be entered."
}
}
},
"multiselect-field": {
"type": "object",
"title": "Multi Select",
"summary": "Multi select field.",
"description": "This field allows the user to select several values from a list of options.",
"required": [
"id",
"name",
"type",
"required",
"default",
"choices"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "Type of the field.",
"enum": [
"multiselect"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "Default value for the field.",
"maxLength": 1000
},
"min": {
"type": "integer",
"description": "Minimum number of choices.",
"minimum": 0,
"maximum": 1000
},
"max": {
"type": "integer",
"description": "Maximum number of choices.",
"minimum": 0,
"maximum": 1000
},
"choices": {
"type": "array",
"description": "List of choices.",
"maxItems": 1000,
"items": {
"type": "string",
"maxLength": 1000
}
}
}
},
"package-fields": {
"type": "array",
"description": "Array of package fields",
"maxItems": 1000,
"items": {
"oneOf": [
{
"$ref": "#/$defs/integer-field"
},
{
"$ref": "#/$defs/string-field"
},
{
"$ref": "#/$defs/choice-field"
},
{
"$ref": "#/$defs/multiselect-field"
},
{
"$ref": "#/$defs/boolean-field"
},
{
"$ref": "#/$defs/decimal-field"
},
{
"$ref": "#/$defs/date-field"
},
{
"$ref": "#/$defs/percent-field"
},
{
"$ref": "#/$defs/website-field"
},
{
"$ref": "#/$defs/account-number-field"
},
{
"$ref": "#/$defs/email-field"
},
{
"$ref": "#/$defs/phone-field"
},
{
"$ref": "#/$defs/routing-number-field"
},
{
"$ref": "#/$defs/tax-id-field"
},
{
"$ref": "#/$defs/postal-code-field"
}
]
}
},
"percent-field": {
"type": "object",
"title": "Percent",
"summary": "Percent field.",
"description": "This field allows the user to set a percent amount",
"required": [
"id",
"name",
"type",
"required",
"default",
"min",
"max"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"percent"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 9
},
"min": {
"type": "integer",
"description": "The minimum length of the field."
},
"max": {
"type": "integer",
"description": "The maximum length of the field."
}
}
},
"phone-field": {
"type": "object",
"title": "String",
"summary": "Phone field.",
"description": "This field allows the user to set an phone.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"phone"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 15
}
}
},
"postal-code-field": {
"type": "object",
"title": "String",
"summary": "Postal Code field.",
"description": "This field allows the user to set a postal code field.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"postal_code"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 5
}
}
},
"routing-number-field": {
"type": "object",
"title": "String",
"summary": "Bank Routing Number field.",
"description": "This field allows the user to enter USA bank routing number.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"routing_number"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 9,
"minLength": 9
},
"min": {
"type": "integer",
"description": "The minimum length of the field.",
"maxLength": 9,
"minLength": 9
},
"max": {
"type": "integer",
"description": "The maximum length of the field.",
"maxLength": 9,
"minLength": 9
}
}
},
"string-field": {
"type": "object",
"title": "String",
"summary": "String field.",
"description": "This field allows the user to set a string.",
"required": [
"id",
"name",
"type",
"required",
"default",
"min",
"max",
"regex"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"string"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 1000
},
"min": {
"type": "integer",
"description": "The minimum length of the field."
},
"max": {
"type": "integer",
"description": "The maximum length of the field."
},
"regex": {
"type": [
"string",
"null"
],
"description": "The regular expression that the field must match."
}
}
},
"tax-id-field": {
"type": "object",
"title": "String",
"summary": "Tax ID field.",
"description": "This field allows the user to set a Tax ID.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"ssn",
"federal_tax_id"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 9,
"minLength": 9
},
"min": {
"type": "integer",
"description": "The minimum length of the field.",
"maxLength": 9,
"minLength": 9
},
"max": {
"type": "integer",
"description": "The maximum length of the field.",
"maxLength": 9,
"minLength": 9
}
}
},
"website-field": {
"type": "object",
"title": "String",
"summary": "Website field.",
"description": "This field allows the user to set a website URL.",
"required": [
"id",
"name",
"type",
"required",
"default"
],
"properties": {
"id": {
"$ref": "#/$defs/field-id"
},
"name": {
"$ref": "#/$defs/field-name"
},
"required": {
"$ref": "#/$defs/field-required"
},
"type": {
"type": "string",
"description": "The type of the field.",
"enum": [
"website"
]
},
"default": {
"type": [
"string",
"null"
],
"description": "The default value for the field.",
"maxLength": 1000
},
"min": {
"type": "integer",
"description": "The minimum length of the field."
},
"max": {
"type": "integer",
"description": "The maximum length of the field."
},
"regex": {
"type": [
"string",
"null"
],
"description": "The regular expression that the field must match."
}
}
}
}
}
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/nmi-package-collection"
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.