{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/methodfi/main/json-schema/methodfi-account-list-response-schema.json", "title": "AccountListResponse", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/methodfi-accounts-api-openapi.yml#/components/schemas/AccountListResponse", "allOf": [ { "$ref": "#/$defs/ListEnvelope" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/$defs/Account" } } } } ], "$defs": { "Account": { "type": "object", "description": "An Account represents a financial account (ACH, liability, clearing, or debit card) associated with an Entity. The `type` field indicates which nested details object (`ach`, `liability`, `clearing`, or `debit_card`) is populated. `type` is null for accounts that are disabled before a type was determined.\n", "required": [ "id", "holder_id", "type", "status", "consent_status", "products", "restricted_products", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the account.", "pattern": "^acc_\\w+$" }, "holder_id": { "type": "string", "description": "The entity ID that owns this account.", "pattern": "^ent_\\w+$" }, "type": { "type": [ "string", "null" ], "description": "The type of account. Null for accounts that are disabled before a type was determined.", "enum": [ "ach", "liability", "clearing", "debit_card", null ] }, "status": { "type": "string", "description": "Current status of the account.", "enum": [ "active", "disabled", "processing", "pending_exchange", "closed" ] }, "consent_status": { "type": "string", "description": "Current consent status for data access on this account.", "enum": [ "pending", "withdrawn", "approved" ] }, "ach": { "$ref": "#/$defs/AccountACH" }, "liability": { "$ref": "#/$defs/AccountLiability" }, "clearing": { "$ref": "#/$defs/AccountClearing" }, "debit_card": { "$ref": "#/$defs/AccountDebitCard" }, "error": { "$ref": "#/$defs/AccountResourceError" }, "metadata": { "$ref": "#/$defs/Metadata" }, "products": { "type": "array", "description": "Products currently active for this account.", "items": { "type": "string" } }, "restricted_products": { "type": "array", "description": "Products restricted from this account.", "items": { "type": "string" } }, "subscriptions": { "type": "array", "description": "Subscriptions currently active for this account. Only present for liability accounts.", "items": { "type": "string" } }, "available_subscriptions": { "type": "array", "description": "Subscriptions available to be enrolled for this account. Only present for liability accounts.", "items": { "type": "string" } }, "restricted_subscriptions": { "type": "array", "description": "Subscriptions restricted from this account. Only present for liability accounts.", "items": { "type": "string" } }, "latest_verification_session": { "title": "AccountExpandableLatestVerificationSession", "description": "The latest verification session ID. This field is expandable. When expanded, returns the full AccountVerificationSession object.\n", "oneOf": [ { "type": "string", "pattern": "^avf_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountVerificationSession" } ] }, "balance": { "$ref": "#/$defs/AccountExpandableBalance" }, "payoff": { "$ref": "#/$defs/AccountExpandablePayoff" }, "payment_instrument": { "$ref": "#/$defs/AccountExpandablePaymentInstrument" }, "card_brand": { "$ref": "#/$defs/AccountExpandableCardBrand" }, "update": { "$ref": "#/$defs/AccountExpandableUpdate" }, "attribute": { "$ref": "#/$defs/AccountExpandableAttribute" }, "sensitive": { "$ref": "#/$defs/AccountExpandableSensitive" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the account was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the account was last updated." } } }, "AccountACH": { "type": [ "object", "null" ], "description": "ACH account details. Present when `type` is `ach`.", "properties": { "routing": { "type": "string", "description": "The ACH routing number." }, "number": { "type": "string", "description": "The ACH account number." }, "type": { "type": "string", "description": "The type of ACH account.", "enum": [ "checking", "savings" ] } } }, "AccountAttribute": { "type": "object", "description": "An attribute record for an account containing financial data attributes.", "required": [ "id", "account_id", "status", "attributes", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the account attribute.", "pattern": "^acc_attr_\\w+$" }, "account_id": { "type": "string", "description": "The account this attribute belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the attribute request.", "enum": [ "completed", "pending", "failed" ] }, "attributes": { "type": "object", "description": "Financial data attributes for the account.", "additionalProperties": true }, "error": { "$ref": "#/$defs/ResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the attribute was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the attribute was last updated." } } }, "AccountBalance": { "type": "object", "description": "A balance record for an account.", "required": [ "id", "account_id", "status", "amount", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the balance.", "pattern": "^bal_\\w+$" }, "account_id": { "type": "string", "description": "The account this balance belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the balance request.", "enum": [ "completed", "pending", "failed" ] }, "amount": { "type": [ "number", "null" ], "description": "The balance amount in cents." }, "error": { "$ref": "#/$defs/BalanceResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the balance was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the balance was last updated." } } }, "AccountCardBrand": { "type": "object", "description": "Card brand information for an account.", "required": [ "id", "account_id", "status", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the card brand.", "pattern": "^cbrd_\\w+$" }, "account_id": { "type": "string", "description": "The account this card brand belongs to.", "pattern": "^acc_\\w+$" }, "brands": { "type": [ "array", "null" ], "description": "Array of card brand entries for this account.", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the brand entry." }, "card_product_id": { "type": [ "string", "null" ], "description": "Associated card product ID." }, "description": { "type": "string", "description": "Description of the brand." }, "name": { "type": "string", "description": "Name of the brand." }, "issuer": { "type": "string", "description": "The card issuer." }, "network": { "type": "string", "description": "The card network." }, "network_tier": { "type": "string", "description": "The tier of the card network." }, "type": { "type": [ "string", "null" ], "description": "The brand type." }, "url": { "type": "string", "description": "URL for the brand image." } } } }, "source": { "type": [ "string", "null" ], "description": "Source of the card brand data.", "enum": [ "network", "method", null ] }, "shared": { "type": "boolean", "description": "Whether this card brand record is shared." }, "network": { "type": [ "string", "null" ], "description": "The card network. Deprecated in favor of brands[].network.", "enum": [ "visa", "mastercard", "amex", "discover", null ] }, "issuer": { "type": [ "string", "null" ], "description": "The card issuer. Deprecated in favor of brands[].issuer." }, "last4": { "type": [ "string", "null" ], "description": "Last 4 digits of the card number. Deprecated in favor of brands[]." }, "status": { "type": "string", "description": "Current status of the card brand request.", "enum": [ "completed", "pending", "failed" ] }, "error": { "$ref": "#/$defs/ResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the card brand was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the card brand was last updated." } } }, "AccountClearing": { "type": [ "object", "null" ], "description": "Clearing account details. Present when `type` is `clearing`.", "properties": { "type": { "type": "string", "description": "The type of clearing account.", "enum": [ "single_use", "multi_use" ] }, "routing": { "type": "string", "description": "The clearing routing number." }, "number": { "type": "string", "description": "The clearing account number." } } }, "AccountDebitCard": { "type": [ "object", "null" ], "description": "Debit card account details. Present when `type` is `debit_card`.", "properties": { "network": { "type": "string", "description": "The card network." }, "mask": { "type": "string", "description": "Last 4 digits of the card number." }, "issuer": { "type": "string", "description": "The card issuer." } } }, "AccountExpandableAttribute": { "title": "AccountExpandableAttribute", "description": "The latest attribute ID. This field is expandable. When expanded, returns the full AccountAttribute object.\n", "oneOf": [ { "type": "string", "pattern": "^acc_attr_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountAttribute" } ] }, "AccountExpandableBalance": { "title": "AccountExpandableBalance", "description": "The latest balance ID. This field is expandable. When expanded, returns the full AccountBalance object.\n", "oneOf": [ { "type": "string", "pattern": "^bal_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountBalance" } ] }, "AccountExpandableCardBrand": { "title": "AccountExpandableCardBrand", "description": "The latest card brand ID. This field is expandable. When expanded, returns the full AccountCardBrand object.\n", "oneOf": [ { "type": "string", "pattern": "^cbrd_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountCardBrand" } ] }, "AccountExpandablePaymentInstrument": { "title": "AccountExpandablePaymentInstrument", "description": "The latest payment instrument ID. This field is expandable. When expanded, returns the full AccountPaymentInstrument object.\n", "oneOf": [ { "type": "string", "pattern": "^pmt_inst_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountPaymentInstrument" } ] }, "AccountExpandablePayoff": { "title": "AccountExpandablePayoff", "description": "The latest payoff ID. This field is expandable. When expanded, returns the full AccountPayoff object.\n", "oneOf": [ { "type": "string", "pattern": "^pyf_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountPayoff" } ] }, "AccountExpandableSensitive": { "title": "AccountExpandableSensitive", "description": "The latest sensitive ID. This field is expandable. When expanded, returns the full AccountSensitive object.\n", "oneOf": [ { "type": "string", "pattern": "^astv_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountSensitive" } ] }, "AccountExpandableUpdate": { "title": "AccountExpandableUpdate", "description": "The latest update ID. This field is expandable. When expanded, returns the full AccountUpdate object.\n", "oneOf": [ { "type": "string", "pattern": "^upd_\\w+$" }, { "type": "null" }, { "$ref": "#/$defs/AccountUpdate" } ] }, "AccountLiability": { "type": [ "object", "null" ], "description": "Liability account details. Present when `type` is `liability`.", "required": [ "mch_id", "mask", "ownership", "fingerprint", "type", "sub_type", "name" ], "properties": { "mch_id": { "title": "AccountLiabilityExpandableMerchant", "description": "The merchant ID associated with this liability.", "oneOf": [ { "type": "string", "pattern": "^mch_\\w+$" }, { "$ref": "#/$defs/Merchant" } ] }, "mask": { "type": [ "string", "null" ], "description": "Last 4 digits of the account number." }, "ownership": { "type": [ "string", "null" ], "description": "Ownership type of the account.", "enum": [ "primary", "authorized", "joint", "unknown", null ] }, "fingerprint": { "type": [ "string", "null" ], "description": "Unique fingerprint for de-duplication." }, "type": { "type": "string", "description": "The type of liability.", "enum": [ "credit_card", "auto_loan", "mortgage", "personal_loan", "student_loan", "student_loans", "collection", "credit_builder", "insurance", "loan", "medical", "utility", "bnpl", "fintech" ] }, "sub_type": { "type": [ "string", "null" ], "description": "More specific classification of the liability type." }, "name": { "type": [ "string", "null" ], "description": "Display name of the liability account." } } }, "AccountPaymentInstrument": { "type": "object", "description": "A payment instrument for an account.", "required": [ "id", "account_id", "status", "type", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the payment instrument.", "pattern": "^pmt_inst_\\w+$" }, "account_id": { "type": "string", "description": "The account this payment instrument belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the payment instrument.", "enum": [ "pending", "in_progress", "completed" ] }, "type": { "type": "string", "description": "The type of payment instrument.", "enum": [ "card", "network_token", "inbound_achwire_payment" ] }, "chargeable": { "type": "boolean", "description": "Whether this payment instrument is currently chargeable." }, "card": { "type": [ "object", "null" ], "description": "Card details. Present when type is card.", "properties": { "number": { "type": "string", "description": "The card number." }, "exp_month": { "type": "string", "description": "Card expiration month." }, "exp_year": { "type": "string", "description": "Card expiration year." }, "billing_zip_code": { "type": "string", "description": "Billing zip code." } } }, "network_token": { "type": [ "object", "null" ], "description": "Network token details. Present when type is network_token.", "properties": { "token": { "type": "string", "description": "The network token value." } } }, "inbound_achwire_payment": { "type": [ "object", "null" ], "description": "ACH/wire payment details. Present when type is inbound_achwire_payment.", "properties": { "account_number": { "type": "string", "description": "The account number." }, "routing_number": { "type": "string", "description": "The routing number." } } }, "error": { "$ref": "#/$defs/ResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the payment instrument was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the payment instrument was last updated." } } }, "AccountPayoff": { "type": "object", "description": "A payoff record for an account.", "required": [ "id", "account_id", "status", "amount", "term", "per_diem_amount", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the payoff.", "pattern": "^pyf_\\w+$" }, "account_id": { "type": "string", "description": "The account this payoff belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the payoff request.", "enum": [ "completed", "pending", "failed" ] }, "amount": { "type": [ "number", "null" ], "description": "The payoff amount in cents." }, "term": { "type": [ "number", "null" ], "description": "Number of days the payoff amount is valid." }, "per_diem_amount": { "type": [ "number", "null" ], "description": "Per diem interest amount in cents." }, "error": { "$ref": "#/$defs/PayoffResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the payoff was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the payoff was last updated." } } }, "AccountResourceError": { "type": [ "object", "null" ], "description": "Error details when an account is disabled.", "required": [ "type", "code", "sub_type", "message" ], "properties": { "type": { "type": "string", "description": "The category of account error.", "enum": [ "ACCOUNT_DISABLED" ] }, "code": { "type": "integer", "description": "Numeric error code (11XXX range).", "enum": [ 11001, 11002, 11003, 11004, 11005, 11006 ] }, "sub_type": { "type": "string", "description": "Specific account error classification.", "enum": [ "ACCOUNT_INVALID_DETAILS", "ACCOUNT_UNAUTHORIZED_PAYMENT", "ACCOUNT_CLOSED", "ACCOUNT_CONSENT_WITHDRAWN", "ACCOUNT_DISABLED_INVALID_STATE", "ACCOUNT_DISABLED_HOLDER_ENTITY_DISABLED" ] }, "message": { "type": "string", "description": "Human-readable error description." } } }, "AccountSensitive": { "type": "object", "description": "Sensitive data for an account.", "required": [ "id", "account_id", "status", "type", "fields", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the sensitive record.", "pattern": "^astv_\\w+$" }, "account_id": { "type": "string", "description": "The account this sensitive data belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the sensitive data request.", "enum": [ "completed", "pending", "failed" ] }, "type": { "type": "string", "description": "The type of sensitive data." }, "fields": { "type": "array", "description": "List of sensitive data fields retrieved.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the field." }, "value": { "type": "string", "description": "Value of the field." } } } }, "error": { "$ref": "#/$defs/AccountSensitiveResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the sensitive record was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the sensitive record was last updated." } } }, "AccountSensitiveResourceError": { "type": [ "object", "null" ], "description": "Error details when retrieving account sensitive data fails.", "required": [ "type", "code", "sub_type", "message" ], "properties": { "type": { "type": "string", "description": "The category of sensitive data error.", "enum": [ "ACCOUNT_SENSITIVE_FAILED" ] }, "code": { "type": "integer", "description": "Numeric error code (17XXX range).", "enum": [ 17001 ] }, "sub_type": { "type": "string", "description": "Specific sensitive data error classification.", "enum": [ "ACCOUNT_SENSITIVE_FAILED_VERIFICATION_REQUIRED" ] }, "message": { "type": "string", "description": "Human-readable error description." } } }, "AccountUpdate": { "type": "object", "description": "An update record for an account.", "required": [ "id", "account_id", "status", "type", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the update.", "pattern": "^upd_\\w+$" }, "account_id": { "type": "string", "description": "The account this update belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the update.", "enum": [ "completed", "pending", "failed" ] }, "type": { "type": "string", "description": "The liability type of the account being updated.", "enum": [ "credit_card", "auto_loan", "mortgage", "personal_loan", "student_loan", "student_loans", "bnpl", "fintech" ] }, "source": { "type": "string", "description": "The data source used for this update.", "enum": [ "direct", "snapshot" ] }, "data_as_of": { "type": [ "string", "null" ], "format": "date-time", "description": "The timestamp of the data used to complete this update." }, "credit_card": { "type": [ "object", "null" ], "description": "Credit card update data. Present when `type` is `credit_card`.", "properties": { "sub_type": { "type": [ "string", "null" ] }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" }, "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "last_payment_amount": { "type": [ "integer", "null" ], "description": "Last payment amount in cents." }, "last_payment_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_due_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_minimum_amount": { "type": [ "integer", "null" ], "description": "Minimum payment due in cents." }, "interest_rate_type": { "type": [ "string", "null" ] }, "interest_rate_percentage_max": { "type": [ "number", "null" ] }, "interest_rate_percentage_min": { "type": [ "number", "null" ] }, "available_credit": { "type": [ "integer", "null" ], "description": "Available credit in cents." }, "credit_limit": { "type": [ "integer", "null" ], "description": "Credit limit in cents." }, "usage_pattern": { "type": [ "string", "null" ] } } }, "auto_loan": { "type": [ "object", "null" ], "description": "Auto loan update data. Present when `type` is `auto_loan`.", "properties": { "sub_type": { "type": [ "string", "null" ] }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" }, "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "last_payment_amount": { "type": [ "integer", "null" ], "description": "Last payment amount in cents." }, "last_payment_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_due_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_minimum_amount": { "type": [ "integer", "null" ], "description": "Minimum payment due in cents." }, "interest_rate_type": { "type": [ "string", "null" ] }, "expected_payoff_date": { "type": [ "string", "null" ], "format": "date" }, "original_loan_amount": { "type": [ "integer", "null" ], "description": "Original loan amount in cents." }, "term_length": { "type": [ "integer", "null" ] }, "interest_rate_percentage": { "type": [ "number", "null" ] }, "interest_rate_source": { "type": [ "string", "null" ] } } }, "mortgage": { "type": [ "object", "null" ], "description": "Mortgage update data. Present when `type` is `mortgage`.", "properties": { "sub_type": { "type": [ "string", "null" ] }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" }, "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "last_payment_amount": { "type": [ "integer", "null" ], "description": "Last payment amount in cents." }, "last_payment_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_due_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_minimum_amount": { "type": [ "integer", "null" ], "description": "Minimum payment due in cents." }, "interest_rate_type": { "type": [ "string", "null" ] }, "expected_payoff_date": { "type": [ "string", "null" ], "format": "date" }, "original_loan_amount": { "type": [ "integer", "null" ], "description": "Original loan amount in cents." }, "term_length": { "type": [ "integer", "null" ] }, "interest_rate_percentage": { "type": [ "number", "null" ] }, "interest_rate_source": { "type": [ "string", "null" ] } } }, "personal_loan": { "type": [ "object", "null" ], "description": "Personal loan update data. Present when `type` is `personal_loan`.", "properties": { "sub_type": { "type": [ "string", "null" ] }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" }, "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "last_payment_amount": { "type": [ "integer", "null" ], "description": "Last payment amount in cents." }, "last_payment_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_due_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_minimum_amount": { "type": [ "integer", "null" ], "description": "Minimum payment due in cents." }, "interest_rate_type": { "type": [ "string", "null" ] }, "available_credit": { "type": [ "integer", "null" ], "description": "Available credit in cents." }, "original_loan_amount": { "type": [ "integer", "null" ], "description": "Original loan amount in cents." }, "term_length": { "type": [ "integer", "null" ] }, "interest_rate_percentage": { "type": [ "number", "null" ] }, "interest_rate_source": { "type": [ "string", "null" ] } } }, "student_loan": { "type": [ "object", "null" ], "description": "Student loan update data. Present when `type` is `student_loan`.", "properties": { "sub_type": { "type": [ "string", "null" ] }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" }, "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "last_payment_amount": { "type": [ "integer", "null" ], "description": "Last payment amount in cents." }, "last_payment_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_due_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_minimum_amount": { "type": [ "integer", "null" ], "description": "Minimum payment due in cents." }, "interest_rate_type": { "type": [ "string", "null" ] }, "expected_payoff_date": { "type": [ "string", "null" ], "format": "date" }, "original_loan_amount": { "type": [ "integer", "null" ], "description": "Original loan amount in cents." }, "term_length": { "type": [ "integer", "null" ] }, "interest_rate_percentage": { "type": [ "number", "null" ] }, "interest_rate_source": { "type": [ "string", "null" ] } } }, "student_loans": { "type": [ "object", "null" ], "description": "Student loans aggregate update data. Present when `type` is `student_loans`.", "properties": { "sub_type": { "type": [ "string", "null" ] }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" }, "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "last_payment_amount": { "type": [ "integer", "null" ], "description": "Last payment amount in cents." }, "last_payment_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_due_date": { "type": [ "string", "null" ], "format": "date" }, "next_payment_minimum_amount": { "type": [ "integer", "null" ], "description": "Minimum payment due in cents." }, "interest_rate_type": { "type": [ "string", "null" ] }, "disbursements": { "type": [ "array", "null" ], "items": { "type": "object" } }, "original_loan_amount": { "type": [ "integer", "null" ], "description": "Original loan amount in cents." }, "interest_rate_percentage": { "type": [ "number", "null" ] }, "interest_rate_source": { "type": [ "string", "null" ] } } }, "bnpl": { "type": [ "object", "null" ], "description": "Buy now pay later update data. Present when `type` is `bnpl`.", "properties": { "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" } } }, "fintech": { "type": [ "object", "null" ], "description": "Fintech account update data. Present when `type` is `fintech`.", "properties": { "balance": { "type": [ "integer", "null" ], "description": "Current balance in cents." }, "opened_at": { "type": [ "string", "null" ], "format": "date" }, "closed_at": { "type": [ "string", "null" ], "format": "date" } } }, "error": { "$ref": "#/$defs/UpdateResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the update was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the update was last updated." } } }, "AccountVerificationSession": { "type": "object", "description": "A verification session for an account.", "required": [ "id", "account_id", "status", "type", "created_at", "updated_at" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the verification session.", "pattern": "^avf_\\w+$" }, "account_id": { "type": "string", "description": "The account this verification session belongs to.", "pattern": "^acc_\\w+$" }, "status": { "type": "string", "description": "Current status of the verification session.", "enum": [ "pending", "in_progress", "verified", "failed" ] }, "type": { "type": "string", "description": "The type of verification.", "enum": [ "micro_deposits", "mx", "plaid", "teller", "auto_verify", "trusted_provisioner", "pre_auth", "standard", "issuer", "instant", "network", "three_ds" ] }, "micro_deposits": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type micro_deposits.", "properties": { "amounts": { "type": "array", "description": "The latest amounts that this verification session was updated with.", "items": { "type": "integer" } } } }, "plaid": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type plaid.", "properties": { "balances": { "type": "object", "description": "The raw balance data received from Plaid." }, "transactions": { "type": "array", "description": "The raw transaction data received from Plaid.", "items": { "type": "object" } } } }, "mx": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type mx.", "properties": { "account": { "type": "object", "description": "The raw account data received from MX." }, "transactions": { "type": "array", "description": "The raw transaction data received from MX.", "items": { "type": "object" } } } }, "teller": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type teller.", "properties": { "balances": { "type": "object", "description": "The raw balance data received from Teller." }, "transactions": { "type": "array", "description": "The raw transaction data received from Teller.", "items": { "type": "object" } } } }, "auto_verify": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type auto_verify." }, "trusted_provisioner": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type trusted_provisioner." }, "standard": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type standard.", "properties": { "number": { "type": [ "string", "null" ], "description": "The masked card number. Null if the number still needs to be provided." } } }, "pre_auth": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type pre_auth.", "properties": { "number": { "type": [ "string", "null" ], "description": "The masked card number. Null if the number still needs to be provided." }, "exp_month": { "type": [ "string", "null" ], "description": "The masked card expiration month. Null if it still needs to be provided." }, "exp_year": { "type": [ "string", "null" ], "description": "The masked card expiration year. Null if it still needs to be provided." }, "exp_check": { "type": [ "string", "null" ], "description": "The card expiration verification check result.", "enum": [ "pass", "fail", "unavailable" ] }, "cvv": { "type": [ "string", "null" ], "description": "The masked card CVV. Null if it still needs to be provided." }, "cvv_check": { "type": [ "string", "null" ], "description": "The card CVV verification check result.", "enum": [ "pass", "fail", "unavailable" ] }, "billing_zip_code": { "type": [ "string", "null" ], "description": "The masked billing zip code." }, "billing_zip_code_check": { "type": [ "string", "null" ], "description": "The billing zip code verification check result.", "enum": [ "pass", "fail", "unavailable" ] }, "pre_auth_check": { "type": [ "string", "null" ], "description": "The pre-auth verification check result.", "enum": [ "pass", "fail", "unavailable" ] } } }, "network": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type network.", "properties": { "number": { "type": [ "string", "null" ], "description": "The masked card number. Null if the number still needs to be provided." }, "exp_month": { "type": [ "string", "null" ], "description": "The masked card expiration month. Null if it still needs to be provided." }, "exp_year": { "type": [ "string", "null" ], "description": "The masked card expiration year. Null if it still needs to be provided." }, "exp_check": { "type": [ "string", "null" ], "description": "The card expiration verification check result.", "enum": [ "pass", "fail", "unavailable" ] }, "cvv": { "type": [ "string", "null" ], "description": "The masked card CVV. Null if it still needs to be provided." }, "cvv_check": { "type": [ "string", "null" ], "description": "The card CVV verification check result.", "enum": [ "pass", "fail", "unavailable" ] }, "billing_zip_code": { "type": [ "string", "null" ], "description": "The masked billing zip code." }, "billing_zip_code_check": { "type": [ "string", "null" ], "description": "The billing zip code verification check result.", "enum": [ "pass", "fail", "unavailable" ] }, "network_check": { "type": [ "string", "null" ], "description": "The network verification check result.", "enum": [ "pass", "fail", "unavailable" ] } } }, "instant": { "type": [ "object", "null" ], "description": "Populated when the verification session is of type instant.", "properties": { "number": { "type": [ "string", "null" ], "description": "The masked card number. Null if the number still needs to be provided." }, "exp_month": { "type": [ "string", "null" ], "description": "The masked card expiration month. Null if it still needs to be provided." }, "exp_year": { "type": [ "string", "null" ], "description": "The masked card expiration year. Null if it still needs to be provided." }, "exp_check": { "type": [ "string", "null" ], "description": "The card expiration verification check result.", "enum": [ "pass", "fail", "unavailable" ] } } }, "error": { "$ref": "#/$defs/AccountVerificationSessionResourceError" }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp when the verification session was created." }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp when the verification session was last updated." } } }, "AccountVerificationSessionResourceError": { "type": [ "object", "null" ], "description": "Error details when an account verification session fails.", "required": [ "type", "code", "sub_type", "message" ], "properties": { "type": { "type": "string", "description": "The category of verification session error.", "enum": [ "ACCOUNT_VERIFICATION_SESSION_FAILED" ] }, "code": { "type": "integer", "description": "Numeric error code (16XXX range).", "enum": [ 16001, 16002, 16003, 16004 ] }, "sub_type": { "type": "string", "description": "Specific verification session error classification.", "enum": [ "VERIFICATION_TYPE_NOT_SUPPORTED", "INVALID_DETAILS", "VERIFICATION_SESSION_ATTEMPT_LIMIT_REACHED", "MICRO_DEPOSITS_FAILED" ] }, "message": { "type": "string", "description": "Human-readable error description." } } }, "BalanceResourceError": { "type": [ "object", "null" ], "description": "Error details when a balance sync fails.", "required": [ "type", "code", "sub_type", "message" ], "properties": { "type": { "type": "string", "description": "The category of balance error.", "enum": [ "BALANCE_FAILED" ] }, "code": { "type": "integer", "description": "Numeric error code (20XXX range).", "enum": [ 20001 ] }, "sub_type": { "type": "string", "description": "Specific balance error classification.", "enum": [ "BALANCE_TEMPORARILY_UNAVAILABLE" ] }, "message": { "type": "string", "description": "Human-readable error description." } } }, "ListEnvelope": { "type": "object", "description": "Standard envelope for successful responses that return a list payload.", "required": [ "success", "data", "message" ], "properties": { "success": { "type": "boolean", "description": "Always `true` for successful responses." }, "data": { "description": "Operation-specific list payload." }, "message": { "type": [ "string", "null" ] } } }, "Merchant": { "type": "object", "required": [ "id", "parent_name", "name", "logo", "type", "provider_ids", "is_temp", "account_number_formats" ], "properties": { "id": { "type": "string", "description": "Unique identifier for the merchant." }, "parent_name": { "type": "string", "description": "Name of the parent merchant group." }, "name": { "type": "string", "description": "Display name of the merchant." }, "logo": { "type": "string", "description": "URL of the merchant logo." }, "type": { "$ref": "#/$defs/MerchantType", "description": "Type of accounts supported by this merchant." }, "provider_ids": { "$ref": "#/$defs/MerchantProviderIds" }, "is_temp": { "type": "boolean", "description": "Whether this is a temporary merchant entry." }, "account_number_formats": { "type": "array", "items": { "type": "string" }, "description": "Accepted account number formats." } } }, "MerchantProviderIds": { "type": "object", "properties": { "plaid": { "type": "array", "items": { "type": "string" } }, "mx": { "type": "array", "items": { "type": "string" } }, "finicity": { "type": "array", "items": { "type": "string" } }, "dpp": { "type": "array", "items": { "type": "string" } }, "rpps": { "type": "array", "items": { "type": "string" } } } }, "MerchantType": { "type": "string", "enum": [ "auto_loan", "bank", "bnpl", "business_loan", "city", "collection", "county", "credit_builder", "credit_card", "electric_utility", "fintech", "home_equity_loan", "home_loan", "insurance", "internet_utility", "loan", "medical", "mortgage", "personal_loan", "student_loan", "student_loans", "subscription", "telephone_utility", "television_utility", "unknown", "utility", "waste_utility", "water_utility" ] }, "Metadata": { "type": [ "object", "null" ], "additionalProperties": true, "description": "Arbitrary key-value metadata attached to the resource." }, "PayoffResourceError": { "type": [ "object", "null" ], "description": "Error details when a payoff sync fails.", "required": [ "type", "code", "sub_type", "message" ], "properties": { "type": { "type": "string", "description": "The category of payoff error.", "enum": [ "PAYOFF_FAILED" ] }, "code": { "type": "integer", "description": "Numeric error code (18XXX range).", "enum": [ 18001 ] }, "sub_type": { "type": "string", "description": "Specific payoff error classification.", "enum": [ "PAYOFF_TEMPORARILY_UNAVAILABLE" ] }, "message": { "type": "string", "description": "Human-readable error description." } } }, "ResourceError": { "type": [ "object", "null" ], "required": [ "type", "code", "message" ], "properties": { "type": { "type": "string" }, "code": { "type": "integer" }, "sub_type": { "type": [ "string", "null" ] }, "message": { "type": "string" } } }, "UpdateResourceError": { "type": [ "object", "null" ], "description": "Error details when an account update fails.", "required": [ "type", "code", "sub_type", "message" ], "properties": { "type": { "type": "string", "description": "The category of update error.", "enum": [ "UPDATE_FAILED" ] }, "code": { "type": "integer", "description": "Numeric error code (21XXX range).", "enum": [ 21001 ] }, "sub_type": { "type": "string", "description": "Specific update error classification.", "enum": [ "UPDATE_TEMPORARILY_UNAVAILABLE" ] }, "message": { "type": "string", "description": "Human-readable error description." } } } } }