IF · Schema

AccountCreateRequest

CompanyFinancial ServicesEmbedded FinanceBanking as a ServicePaymentsCardsForeign ExchangeComplianceOpen Banking

Properties

Name Type Description
workflow object
data object
connect object
metadata object
View JSON Schema on GitHub

JSON Schema

if-account-create-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/if/main/json-schema/if-account-create-request-schema.json",
  "title": "AccountCreateRequest",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/if-account-api-openapi.yml#/components/schemas/AccountCreateRequest",
  "required": [
    "connect",
    "data",
    "metadata",
    "workflow"
  ],
  "type": "object",
  "properties": {
    "workflow": {
      "$ref": "#/$defs/AccountCreateWorkflowContainer"
    },
    "data": {
      "$ref": "#/$defs/AccountCreateDataContainer"
    },
    "connect": {
      "$ref": "#/$defs/AccountCreateConnectContainer"
    },
    "metadata": {
      "$ref": "#/$defs/AccountCreateMetadataContainer"
    }
  },
  "$defs": {
    "Account": {
      "required": [
        "accountHolderIdentityType",
        "clientId",
        "country",
        "currency",
        "id",
        "ledgerNumber",
        "mainAccountId",
        "routingCodes",
        "serviceProvider",
        "status"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "id of account",
          "format": "uuid",
          "readOnly": true
        },
        "clientId": {
          "type": "string",
          "description": "id of client",
          "format": "uuid"
        },
        "status": {
          "$ref": "#/$defs/AccountStatus"
        },
        "country": {
          "maxLength": 2,
          "minLength": 2,
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country code",
          "readOnly": true
        },
        "currency": {
          "maxLength": 3,
          "minLength": 3,
          "type": "string",
          "description": "ISO 4217 currency code"
        },
        "alias": {
          "maxLength": 30,
          "type": "string",
          "description": "alias of account, refer to Accounts section in Guides for details"
        },
        "routingCodes": {
          "$ref": "#/$defs/RoutingCodeMap"
        },
        "iban": {
          "maxLength": 31,
          "minLength": 15,
          "pattern": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{4}([a-zA-Z0-9]?){3,19}$|^[A-Z]{2}\\d{5}[0-9A-Z]{13}$",
          "type": [
            "string",
            "null"
          ],
          "description": "iban assigned to account",
          "readOnly": true
        },
        "accountNumber": {
          "maxLength": 20,
          "minLength": 8,
          "pattern": "^[0-9]{8,20}$",
          "type": [
            "string",
            "null"
          ],
          "description": "account number assigned to account",
          "readOnly": true
        },
        "accountHolderName": {
          "type": "string"
        },
        "ledgerNumber": {
          "maxLength": 8,
          "minLength": 8,
          "pattern": "^[0-9]{8,8}$",
          "type": "string",
          "description": "unique ledger number of account generated internally",
          "readOnly": true
        },
        "availableBalance": {
          "type": "number",
          "description": "available balance of account",
          "format": "double",
          "readOnly": true
        },
        "receivableBalance": {
          "type": "number",
          "description": "receivable balance of account",
          "format": "double",
          "readOnly": true
        },
        "payableBalance": {
          "type": "number",
          "description": "payable balance of account",
          "format": "double",
          "readOnly": true
        },
        "accountHolderIdentityType": {
          "$ref": "#/$defs/LegalEntityType"
        },
        "connection": {
          "$ref": "#/$defs/AccountConnectionResource"
        },
        "serviceProvider": {
          "type": "string",
          "description": "service provider which this account connected to",
          "readOnly": true
        },
        "mainAccountId": {
          "type": "string",
          "description": "the main account id which the given account is linked to",
          "format": "uuid",
          "readOnly": true
        },
        "attributes": {
          "$ref": "#/$defs/AttributeMap"
        }
      }
    },
    "AccountConnectionResource": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "serviceProvider": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "state": {
          "$ref": "#/$defs/ServiceProviderConnectionState"
        },
        "status": {
          "$ref": "#/$defs/ThirdPartyAccountStatus"
        },
        "method": {
          "$ref": "#/$defs/ConnectMethod"
        },
        "error": {
          "$ref": "#/$defs/ConnectionErrorResource"
        }
      },
      "description": "Account Connection Resource Object",
      "readOnly": true
    },
    "AccountCreateConnectContainer": {
      "required": [
        "type"
      ],
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "service provider selection type",
          "enum": [
            "explicit"
          ]
        },
        "serviceProvider": {
          "type": "string",
          "description": "account is connected to this service provider"
        },
        "method": {
          "$ref": "#/$defs/ConnectMethod"
        }
      }
    },
    "AccountCreateDataContainer": {
      "required": [
        "account"
      ],
      "type": "object",
      "properties": {
        "account": {
          "$ref": "#/$defs/Account"
        },
        "sourceId": {
          "type": "string",
          "description": "id of the account to be migrated, required if workflow is migration",
          "writeOnly": true
        }
      }
    },
    "AccountCreateMetadataContainer": {
      "type": "object"
    },
    "AccountCreateWorkflowContainer": {
      "required": [
        "code"
      ],
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "workflow code",
          "enum": [
            "client.issuing",
            "client.sub-account",
            "client.migration"
          ]
        }
      }
    },
    "AccountStatus": {
      "type": "string",
      "description": "status of account",
      "readOnly": true,
      "enum": [
        "pending",
        "active",
        "inactive",
        "suspended",
        "closed",
        "declined"
      ]
    },
    "AttributeMap": {
      "type": "object",
      "description": "attributes of account"
    },
    "ConnectMethod": {
      "type": "string",
      "enum": [
        "built-in",
        "plug-in"
      ]
    },
    "ConnectionErrorResource": {
      "type": "object",
      "properties": {
        "category": {
          "$ref": "#/$defs/ErrorCategory"
        },
        "origin": {
          "$ref": "#/$defs/ErrorOrigin"
        },
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "ErrorCategory": {
      "type": "string",
      "enum": [
        "functional",
        "technical"
      ]
    },
    "ErrorOrigin": {
      "type": "string",
      "enum": [
        "customer",
        "platform",
        "provider"
      ]
    },
    "LegalEntityType": {
      "type": "string",
      "description": "type of account holder client's identity",
      "readOnly": true,
      "enum": [
        "corporate",
        "individual"
      ]
    },
    "RoutingCodeMap": {
      "type": "object",
      "description": "routing codes of account as map, refer to Accounts section in Guides for details",
      "readOnly": true
    },
    "ServiceProviderConnectionState": {
      "type": "string",
      "enum": [
        "pending",
        "creation-in-progress",
        "update-in-progress",
        "dependency-completed",
        "completed-up-to-date",
        "completed-outdated",
        "dependency-failed",
        "creation-failed"
      ]
    },
    "ThirdPartyAccountStatus": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed"
      ]
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/if-account-create-request"
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.