--- openapi: 3.0.1 info: title: Modern Treasury version: v1 contact: name: Modern Treasury Engineering Team url: https://moderntreasury.com description: The Modern Treasury REST API. Please see https://docs.moderntreasury.com for more details. paths: "/api/account_collection_flows": get: summary: list account_collection_flows tags: - AccountCollectionFlow operationId: listAccountCollectionFlows security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: client_token in: query schema: type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false - name: external_account_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: status in: query schema: type: string required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/account_collection_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create account_collection_flow tags: - AccountCollectionFlow operationId: createAccountCollectionFlow deprecated: true security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/account_collection_flow_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/account_collection_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/account_collection_flows/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get account_collection_flow tags: - AccountCollectionFlow operationId: getAccountCollectionFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/account_collection_flow" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update account_collection_flow tags: - AccountCollectionFlow operationId: updateAccountCollectionFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/account_collection_flow_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/account_collection_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/bulk_requests": get: summary: list bulk_requests tags: - BulkRequest operationId: listBulkRequests security: - basic_auth: [] parameters: - name: action_type in: query schema: enum: - create - update - delete type: string required: false description: One of create, or update. - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: resource_type in: query schema: enum: - payment_order - ledger_account - ledger_transaction - expected_payment - transaction - transaction_line_item type: string required: false description: One of payment_order, expected_payment, or ledger_transaction. - name: status in: query schema: enum: - pending - processing - completed type: string required: false description: One of pending, processing, or completed. - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/bulk_request" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create bulk_request tags: - BulkRequest operationId: createBulkRequest security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/bulk_request_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/bulk_request" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/bulk_requests/{id}": parameters: - name: id in: path schema: type: string required: true description: id get: summary: get bulk_request tags: - BulkRequest operationId: getBulkRequest security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/bulk_request" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/bulk_results": get: summary: list bulk_results tags: - BulkResult operationId: listBulkResults security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: entity_id in: query schema: format: uuid type: string required: false description: Unique identifier for the result entity object. - name: entity_type in: query schema: enum: - payment_order - ledger_account - ledger_transaction - expected_payment - transaction - transaction_line_item - bulk_error type: string required: false description: The type of the request that created this result. bulk_request is the only supported `request_type` - name: per_page in: query schema: type: integer required: false - name: request_id in: query schema: format: uuid type: string required: false description: Unique identifier for the request that created this bulk result. This is the ID of the bulk request when `request_type` is bulk_request - name: request_type in: query schema: enum: - bulk_request type: string required: false description: The type of the request that created this result. bulk_request is the only supported `request_type` - name: status in: query schema: enum: - pending - successful - failed type: string required: false description: One of successful or failed. responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/bulk_result" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/bulk_results/{id}": parameters: - name: id in: path schema: type: string required: true description: id get: summary: get bulk_result tags: - BulkResult operationId: getBulkResult security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/bulk_result" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/cases": get: summary: list cases tags: - Case operationId: listCases description: Get a list of cases. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - open - resolved type: string required: false description: The status of the case. - name: subject_id in: query schema: format: uuid type: string required: false description: The ID of the object the case is about. - name: subject_type in: query schema: enum: - legal_entity type: string required: false description: The type of the object the case is about. responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/case" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/cases/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get case tags: - Case operationId: getCase description: Get details on a single case. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/case" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/connection_legal_entities": get: summary: list connection_legal_entities tags: - ConnectionLegalEntity operationId: listConnectionLegalEntities description: Get a list of all connection legal entities. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: connection_id in: query schema: format: uuid type: string required: false - name: legal_entity_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - completed - denied - failed - processing - suspended type: string required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/connection_legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create connection_legal_entity tags: - ConnectionLegalEntity operationId: createConnectionLegalEntity description: Create a connection legal entity. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/connection_legal_entity_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/connection_legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/connection_legal_entities/{id}": parameters: - name: id in: path schema: type: string required: true description: The id of an existing connection legal entity. get: summary: get connection_legal_entity tags: - ConnectionLegalEntity operationId: getConnectionLegalEntity description: Get details on a single connection legal entity. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/connection_legal_entity" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update connection_legal_entity tags: - ConnectionLegalEntity operationId: updateConnectionLegalEntity description: Update a connection legal entity. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/connection_legal_entity_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/connection_legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/connections": get: summary: list connections tags: - Connection operationId: listConnections description: Get a list of all connections. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: entity in: query schema: type: string required: false description: A string code representing the vendor (i.e. bank). - name: per_page in: query schema: type: integer required: false - name: vendor_customer_id in: query schema: format: uuid type: string required: false description: An identifier assigned by the vendor to your organization. responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/connection" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/counterparties": get: summary: list counterparties tags: - Counterparty operationId: listCounterparties description: Get a paginated list of all counterparties. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: created_at_lower_bound in: query schema: format: date-time type: string required: false description: Used to return counterparties created after some datetime. - name: created_at_upper_bound in: query schema: format: date-time type: string required: false description: Used to return counterparties created before some datetime. - name: email in: query schema: format: email type: string required: false description: Performs a partial string match of the email field. This is also case insensitive. - name: external_id in: query schema: type: string required: false description: An optional user-defined 180 character unique identifier. - name: legal_entity_id in: query schema: format: uuid type: string required: false description: Filters for counterparties with the given legal entity ID. - name: name in: query schema: type: string required: false description: Performs a partial string match of the name field. This is also case insensitive. - name: per_page in: query schema: type: integer required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/counterparty" '400': description: bad_request '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create counterparty tags: - Counterparty operationId: createCounterparty description: Create a new counterparty. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/counterparty_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/counterparty" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/counterparties/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The id of an existing counterparty. get: summary: show counterparty tags: - Counterparty operationId: getCounterparty description: Get details on a single counterparty. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/counterparty" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update counterparty tags: - Counterparty operationId: updateCounterparty description: Updates a given counterparty with new information. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/counterparty_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/counterparty" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete counterparty tags: - Counterparty operationId: deleteCounterparty description: Deletes a given counterparty. security: - basic_auth: [] responses: '204': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/counterparties/{id}/collect_account": post: summary: collect account details tags: - Counterparty operationId: collectAccountDetails description: Send an email requesting account details. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: id in: path schema: format: uuid type: string required: true description: counterparty id requestBody: content: application/json: schema: "$ref": "#/components/schemas/counterparty_collect_account_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/counterparty_collect_account_response" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/documents": get: summary: list documents tags: - Document operationId: listDocuments description: Get a list of documents. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: documentable_id in: query schema: format: uuid type: string required: false description: The unique identifier for the associated object. - name: documentable_type in: query schema: enum: - connection - counterparty - expected_payment - identification - incoming_payment_detail - internal_account - legal_entity - payment_order - return - transaction type: string required: false description: The type of the associated object. Currently can be one of `connection`, `counterparty`, `expected_payment`, `identification`, `incoming_payment_detail`, `internal_account`, `legal_entity`, `payment_order`, `return`, or `transaction`. - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/document" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create document tags: - Document operationId: createDocument description: Create a document. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: multipart/form-data: schema: "$ref": "#/components/schemas/document_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/document" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/documents/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the document. get: summary: get document tags: - Document operationId: getDocument description: Get an existing document. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/document" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/documents/{id}/download": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the document. get: summary: download document tags: - Document operationId: downloadDocument description: Download an existing document. security: - basic_auth: [] responses: '302': description: redirect '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/embeddable_flows": get: summary: list embeddable_flows tags: - EmbeddableFlow operationId: listEmbeddableFlows security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: status in: query schema: type: string required: false - name: template in: query schema: enum: - legal_entity_onboarding - account_collection - payment type: string required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/embeddable_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create embeddable_flow tags: - EmbeddableFlow operationId: createEmbeddableFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/embeddable_flow_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/embeddable_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/embeddable_flows/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get embeddable_flow tags: - EmbeddableFlow operationId: getEmbeddableFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/embeddable_flow" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update embeddable_flow tags: - EmbeddableFlow operationId: updateEmbeddableFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: required: true content: application/json: schema: "$ref": "#/components/schemas/embeddable_flow_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/embeddable_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/events": get: summary: list events tags: - Event operationId: listEvents security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: entity_id in: query schema: format: uuid type: string required: false - name: event_name in: query schema: type: string required: false - name: event_time_end in: query schema: format: date-time type: string required: false description: An inclusive upper bound for when the event occurred - name: event_time_start in: query schema: format: date-time type: string required: false description: An inclusive lower bound for when the event occurred - name: per_page in: query schema: type: integer required: false - name: resource in: query schema: type: string required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/event" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/events/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: event id get: summary: get event tags: - Event operationId: getEvent security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/event" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/expected_payments": get: summary: list expected_payments tags: - ExpectedPayment operationId: listExpectedPayments security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false description: Specify counterparty_id to see expected_payments for a specific account. - name: created_at_lower_bound in: query schema: format: date-time type: string required: false description: Used to return expected payments created after some datetime - name: created_at_upper_bound in: query schema: format: date-time type: string required: false description: Used to return expected payments created before some datetime - name: direction in: query schema: enum: - credit - debit type: string required: false description: One of credit, debit - name: external_id in: query schema: type: string required: false - name: internal_account_id in: query schema: format: uuid type: string required: false description: Specify internal_account_id to see expected_payments for a specific account. - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - archived - partially_reconciled - reconciled - unreconciled type: string required: false description: One of unreconciled, reconciled, or archived. - name: type in: query schema: enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin type: string required: false description: 'One of: ach, au_becs, bacs, book, check, eft, rtp, sepa, wire' - name: updated_at_lower_bound in: query schema: format: date-time type: string required: false description: Used to return expected payments updated after some datetime - name: updated_at_upper_bound in: query schema: format: date-time type: string required: false description: Used to return expected payments updated before some datetime - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/expected_payment" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create expected payment tags: - ExpectedPayment operationId: createExpectedPayment security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/expected_payment_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/expected_payment" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/expected_payments/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get expected payment tags: - ExpectedPayment operationId: getExpectedPayment security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/expected_payment" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update expected payment tags: - ExpectedPayment operationId: updateExpectedPayment security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/expected_payment_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/expected_payment" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete expected payment tags: - ExpectedPayment operationId: deleteExpectedPayment security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/expected_payment" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: parameter_invalid content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/external_accounts": get: summary: list external accounts tags: - ExternalAccount operationId: listExternalAccounts security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false - name: external_id in: query schema: type: string required: false description: An optional user-defined 180 character unique identifier. - name: party_name in: query schema: type: string required: false description: Searches the ExternalAccount's party_name AND the Counterparty's party_name - name: per_page in: query schema: type: integer required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/external_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create external account tags: - ExternalAccount operationId: createExternalAccount security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/external_account_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/external_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/external_accounts/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: external account id get: summary: show external account tags: - ExternalAccount operationId: getExternalAccount security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/external_account" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update external account tags: - ExternalAccount operationId: updateExternalAccount security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/external_account_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/external_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete external account tags: - ExternalAccount operationId: deleteExternalAccount security: - basic_auth: [] responses: '204': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/external_accounts/{id}/complete_verification": post: summary: complete verification of external account tags: - ExternalAccount operationId: completeVerificationExternalAccount security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: id in: path schema: format: uuid type: string required: true description: external account id requestBody: content: application/json: schema: "$ref": "#/components/schemas/external_account_complete_verification_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/external_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/external_accounts/{id}/verify": post: summary: verify external account tags: - ExternalAccount operationId: verifyExternalAccount security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: id in: path schema: format: uuid type: string required: true description: external account id requestBody: content: application/json: schema: "$ref": "#/components/schemas/external_account_verify_request" responses: '200': description: successful content: application/json: schema: oneOf: - "$ref": "#/components/schemas/external_account" - "$ref": "#/components/schemas/external_account_verification_attempt" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/foreign_exchange_quotes": get: summary: list foreign_exchange_quotes tags: - ForeignExchangeQuote operationId: listQuotes security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: base_currency in: query schema: type: string required: false description: Currency to convert, often called the "sell" currency. - name: effective_at_end in: query schema: format: date type: string required: false description: An inclusive upper bound for searching effective_at - name: effective_at_start in: query schema: format: date type: string required: false description: An inclusive lower bound for searching effective_at - name: expires_at in: query schema: format: date-time type: string required: false description: The timestamp until which the quote must be booked by. - name: internal_account_id in: query schema: format: uuid type: string required: false description: The ID for the `InternalAccount` this quote is associated with. - name: per_page in: query schema: type: integer required: false - name: target_currency in: query schema: type: string required: false description: Currency to convert the `base_currency` to, often called the "buy" currency. - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/foreign_exchange_quote" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create foreign_exchange_quote tags: - ForeignExchangeQuote operationId: createQuote security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/foreign_exchange_quote_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/foreign_exchange_quote" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: invalid param content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/foreign_exchange_quotes/{id}": parameters: - name: id in: path schema: type: string required: true description: id get: summary: get foreign_exchange_quote tags: - ForeignExchangeQuote operationId: getQuote security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/foreign_exchange_quote" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/holds": get: summary: list holds tags: - Hold operationId: listHolds description: Get a list of holds. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - active - resolved nullable: true type: string required: false description: Only return holds for a specific status. - name: target_id in: query schema: format: uuid nullable: true type: string required: false description: Only return holds for a specific target ID. - name: target_type in: query schema: enum: - payment_order nullable: true type: string required: false description: Only return holds for a specific target type. - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/hold" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create hold tags: - Hold operationId: createHold description: Create a new hold security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: type: object properties: metadata: type: object nullable: true additionalProperties: type: string description: Additional metadata for the hold reason: type: string nullable: true description: The reason for the hold status: type: string enum: - active description: The status of the hold target_id: type: string format: uuid description: The ID of the target to hold target_type: type: string enum: - payment_order description: The type of target to hold required: - target_type - target_id - status responses: '201': description: created content: application/json: schema: "$ref": "#/components/schemas/hold" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unprocessable entity content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/holds/{id}": get: summary: show hold tags: - Hold operationId: showHold description: Get a specific hold security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: hold id responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/hold" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update hold tags: - Hold operationId: updateHold description: Update a hold security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: hold id requestBody: content: application/json: schema: type: object properties: resolution: type: string nullable: true description: The resolution of the hold status: type: string enum: - resolved description: The new status of the hold required: - status responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/hold" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unprocessable entity content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/identifications": post: summary: create identification tags: - Identification operationId: createIdentification description: Create an Identification for a Legal Entity. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/standalone_identification_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/identification" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/identifications/{id}": parameters: - name: id in: path schema: type: string required: true description: The id of an existing identification. get: summary: get identification tags: - Identification operationId: getIdentification description: Get an existing Identification. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/identification" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update identification tags: - Identification operationId: updateIdentification description: Update an existing Identification. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/identification_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/identification" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/incoming_payment_details": get: summary: list incoming payment_details tags: - IncomingPaymentDetail operationId: listIncomingPaymentDetails description: Get a list of Incoming Payment Details. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: as_of_date_end in: query schema: format: date type: string required: false description: Filters incoming payment details with an as_of_date starting on or before the specified date (YYYY-MM-DD). - name: as_of_date_start in: query schema: format: date type: string required: false description: Filters incoming payment details with an as_of_date starting on or after the specified date (YYYY-MM-DD). - name: direction in: query schema: enum: - credit - debit type: string required: false description: One of `credit` or `debit`. - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - completed - failed - held - pending - returned type: string required: false description: The current status of the incoming payment order. One of `pending`, `completed`, `returned`, `failed`, or `held`. - name: subtype in: query schema: type: string required: false description: An additional layer of classification for the type of incoming payment detail. For example, a `type` of `stablecoin` may have a `subtype` of `ethereum` or `solana`. - name: type in: query schema: enum: - ach - au_becs - bacs - book - check - eft - neft - nz_becs - rtp - sepa - stablecoin - wire - zengin type: string required: false description: 'One of: `ach`, `book`, `check`, `eft`, `rtp`, `sepa`, or `wire`.' - name: virtual_account_id in: query schema: format: uuid type: string required: false description: If the incoming payment detail is in a virtual account, the ID of the Virtual Account. - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/incoming_payment_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/incoming_payment_details/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The unique identifier of the incoming payment detail. get: summary: get incoming payment detail tags: - IncomingPaymentDetail operationId: getIncomingPaymentDetail description: Get an existing Incoming Payment Detail. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/incoming_payment_detail" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update incoming payment detail tags: - IncomingPaymentDetail operationId: updateIncomingPaymentDetail description: Update an existing Incoming Payment Detail. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/incoming_payment_detail_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/incoming_payment_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/internal_accounts": get: summary: list internal accounts tags: - InternalAccount operationId: listInternalAccounts security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false description: Only return internal accounts associated with this counterparty. - name: currency in: query schema: "$ref": "#/components/schemas/currency" required: false description: Only return internal accounts with this currency. - name: external_id in: query schema: type: string required: false description: An optional user-defined 180 character unique identifier. - name: legal_entity_id in: query schema: format: uuid type: string required: false description: Only return internal accounts associated with this legal entity. - name: payment_direction in: query schema: enum: - credit - debit type: string required: false description: Only return internal accounts that can originate payments with this direction. - name: payment_type in: query schema: enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin type: string required: false description: Only return internal accounts that can make this type of payment. - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - active - pending_activation - suspended - pending_closure - closed type: string required: false description: Only return internal accounts with this status. - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/internal_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create internal account tags: - InternalAccount operationId: createInternalAccount security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/internal_account_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/internal_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/internal_accounts/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: Unique identifier for the account. get: summary: get internal account tags: - InternalAccount operationId: getInternalAccount security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/internal_account" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update internal account tags: - InternalAccount operationId: updateInternalAccount security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/internal_account_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/internal_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful '429': description: too many requests "/api/internal_accounts/{id}/request_closure": parameters: - name: id in: path schema: format: uuid type: string required: true description: Unique identifier for the account. post: summary: request closure of internal account tags: - InternalAccount operationId: requestInternalAccountClosure description: 'This endpoint has been deprecated. Request closure with PATCH /api/internal_accounts/{id} and status: "pending_closure".' deprecated: true security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/internal_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unprocessable entity content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/internal_accounts/{internal_account_id}/account_capabilities/{id}": parameters: - name: id in: path schema: type: string required: true description: Unique identifier for the account capability. - name: internal_account_id in: path schema: type: string required: true description: Unique identifier for the internal account. patch: summary: update account_capability tags: - AccountCapability operationId: updateAccountCapability security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/account_capability_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/account_capability" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful '429': description: too many requests "/api/internal_accounts/{internal_account_id}/balance_reports": get: summary: list balance_reports tags: - BalanceReport operationId: listBalanceReports description: Get all balance reports for a given internal account. security: - basic_auth: [] parameters: - name: internal_account_id in: path schema: format: uuid type: string required: true - name: after_cursor in: query schema: nullable: true type: string required: false - name: as_of_date in: query schema: format: date type: string required: false description: The date of the balance report in local time. - name: balance_report_type in: query schema: enum: - intraday - other - previous_day - real_time type: string required: false description: The specific type of balance report. One of `intraday`, `previous_day`, `real_time`, or `other`. - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/balance_report" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create balance reports tags: - BalanceReport operationId: createBalanceReport security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: internal_account_id in: path schema: format: uuid type: string required: true requestBody: content: application/json: schema: "$ref": "#/components/schemas/balance_report_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/balance_report" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/internal_accounts/{internal_account_id}/balance_reports/{id}": get: summary: get balance_report tags: - BalanceReport operationId: getBalanceReport description: Get a single balance report for a given internal account. security: - basic_auth: [] parameters: - name: id in: path schema: anyOf: - format: uuid type: string - enum: - latest type: string required: true description: Either the unique identifier of the balance report or 'latest' for the latest balance report. - name: internal_account_id in: path schema: format: uuid type: string required: true responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/balance_report" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete balance_report tags: - BalanceReport operationId: deleteBalanceReport description: Deletes a given balance report. security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: Either the unique identifier of the balance report or 'latest' for the latest balance report. - name: internal_account_id in: path schema: format: uuid type: string required: true responses: '204': description: no content '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: not allowed content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/invoices": get: summary: list invoices tags: - Invoice operationId: listInvoices security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false - name: created_at_end in: query schema: format: date-time type: string required: false description: An inclusive upper bound for searching created_at - name: created_at_start in: query schema: format: date-time type: string required: false description: An inclusive lower bound for searching created_at - name: due_date_end in: query schema: format: date type: string required: false description: An inclusive upper bound for searching due_date - name: due_date_start in: query schema: format: date type: string required: false description: An inclusive lower bound for searching due_date - name: expected_payment_id in: query schema: format: uuid type: string required: false - name: number in: query schema: type: string required: false description: A unique record number assigned to each invoice that is issued. - name: originating_account_id in: query schema: format: uuid type: string required: false - name: payment_order_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - draft - paid - partially_paid - payment_pending - unpaid - voided type: string required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/invoice" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create invoice tags: - Invoice operationId: createInvoice security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/invoice_create_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/invoices/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get invoice tags: - Invoice operationId: getInvoice security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update invoice tags: - Invoice operationId: updateInvoice security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/invoice_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/invoices/{id}/payment_orders/{payment_order_id}": parameters: - name: id in: path schema: type: string required: true description: id - name: payment_order_id in: path schema: type: string required: true description: payment_order_id put: summary: add payment_order_id to invoice tags: - PaymentOrder operationId: addPaymentOrderToInvoice description: Add a payment order to an invoice. security: - basic_auth: [] responses: '200': description: successful '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: not unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/invoices/{invoice_id}/invoice_line_items": parameters: - name: invoice_id in: path schema: format: uuid type: string required: true description: invoice_id get: summary: list invoice_line_items tags: - InvoiceLineItem operationId: listInvoiceLineItems security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/invoice_line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create invoice_line_item tags: - InvoiceLineItem operationId: createInvoiceLineItem security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/invoice_line_item_create_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice_line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/invoices/{invoice_id}/invoice_line_items/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id - name: invoice_id in: path schema: format: uuid type: string required: true description: invoice_id get: summary: get invoice_line_item tags: - InvoiceLineItem operationId: getInvoiceLineItem security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice_line_item" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update invoice_line_item tags: - InvoiceLineItem operationId: updateInvoiceLineItem security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/invoice_line_item_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice_line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete invoice_line_item tags: - InvoiceLineItem operationId: deleteInvoiceLineItem security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/invoice_line_item" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/journal_entries": get: summary: list journal_entries tags: - JournalEntry operationId: listJournalEntries description: Retrieve a list of journal entries security: - basic_auth: [] parameters: - name: journal_report_id in: query schema: format: uuid type: string required: true description: The ID of the journal report - name: page in: query schema: type: integer required: false description: Page number for pagination - name: per_page in: query schema: type: integer required: false description: Number of items per page responses: '200': description: successful - only returns entries for current organization '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: page disabled - returns not found '422': description: empty journal_report_id - returns validation error '429': description: too many requests "/api/journal_entries/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the journal entry get: summary: show journal_entry tags: - JournalEntry operationId: getJournalEntry description: Retrieve a specific journal entry security: - basic_auth: [] responses: '200': description: successful - returns entry with all attributes '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: page disabled - returns not found '429': description: too many requests "/api/journal_reports": get: summary: list journal_reports tags: - JournalReport operationId: listJournalReports description: Retrieve a list of journal reports security: - basic_auth: [] parameters: - name: status in: query schema: enum: - draft - published - ready type: string required: false responses: '200': description: successful - returns list of journal reports '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/journal_reports/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the journal report get: summary: show journal_report tags: - JournalReport operationId: getJournalReport description: Retrieve a specific journal report security: - basic_auth: [] responses: '200': description: successful - returns journal report with empty metadata '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found - returns 404 for non-existent journal report '429': description: too many requests patch: summary: update journal_report tags: - JournalReport operationId: updateJournalReport description: Update a journal report security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: type: object properties: metadata: type: object status: type: string responses: '200': description: successful - updates metadata '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found - non-existent journal report '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: validation error - invalid status '429': description: too many requests "/api/journal_sources": get: summary: list journal_sources tags: - JournalSource operationId: listJournalSources description: Retrieve a list of journal sources security: - basic_auth: [] parameters: - name: journal_entry_id in: query schema: format: uuid type: string required: false description: The ID of the journal entry - name: journal_report_id in: query schema: format: uuid type: string required: false description: The ID of the journal report - name: page in: query schema: type: integer required: false description: Page number for pagination - name: per_page in: query schema: type: integer required: false description: Number of items per page - name: source_id in: query schema: format: uuid type: string required: false description: The ID of the source object - name: source_type in: query schema: type: string required: false description: The type of the source object responses: '200': description: successful - only returns sources for current organization '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: page disabled - returns not found '429': description: too many requests "/api/journal_sources/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the journal source get: summary: show journal_source tags: - JournalSource operationId: getJournalSource description: Retrieve a specific journal source security: - basic_auth: [] responses: '200': description: successful - returns journal source with all attributes '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: page disabled - returns not found '429': description: too many requests "/api/ledger_account_balance_monitors": get: summary: list ledger_account_balance_monitors tags: - LedgerAccountBalanceMonitor operationId: listLedgerAccountBalanceMonitors description: Get a list of ledger account balance monitors. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: ledger_account_id in: query schema: format: uuid type: string required: false description: Query the balance monitors for a single ledger account. - name: per_page in: query schema: type: integer required: false - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_account_balance_monitor" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create ledger_account_balance_monitor tags: - LedgerAccountBalanceMonitor operationId: createLedgerAccountBalanceMonitor description: Create a ledger account balance monitor. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_balance_monitor_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_balance_monitor" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_balance_monitors/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get ledger_account_balance_monitor tags: - LedgerAccountBalanceMonitor operationId: getLedgerAccountBalanceMonitor description: Get details on a single ledger account balance monitor. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_balance_monitor" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger_account_balance_monitor tags: - LedgerAccountBalanceMonitor operationId: updateLedgerAccountBalanceMonitor description: Update a ledger account balance monitor. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_balance_monitor_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_balance_monitor" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete ledger_account_balance_monitor tags: - LedgerAccountBalanceMonitor operationId: deleteLedgerAccountBalanceMonitor description: Delete a ledger account balance monitor. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_balance_monitor" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_categories": get: summary: list ledger_account_categories tags: - LedgerAccountCategory operationId: listLedgerAccountCategories description: Get a list of ledger account categories. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: balances in: query schema: additionalProperties: false properties: effective_at: format: date-time type: string type: object style: deepObject explode: true required: false description: For example, if you want the balances as of a particular time (ISO8601), the encoded query string would be `balances%5Beffective_at%5D=2000-12-31T12:00:00Z`. The balances as of a time are inclusive of entries with that exact time, but with respect to the ledger accounts that are currently present in the category. - name: currency in: query schema: type: string required: false - name: external_id in: query schema: type: string required: false - name: ledger_account_id in: query schema: format: uuid type: string required: false description: Query categories which contain a ledger account directly or through child categories. - name: ledger_id in: query schema: format: uuid type: string required: false - name: name in: query schema: type: string required: false - name: parent_ledger_account_category_id in: query schema: format: uuid type: string required: false description: Query categories that are nested underneath a parent category - name: per_page in: query schema: type: integer required: false - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/bulk_name" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_account_category" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create ledger_account_category tags: - LedgerAccountCategory operationId: createLedgerAccountCategory description: Create a ledger account category. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_category_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_category" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_categories/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get ledger_account_category tags: - LedgerAccountCategory operationId: getLedgerAccountCategory description: Get the details on a single ledger account category. security: - basic_auth: [] parameters: - name: balances in: query schema: additionalProperties: false properties: as_of_date: format: date type: string effective_at: format: date-time type: string type: object style: deepObject explode: true required: false description: For example, if you want the balances as of a particular time (ISO8601), the encoded query string would be `balances%5Beffective_at%5D=2000-12-31T12:00:00Z`. The balances as of a time are inclusive of entries with that exact time, but with respect to the ledger accounts that are currently present in the category. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_category" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger_account_category tags: - LedgerAccountCategory operationId: updateLedgerAccountCategory description: Update the details of a ledger account category. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_category_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_category" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete ledger_account_category tags: - LedgerAccountCategory operationId: deleteLedgerAccountCategory description: Delete a ledger account category. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_category" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_categories/{id}/ledger_account_categories/{sub_category_id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id - name: sub_category_id in: path schema: format: uuid type: string required: true description: sub_category_id put: summary: add ledger_account_category to ledger_account_category tags: - LedgerAccountCategory operationId: addLedgerAccountCategoryToLedgerAccountCategory description: Add a ledger account category to a ledger account category. security: - basic_auth: [] responses: '200': description: successful '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete ledger_account_category from ledger_account_category tags: - LedgerAccountCategory operationId: deleteLedgerAccountCategoryFromLedgerAccountCategory description: Delete a ledger account category from a ledger account category. security: - basic_auth: [] responses: '200': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_categories/{id}/ledger_accounts/{ledger_account_id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id - name: ledger_account_id in: path schema: format: uuid type: string required: true description: ledger_account_id put: summary: add ledger_account to ledger_account_category tags: - LedgerAccountCategory operationId: addLedgerAccountToLedgerAccountCategory description: Add a ledger account to a ledger account category. security: - basic_auth: [] responses: '200': description: successful '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: remove ledger_account from ledger_account_category tags: - LedgerAccountCategory operationId: removeLedgerAccountFromLedgerAccountCategory description: Remove a ledger account from a ledger account category. security: - basic_auth: [] responses: '200': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_settlements": get: summary: list ledger_account_settlements tags: - LedgerAccountSettlement operationId: listLedgerAccountSettlements description: Get a list of ledger account settlements. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: created_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the created at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use created_at%5Bgt%5D=2000-01-01T12:00:00Z. - name: ledger_id in: query schema: format: uuid type: string required: false - name: ledger_transaction_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: settled_ledger_account_id in: query schema: format: uuid type: string required: false - name: settlement_entry_direction in: query schema: type: string required: false - name: updated_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the updated at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use updated_at%5Bgt%5D=2000-01-01T12:00:00Z. - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_account_settlement" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create ledger_account_settlement tags: - LedgerAccountSettlement operationId: createLedgerAccountSettlement description: Create a ledger account settlement. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_settlements/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get ledger_account_settlement tags: - LedgerAccountSettlement operationId: getLedgerAccountSettlement description: Get details on a single ledger account settlement. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger_account_settlement tags: - LedgerAccountSettlement operationId: updateLedgerAccountSettlement description: Update the details of a ledger account settlement. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_settlements/{id}/ledger_entries": parameters: - name: id in: path schema: type: string required: true description: id patch: summary: patch ledger_account_settlement_entries tags: - LedgerAccountSettlement operationId: patchLedgerAccountSettlementEntries description: Add ledger entries to a draft ledger account settlement. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement_entries_patch_request" responses: '200': description: successful '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful '429': description: too many requests delete: summary: delete ledger_account_settlement_entries tags: - LedgerAccountSettlement operationId: deleteLedgerAccountSettlementEntries description: Remove ledger entries from a draft ledger account settlement. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_settlement_entries_delete_request" responses: '200': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful '429': description: too many requests "/api/ledger_account_statements": post: summary: create ledger_account_statement tags: - LedgerAccountStatement operationId: createLedgerAccountStatement description: Create a ledger account statement. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_statement_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_statement" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_account_statements/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get ledger_account_statement tags: - LedgerAccountStatement operationId: getLedgerAccountStatement description: Get details on a single ledger account statement. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account_statement" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_accounts": get: summary: list ledger_accounts tags: - LedgerAccount operationId: listLedgerAccounts description: Get a list of ledger accounts. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: available_balance_amount in: query schema: additionalProperties: false properties: eq: type: integer gt: type: integer gte: type: integer lt: type: integer lte: type: integer not_eq: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), `eq` (=), or `not_eq` (!=) to filter by balance amount. - name: balances in: query schema: additionalProperties: false properties: as_of_date: format: date type: string effective_at: format: date-time type: string effective_at_lower_bound: format: date-time type: string effective_at_upper_bound: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `balances[effective_at_lower_bound]` and `balances[effective_at_upper_bound]` to get the balances change between the two timestamps. The lower bound is inclusive while the upper bound is exclusive of the provided timestamps. If no value is supplied the balances will be retrieved not including that bound. - name: created_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the created at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use created_at%5Bgt%5D=2000-01-01T12:00:00Z. - name: currency in: query schema: type: string required: false - name: external_id in: query schema: type: string required: false - name: ledger_account_category_id in: query schema: format: uuid type: string required: false - name: ledger_id in: query schema: format: uuid type: string required: false - name: normal_balance in: query schema: enum: - credit - debit type: string - name: pending_balance_amount in: query schema: additionalProperties: false properties: eq: type: integer gt: type: integer gte: type: integer lt: type: integer lte: type: integer not_eq: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), `eq` (=), or `not_eq` (!=) to filter by balance amount. - name: per_page in: query schema: type: integer required: false - name: posted_balance_amount in: query schema: additionalProperties: false properties: eq: type: integer gt: type: integer gte: type: integer lt: type: integer lte: type: integer not_eq: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), `eq` (=), or `not_eq` (!=) to filter by balance amount. - name: updated_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the updated at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use updated_at%5Bgt%5D=2000-01-01T12:00:00Z. - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/bulk_name" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create ledger_account tags: - LedgerAccount operationId: createLedgerAccount description: Create a ledger account. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_accounts/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ledger account id (UUID) get: summary: get ledger_account tags: - LedgerAccount operationId: getLedgerAccount description: Get details on a single ledger account. security: - basic_auth: [] parameters: - name: id in: path schema: type: string required: true description: The ledger account id (UUID) or external_id - name: balances in: query schema: additionalProperties: false properties: as_of_date: format: date type: string as_of_lock_version: type: integer effective_at: format: date-time type: string effective_at_lower_bound: format: date-time type: string effective_at_upper_bound: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `balances[effective_at_lower_bound]` and `balances[effective_at_upper_bound]` to get the balances change between the two timestamps. The lower bound is inclusive while the upper bound is exclusive of the provided timestamps. If no value is supplied the balances will be retrieved not including that bound. Use `balances[as_of_lock_version]` to retrieve a balance as of a specific Ledger Account `lock_version`. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger_account tags: - LedgerAccount operationId: updateLedgerAccount description: Update the details of a ledger account. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_account_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete ledger_account tags: - LedgerAccount operationId: deleteLedgerAccount description: Delete a ledger account. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_account" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_entries": get: summary: list ledger_entries tags: - LedgerEntry operationId: listLedgerEntries description: Get a list of all ledger entries. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: amount in: query schema: properties: eq: type: integer gt: type: integer gte: type: integer lt: type: integer lte: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by amount. - name: as_of_lock_version in: query schema: type: integer required: false description: Shows all ledger entries that were present on a ledger account at a particular `lock_version`. You must also specify `ledger_account_id`. - name: direction in: query schema: enum: - credit - debit type: string required: false description: If true, response will include ledger entries that were deleted. When you update a ledger transaction to specify a new set of entries, the previous entries are deleted. - name: effective_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the transaction's effective time. Format ISO8601 - name: effective_date in: query schema: additionalProperties: format: date type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the transaction's effective date. Format YYYY-MM-DD - name: ledger_account_category_id in: query schema: format: uuid type: string required: false description: Get all ledger entries that match the direction specified. One of `credit`, `debit`. - name: ledger_account_id in: query schema: format: uuid type: string required: false - name: ledger_account_lock_version in: query schema: additionalProperties: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the lock_version of a ledger account. For example, for all entries created at or before before lock_version 1000 of a ledger account, use `ledger_account_lock_version%5Blte%5D=1000`. - name: ledger_account_payout_id in: query schema: format: uuid type: string required: false - name: ledger_account_settlement_id in: query schema: format: uuid type: string required: false - name: ledger_account_statement_id in: query schema: format: uuid type: string required: false description: Get all ledger entries that are included in the ledger account statement. - name: ledger_transaction_id in: query schema: format: uuid type: string required: false - name: order_by in: query schema: additionalProperties: false properties: created_at: enum: - asc - desc type: string effective_at: enum: - asc - desc type: string type: object style: deepObject explode: true required: false description: Order by `created_at` or `effective_at` in `asc` or `desc` order. For example, to order by `effective_at asc`, use `order_by%5Beffective_at%5D=asc`. Ordering by only one field at a time is supported. - name: per_page in: query schema: type: integer required: false - name: show_balances in: query schema: type: boolean required: false description: If true, response will include the balances attached to the ledger entry. If there is no balance available, null will be returned instead. - name: show_deleted in: query schema: type: boolean required: false description: If true, response will include ledger entries that were deleted. When you update a ledger transaction to specify a new set of entries, the previous entries are deleted. - name: status in: query schema: enum: - pending - posted - archived type: string required: false description: Get all ledger entries that match the status specified. One of `pending`, `posted`, or `archived`. For multiple statuses, use `status[]=pending&status[]=posted`. - name: status[] in: query schema: items: enum: - pending - posted - archived type: string type: array explode: true required: false description: Get all ledger entries that match the status specified. One of `pending`, `posted`, or `archived`. For multiple statuses, use `status[]=pending&status[]=posted`. - name: updated_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the posted at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use updated_at%5Bgt%5D=2000-01-01T12:00:00Z. - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_entry" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_entries/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get ledger_entry tags: - LedgerEntry operationId: getLedgerEntry description: Get details on a single ledger entry. security: - basic_auth: [] parameters: - name: show_balances in: query schema: type: boolean required: false description: If true, response will include the balances attached to the ledger entry. If there is no balance available, null will be returned instead. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_entry" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger_entry tags: - LedgerEntry operationId: updateLedgerEntry description: Update the details of a ledger entry. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_entry_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_entry" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_transaction_versions": get: summary: list ledger_transaction_versions tags: - LedgerTransaction operationId: listLedgerTransactionVersions description: Get a list of ledger transaction versions. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: created_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the created_at timestamp. For example, for all dates after Jan 1 2000 12:00 UTC, use created_at%5Bgt%5D=2000-01-01T12:00:00Z. - name: ledger_account_statement_id in: query schema: format: uuid type: string required: false description: Get all ledger transaction versions that are included in the ledger account statement. - name: ledger_transaction_id in: query schema: format: uuid type: string required: false description: Get all the ledger transaction versions corresponding to the ID of a ledger transaction. - name: per_page in: query schema: type: integer required: false - name: version in: query schema: additionalProperties: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the version. For example, for all versions after 2, use version%5Bgt%5D=2. responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_transaction_version" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_transactions": get: summary: list ledger_transactions tags: - LedgerTransaction operationId: listLedgerTransactions description: Get a list of ledger transactions. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: amount in: query schema: properties: eq: type: integer gt: type: integer gte: type: integer lt: type: integer lte: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by amount. - name: effective_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use "gt" (>), "gte" (>=), "lt" (<), "lte" (<=), or "eq" (=) to filter by effective at. For example, for all transactions after Jan 1 2000, use effective_at%5Bgt%5D=2000-01-01T00:00:00:00.000Z. - name: effective_date in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by effective date. For example, for all dates after Jan 1 2000, use effective_date%5Bgt%5D=2000-01-01. - name: external_id in: query schema: type: string required: false - name: ledger_account_category_id in: query schema: format: uuid type: string required: false - name: ledger_account_id in: query schema: format: uuid type: string required: false - name: ledger_account_settlement_id in: query schema: format: uuid type: string required: false - name: ledger_id in: query schema: format: uuid type: string required: false - name: ledgerable_id in: query schema: format: uuid type: string required: false - name: ledgerable_type in: query schema: enum: - expected_payment - incoming_payment_detail - payment_order - return - reversal type: string required: false - name: order_by in: query schema: additionalProperties: false properties: created_at: enum: - asc - desc type: string effective_at: enum: - asc - desc type: string type: object style: deepObject explode: true required: false description: Order by `created_at` or `effective_at` in `asc` or `desc` order. For example, to order by `effective_at asc`, use `order_by%5Beffective_at%5D=asc`. Ordering by only one field at a time is supported. - name: partially_posts_ledger_transaction_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: posted_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the posted at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use posted_at%5Bgt%5D=2000-01-01T12:00:00Z. - name: reverses_ledger_transaction_id in: query schema: format: uuid type: string required: false - name: status in: query schema: oneOf: - enum: - pending - posted - archived type: string - items: enum: - pending - posted - archived type: string type: array required: false - name: updated_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the posted at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use updated_at%5Bgt%5D=2000-01-01T12:00:00Z. - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: parameter invalid content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create ledger_transaction tags: - LedgerTransaction operationId: createLedgerTransaction description: Create a ledger transaction. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests content: application/json: schema: "$ref": "#/components/schemas/error_message" "/api/ledger_transactions/{id}": get: summary: get ledger_transaction tags: - LedgerTransaction operationId: getLedgerTransaction description: Get details on a single ledger transaction. security: - basic_auth: [] parameters: - name: id in: path schema: type: string required: true description: The ledger transaction id (UUID) or external_id. If using external_id, only non-archived Ledger Transactions will be returned. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict when two ledger transactions in the organization have the same external_id content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger_transaction tags: - LedgerTransaction operationId: updateLedgerTransaction description: Update the details of a ledger transaction. security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: The ledger transaction id (UUID) requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests content: application/json: schema: "$ref": "#/components/schemas/error_message" "/api/ledger_transactions/{id}/partial_post": post: summary: create ledger_transaction partial post tags: - LedgerTransaction operationId: CreateLedgerTransactionPartialPost description: Create a ledger transaction that partially posts another ledger transaction. security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the ledger transaction to partially post. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction_partial_post_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_transactions/{id}/reversal": post: summary: create ledger_transaction reversal tags: - LedgerTransaction operationId: CreateLedgerTransactionReversal description: Create a ledger transaction reversal. security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: The id of ledger transaction to reverse. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction_reversal_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger_transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledger_transactions/{id}/versions": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: list ledger_transaction versions tags: - LedgerTransaction operationId: listLedgerTransactionVersionsNested description: Get a list of ledger transaction versions. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: created_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the created_at timestamp. For example, for all dates after Jan 1 2000 12:00 UTC, use created_at%5Bgt%5D=2000-01-01T12:00:00Z. - name: per_page in: query schema: type: integer required: false - name: version in: query schema: additionalProperties: type: integer type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the version. For example, for all versions after 2, use version%5Bgt%5D=2. - "$ref": "#/components/parameters/bulk_id" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger_transaction_version" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledgers": get: summary: list ledgers tags: - Ledger operationId: listLedgers description: Get a list of ledgers. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: updated_at in: query schema: additionalProperties: format: date-time type: string type: object style: deepObject explode: true required: false description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the posted at timestamp. For example, for all times after Jan 1 2000 12:00 UTC, use updated_at%5Bgt%5D=2000-01-01T12:00:00Z. - "$ref": "#/components/parameters/bulk_id" - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/ledger" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create ledger tags: - Ledger operationId: createLedger description: Create a ledger. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ledgers/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get ledger tags: - Ledger operationId: getLedger description: Get details on a single ledger. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update ledger tags: - Ledger operationId: updateLedger description: Update the details of a ledger. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/ledger_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete ledger tags: - Ledger operationId: deleteLedger description: Delete a ledger. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ledger" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/legal_entities": get: summary: list legal_entities tags: - LegalEntity operationId: listLegalEntities description: Get a list of all legal entities. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: external_id in: query schema: type: string required: false description: An optional user-defined 180 character unique identifier. - name: legal_entity_type in: query schema: enum: - business - individual type: string required: false - name: per_page in: query schema: type: integer required: false - name: show_deleted in: query schema: type: string required: false - name: status in: query schema: enum: - pending - draft - active - suspended - denied type: string required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create legal_entity tags: - LegalEntity operationId: createLegalEntity description: Create a legal entity. All country fields use ISO 3166-1 alpha-2 (e.g. US). security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/legal_entity_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/legal_entities/{id}": parameters: - name: id in: path schema: type: string required: true description: id get: summary: get legal_entity tags: - LegalEntity operationId: getLegalEntity description: Get details on a single legal entity. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/legal_entity" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update legal entity tags: - LegalEntity operationId: updateLegalEntity description: Update a legal entity. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/legal_entity_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/legal_entity_associations": post: summary: create legal_entity_association tags: - LegalEntityAssociation operationId: createLegalEntityAssociation description: Add an associated legal entity to a business legal entity. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/legal_entity_association_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/legal_entity_association" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/legal_entity_associations/{id}": parameters: - name: id in: path schema: type: string required: true description: The id of an existing legal entity association. delete: summary: delete legal_entity_association tags: - LegalEntityAssociation operationId: deleteLegalEntityAssociation description: Remove an associated legal entity from a business legal entity. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/legal_entity_association" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_actions": get: summary: list payment_actions tags: - PaymentAction operationId: listPaymentActions description: Get a list of all payment actions. security: - basic_auth: [] parameters: - name: actionable_id in: query schema: format: uuid type: string required: false description: The ID of the associated actionable object. - name: actionable_type in: query schema: type: string required: false description: The type of the associated actionable object. One of `payment_order`, `expected_payment`. - name: after_cursor in: query schema: nullable: true type: string required: false - name: created_at in: query schema: properties: eq: format: date-time type: string gt: format: date-time type: string gte: format: date-time type: string lt: format: date-time type: string lte: format: date-time type: string type: object style: deepObject explode: true required: false description: Filter by `created_at` using comparison operators like `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to filter by the created at timestamp. For example, `created_at[gte]=2024-01-01T00:00:00Z` - name: internal_account_id in: query schema: format: uuid type: string required: false description: The ID of one of your internal accounts. - name: per_page in: query schema: type: integer required: false - name: status in: query schema: enum: - pending - processable - processing - sent - acknowledged - failed - cancelled type: string required: false description: Filter by payment actions of a specific status. - name: type in: query schema: enum: - void - stop - issue type: string required: false description: The type of payment action. - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/payment_action" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create payment_action tags: - PaymentAction operationId: createPaymentAction description: Create a payment action. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_action_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_action" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: invalid type content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_actions/{id}": parameters: - name: id in: path schema: type: string required: true description: id get: summary: get payment_action tags: - PaymentAction operationId: getPaymentAction description: Get details on a single payment action. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_action" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update payment_action tags: - PaymentAction operationId: updatePaymentAction description: Update a single payment action. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_action_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_action" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: missing status content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_flows": get: summary: list payment_flows tags: - PaymentFlow operationId: listPaymentFlows security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: client_token in: query schema: type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false - name: originating_account_id in: query schema: format: uuid type: string required: false - name: payment_order_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: receiving_account_id in: query schema: format: uuid type: string required: false - name: status in: query schema: type: string required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/payment_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create payment_flow tags: - PaymentFlow operationId: createPaymentFlow deprecated: true security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_flow_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_flows/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get payment_flow tags: - PaymentFlow operationId: getPaymentFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_flow" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update payment_flow tags: - PaymentFlow operationId: updatePaymentFlow security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_flow_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_flow" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_orders": get: summary: list payment orders tags: - PaymentOrder operationId: listPaymentOrders description: Get a list of all payment orders security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false - name: created_at_end in: query schema: format: date type: string required: false description: An inclusive upper bound for searching created_at - name: created_at_start in: query schema: format: date type: string required: false description: An inclusive lower bound for searching created_at - name: direction in: query schema: enum: - credit - debit type: string required: false - name: effective_date_end in: query schema: format: date type: string required: false description: An inclusive upper bound for searching effective_date - name: effective_date_start in: query schema: format: date type: string required: false description: An inclusive lower bound for searching effective_date - name: external_id in: query schema: type: string required: false - name: originating_account_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - name: priority in: query schema: enum: - high - normal type: string required: false description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail. - name: process_after_end in: query schema: format: date-time type: string required: false description: An inclusive upper bound for searching process_after - name: process_after_start in: query schema: format: date-time type: string required: false description: An inclusive lower bound for searching process_after - name: reference_number in: query schema: type: string required: false description: Query for records with the provided reference number - name: status in: query schema: enum: - approved - cancelled - completed - denied - failed - held - needs_approval - pending - processing - returned - reversed - sent - stopped type: string required: false - name: transaction_id in: query schema: format: uuid type: string required: false description: The ID of a transaction that the payment order has been reconciled to. - name: type in: query schema: enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin type: string required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/payment_order" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create payment order tags: - PaymentOrder operationId: createPaymentOrder description: Create a new Payment Order security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_order_create_request" multipart/form-data: schema: "$ref": "#/components/schemas/payment_order_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_order" '400': description: parameter_invalid content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_orders/create_async": post: summary: create async payment order tags: - PaymentOrder operationId: createAsyncPaymentOrder description: Create a new payment order asynchronously security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_order_async_create_request" responses: '202': description: successful content: application/json: schema: "$ref": "#/components/schemas/async_response" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_orders/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true get: summary: get payment order tags: - PaymentOrder operationId: getPaymentOrder description: Get details on a single payment order security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_order" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update payment order tags: - PaymentOrder operationId: updatePaymentOrder description: Update a payment order security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/payment_order_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_order" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: parameter_invalid content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_orders/{payment_order_id}/reversals": get: summary: list reversals tags: - Reversal operationId: listReversals description: Get a list of all reversals of a payment order. security: - basic_auth: [] parameters: - name: payment_order_id in: path schema: format: uuid type: string required: true description: The ID of the relevant Payment Order. - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/reversal" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create reversal tags: - Reversal operationId: createReversal description: Create a reversal for a payment order. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: payment_order_id in: path schema: description: The id of the payment order being reversed. format: uuid type: string required: true description: The ID of the relevant Payment Order. requestBody: content: application/json: schema: "$ref": "#/components/schemas/reversal_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/reversal" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_orders/{payment_order_id}/reversals/{reversal_id}": parameters: - name: payment_order_id in: path schema: format: uuid type: string required: true description: The id of the payment order being reversed. - name: reversal_id in: path schema: format: uuid type: string required: true description: The ID of the reversal. get: summary: show reversal tags: - Reversal operationId: getReversal description: Get details on a single reversal of a payment order. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/reversal" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/payment_references": get: summary: list payment_references tags: - PaymentReference operationId: listPaymentReferences security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: reference_number in: query schema: type: string required: false description: The actual reference number assigned by the bank. - name: referenceable_id in: query schema: format: uuid type: string required: false description: The id of the referenceable to search for. Must be accompanied by the referenceable_type or will return an error. - name: referenceable_type in: query schema: enum: - payment_order - return - reversal - incoming_payment_detail - transaction type: string required: false description: One of the referenceable types. This must be accompanied by the id of the referenceable or will return an error. responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/payment_reference_object" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: validation error content: application/json: schema: type: object properties: errors: type: array items: type: string '429': description: too many requests "/api/payment_references/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get payment_reference tags: - PaymentReference operationId: getPaymentReference security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/payment_reference_object" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/ping": get: summary: ping api tags: - Ping operationId: pingAPI description: A test endpoint often used to confirm credentials and headers are being passed in correctly. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/ping_response" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: unsuccessful '500': description: internal server error "/api/returns": get: summary: list returns tags: - Return operationId: listReturns description: Get a list of returns. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false description: Specify `counterparty_id` if you wish to see returns that occurred with a specific counterparty. - name: internal_account_id in: query schema: format: uuid type: string required: false description: Specify `internal_account_id` if you wish to see returns to/from a specific account. - name: per_page in: query schema: type: integer required: false - name: returnable_id in: query schema: format: uuid type: string required: false description: The ID of a valid returnable. Must be accompanied by `returnable_type`. - name: returnable_type in: query schema: enum: - incoming_payment_detail - payment_order - return - reversal type: string required: false description: One of `payment_order`, `reversal`, or `incoming_payment_detail`. Must be accompanied by `returnable_id`. responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/return" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create return tags: - Return operationId: createReturn description: Create a return. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/return_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/return" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/returns/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of an existing return. get: summary: show return tags: - Return operationId: getReturn description: Get a single return. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/return" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/simulations/cases/{id}/resolve": parameters: - name: id in: path schema: type: string required: true description: Case ID patch: summary: resolve case simulation tags: - Case operationId: resolveCaseSimulation description: Resolve a simulated compliance case (sandbox only) security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/case_resolve_request" responses: '202': description: process started content: application/json: schema: "$ref": "#/components/schemas/case" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '405': description: not allowed in production content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unprocessable entity content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/simulations/incoming_payment_details/create_async": post: summary: create async incoming payment detail tags: - IncomingPaymentDetail operationId: createAsyncIncomingPaymentDetail description: Simulate Incoming Payment Detail security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/incoming_payment_detail_create_request" responses: '202': description: For lockbox check simulations, the incoming payment detail is created asynchronously, so the response echoes the request without an `id`. content: application/json: schema: "$ref": "#/components/schemas/incoming_payment_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '405': description: not allowed content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/simulations/legal_entities/{id}/update_status": parameters: - name: id in: path schema: type: string required: true description: Legal entity ID patch: summary: update legal entity status tags: - LegalEntity operationId: updateLegalEntityStatus description: Update Legal Entity Status (sandbox only) security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/legal_entity_update_status_request" responses: '202': description: process started content: application/json: schema: "$ref": "#/components/schemas/legal_entity" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '405': description: not allowed in production content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unprocessable entity content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/transaction_line_items": get: summary: list transaction_line_items tags: - TransactionLineItem operationId: listTransactionLineItems security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: id in: query schema: additionalProperties: format: uuid type: string type: object style: deepObject explode: true required: false - name: per_page in: query schema: type: integer required: false - name: transaction_id in: query schema: format: uuid type: string required: false - name: type in: query schema: enum: - originating - receiving nullable: true type: string required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/transaction_line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create transaction line items tags: - TransactionLineItem operationId: createTransactionLineItem security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/transaction_line_item_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/transaction_line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/transaction_line_items/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: id get: summary: get transaction line item tags: - TransactionLineItem operationId: listTransactionLineItem security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/transaction_line_item" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete transaction line item tags: - TransactionLineItem operationId: deleteTransactionLineItem security: - basic_auth: [] responses: '200': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/transactions": get: summary: list transactions tags: - Transaction operationId: listTransactions description: Get a list of all transactions. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: as_of_date_end in: query schema: format: date type: string required: false description: Filters transactions with an `as_of_date` starting on or before the specified date (YYYY-MM-DD). - name: as_of_date_start in: query schema: format: date type: string required: false description: Filters transactions with an `as_of_date` starting on or after the specified date (YYYY-MM-DD). - name: counterparty_id in: query schema: format: uuid type: string required: false - name: description in: query schema: type: string required: false description: Filters for transactions including the queried string in the description. - name: direction in: query schema: type: string required: false - name: internal_account_id in: query schema: format: uuid type: string required: false description: Specify `internal_account_id` if you wish to see transactions to/from a specific account. - name: payment_type in: query schema: type: string required: false - name: per_page in: query schema: type: integer required: false - name: posted in: query schema: type: boolean required: false description: Either `true` or `false`. - name: vendor_id in: query schema: type: string required: false description: Filters for transactions including the queried vendor id (an identifier given to transactions by the bank). - name: virtual_account_id in: query schema: format: uuid type: string required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create transaction tags: - Transaction operationId: createTransaction security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/transaction_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/transactions/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: Transaction ID get: summary: get transaction tags: - Transaction operationId: getTransaction description: Get details on a single transaction. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/transaction" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update transaction tags: - Transaction operationId: updateTransaction description: Update a single transaction. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/transaction_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/transaction" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete transaction tags: - Transaction operationId: deleteTransaction security: - basic_auth: [] responses: '204': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/transactions/{transaction_id}/line_items": parameters: - name: transaction_id in: path schema: format: uuid type: string required: true description: transaction_id - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false - name: type in: query schema: enum: - originating - receiving nullable: true type: string required: false get: summary: list transaction_line_items tags: - TransactionLineItem operationId: listTransactionLineItemsNested description: This endpoint has been deprecated in favor of /api/transaction_line_items deprecated: true security: - basic_auth: [] responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/transaction_line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/validations/routing_numbers": get: summary: validate routing numbers tags: - Validation operationId: validateRoutingNumber description: Validates the routing number information supplied without creating a routing detail security: - basic_auth: [] parameters: - name: routing_number in: query schema: type: string required: true description: The routing number that is being validated. - name: routing_number_type in: query schema: enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - mx_bank_identifier - my_branch_code - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code type: string required: true description: The type of routing number. See https://docs.moderntreasury.com/platform/reference/routing-detail-object for more details. In sandbox mode we currently only support `aba` and `swift` with routing numbers '123456789' and 'GRINUST0XXX' respectively. responses: '200': description: successful valid routing number and type content: application/json: schema: "$ref": "#/components/schemas/routing_number_lookup_request" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful with invalid parameter content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/virtual_account_settings": get: summary: list virtual_account_settings tags: - VirtualAccountSetting operationId: listVirtualAccountSettings description: List virtual account settings. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: external_id in: query schema: type: string required: false description: A user-defined identifier for the virtual account setting. - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/virtual_account_setting" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create virtual_account_setting tags: - VirtualAccountSetting operationId: createVirtualAccountSetting description: Create a virtual account setting. security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/virtual_account_setting_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/virtual_account_setting" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unauthorized content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/virtual_accounts": get: summary: list virtual_accounts tags: - VirtualAccount operationId: listVirtualAccounts description: Get a list of virtual accounts. security: - basic_auth: [] parameters: - name: after_cursor in: query schema: nullable: true type: string required: false - name: counterparty_id in: query schema: format: uuid type: string required: false - name: external_id in: query schema: type: string required: false description: Only return virtual accounts with this external ID. - name: internal_account_id in: query schema: format: uuid type: string required: false - name: per_page in: query schema: type: integer required: false - "$ref": "#/components/parameters/metadata_query" responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/virtual_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create virtual_account tags: - VirtualAccount operationId: createVirtualAccount security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. requestBody: content: application/json: schema: "$ref": "#/components/schemas/virtual_account_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/virtual_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unauthorized content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '409': description: conflict content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/virtual_accounts/{id}": parameters: - name: id in: path schema: format: uuid type: string required: true description: Virtual Acccount ID get: summary: get virtual_account tags: - VirtualAccount operationId: getVirtualAccount security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/virtual_account" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update virtual_account tags: - VirtualAccount operationId: updateVirtualAccount security: - basic_auth: [] parameters: [] requestBody: content: application/json: schema: "$ref": "#/components/schemas/virtual_account_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/virtual_account" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete virtual_account tags: - VirtualAccount operationId: deleteVirtualAccount security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/virtual_account" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{accounts_type}/{account_id}/account_details": get: summary: list account_details tags: - AccountDetail operationId: listAccountDetails description: Get a list of account details for a single internal or external account. security: - basic_auth: [] parameters: - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: "$ref": "#/components/schemas/accounts_type" required: true - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/account_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create account_detail tags: - AccountDetail operationId: createAccountDetail description: Create an account detail for an external account. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: enum: - external_accounts type: string required: true requestBody: content: application/json: schema: "$ref": "#/components/schemas/account_detail_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/account_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{accounts_type}/{account_id}/account_details/{id}": get: summary: get account_detail tags: - AccountDetail operationId: getAccountDetail description: Get a single account detail for a single internal or external account. security: - basic_auth: [] parameters: - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: "$ref": "#/components/schemas/accounts_type" required: true - name: id in: path schema: format: uuid type: string required: true description: The ID of the account detail. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/account_detail" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete account_detail tags: - AccountDetail operationId: deleteAccountDetail description: Delete a single account detail for an external account. security: - basic_auth: [] parameters: - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: enum: - external_accounts type: string required: true - name: id in: path schema: format: uuid type: string required: true description: The ID of the account detail. responses: '204': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{accounts_type}/{account_id}/routing_details": get: summary: list routing_details tags: - RoutingDetail operationId: listRoutingDetails description: Get a list of routing details for a single internal or external account. security: - basic_auth: [] parameters: - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: "$ref": "#/components/schemas/accounts_type" required: true - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/routing_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create routing_detail tags: - RoutingDetail operationId: createRoutingDetail description: Create a routing detail for a single external account. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: enum: - external_accounts type: string required: true requestBody: content: application/json: schema: "$ref": "#/components/schemas/routing_detail_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/routing_detail" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{accounts_type}/{account_id}/routing_details/{id}": get: summary: get routing_detail tags: - RoutingDetail operationId: getRoutingDetail description: Get a single routing detail for a single internal or external account. security: - basic_auth: [] parameters: - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: "$ref": "#/components/schemas/accounts_type" required: true - name: id in: path schema: format: uuid type: string required: true description: The ID of the routing detail. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/routing_detail" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests delete: summary: delete routing_detail tags: - RoutingDetail operationId: deleteRoutingDetail description: Delete a routing detail for a single external account. security: - basic_auth: [] parameters: - name: account_id in: path schema: format: uuid type: string required: true description: The ID of the account. - name: accounts_type in: path schema: enum: - external_accounts type: string required: true - name: id in: path schema: format: uuid type: string required: true description: The ID of the routing detail. responses: '204': description: successful '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{documentable_type}/{documentable_id}/documents": get: summary: list documents - nested path (legacy) tags: - Document operationId: listDocumentsNested description: Get a list of documents. security: - basic_auth: [] parameters: - name: documentable_id in: path schema: format: uuid type: string required: true description: The unique identifier for the associated object. - name: documentable_type in: path schema: enum: - connections - counterparties - expected_payments - identifications - incoming_payment_details - internal_accounts - legal_entities - payment_orders - returns - transactions type: string required: true description: The type of the associated object. Currently can be one of `connection`, `counterparty`, `expected_payment`, `identification`, `incoming_payment_detail`, `internal_account`, `legal_entity`, `payment_order`, `return`, or `transaction`. - name: after_cursor in: query schema: nullable: true type: string required: false - name: document_type in: query schema: type: string required: false description: A category given to the document, can be `null`. - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/document" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests post: summary: create document - nested path (legacy) tags: - Document operationId: createDocumentNested description: Create a document. security: - basic_auth: [] parameters: - name: Idempotency-Key in: header schema: type: string required: false description: This key should be something unique, preferably something like an UUID. - name: documentable_id in: path schema: format: uuid type: string required: true description: The unique identifier for the associated object. - name: documentable_type in: path schema: enum: - connections - counterparties - expected_payments - identifications - incoming_payment_details - internal_accounts - legal_entities - payment_orders - returns - transactions type: string required: true description: The type of the associated object. Currently can be one of `connection`, `counterparty`, `expected_payment`, `identification`, `incoming_payment_detail`, `internal_account`, `legal_entity`, `payment_order`, `return`, or `transaction`. requestBody: content: multipart/form-data: schema: "$ref": "#/components/schemas/legacy_document_create_request" responses: '201': description: successful content: application/json: schema: "$ref": "#/components/schemas/document" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{documentable_type}/{documentable_id}/documents/{id}": parameters: - name: documentable_id in: path schema: format: uuid type: string required: true description: The unique identifier for the associated object. - name: documentable_type in: path schema: enum: - connections - counterparties - expected_payments - identifications - incoming_payment_details - internal_accounts - legal_entities - payment_orders - returns - transactions type: string required: true description: The type of the associated object. Currently can be one of `connection`, `counterparty`, `expected_payment`, `identification`, `incoming_payment_detail`, `internal_account`, `legal_entity`, `payment_order`, `return`, or `transaction`. - name: id in: path schema: format: uuid type: string required: true description: The ID of the document. get: summary: get document - nested path (legacy) tags: - Document operationId: getDocumentNested description: Get an existing document. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/document" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{documentable_type}/{documentable_id}/documents/{id}/download": parameters: - name: documentable_id in: path schema: format: uuid type: string required: true description: The unique identifier for the associated object. - name: documentable_type in: path schema: enum: - connections - counterparties - expected_payments - identifications - incoming_payment_details - internal_accounts - legal_entities - payment_orders - returns - transactions type: string required: true description: The type of the associated object. Currently can be one of `connection`, `counterparty`, `expected_payment`, `identification`, `incoming_payment_detail`, `internal_account`, `legal_entity`, `payment_order`, `return`, or `transaction`. - name: id in: path schema: format: uuid type: string required: true description: The ID of the document. get: summary: download document - nested path (legacy) tags: - Document operationId: downloadDocumentNested description: Download an existing document. security: - basic_auth: [] responses: '302': description: redirect '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{itemizable_type}/{itemizable_id}/line_items": get: summary: list line items tags: - LineItem operationId: listLineItems description: Get a list of line items security: - basic_auth: [] parameters: - name: itemizable_id in: path schema: format: uuid type: string required: true description: The ID of the payment order or expected payment. - name: itemizable_type in: path schema: enum: - expected_payments - payment_orders type: string required: true description: One of `payment_orders` or `expected_payments`. - name: after_cursor in: query schema: nullable: true type: string required: false - name: per_page in: query schema: type: integer required: false responses: '200': description: successful headers: X-After-Cursor: schema: nullable: true type: string required: false description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page. X-Per-Page: schema: nullable: true type: integer description: The current `per_page`. content: application/json: schema: type: array items: "$ref": "#/components/schemas/line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests "/api/{itemizable_type}/{itemizable_id}/line_items/{id}": get: summary: get line item tags: - LineItem operationId: getLineItem description: Get a single line item security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the line item. - name: itemizable_id in: path schema: format: uuid type: string required: true description: The ID of the payment order or expected payment. - name: itemizable_type in: path schema: enum: - expected_payments - payment_orders type: string required: true description: One of `payment_orders` or `expected_payments`. responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/line_item" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests patch: summary: update line item tags: - LineItem operationId: updateLineItem security: - basic_auth: [] parameters: - name: id in: path schema: format: uuid type: string required: true description: The ID of the line item. - name: itemizable_id in: path schema: format: uuid type: string required: true description: The ID of the payment order or expected payment. - name: itemizable_type in: path schema: enum: - expected_payments - payment_orders type: string required: true description: One of `payment_orders` or `expected_payments`. requestBody: content: application/json: schema: "$ref": "#/components/schemas/line_item_update_request" responses: '200': description: successful content: application/json: schema: "$ref": "#/components/schemas/line_item" '400': description: bad request content: application/json: schema: "$ref": "#/components/schemas/error_message" '401': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '403': description: forbidden content: application/json: schema: "$ref": "#/components/schemas/error_message" '404': description: not found content: application/json: schema: "$ref": "#/components/schemas/error_message" '415': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '422': description: unsuccessful content: application/json: schema: "$ref": "#/components/schemas/error_message" '429': description: too many requests servers: - url: https://app.moderntreasury.com components: parameters: bulk_id: name: id[] in: query schema: items: type: string type: array style: form explode: true allowReserved: true required: false description: If you have specific IDs to retrieve in bulk, you can pass them as query parameters delimited with `id[]=`, for example `?id[]=123&id[]=abc`. bulk_name: name: name[] in: query schema: items: type: string type: array style: form explode: true allowReserved: true required: false description: If you have specific names to retrieve in bulk, you can pass them as query parameters delimited with `name[]=`, for example `?name[]=123&name[]=abc`. metadata_query: name: metadata in: query schema: additionalProperties: type: string type: object style: deepObject explode: true required: false description: For example, if you want to query for records with metadata key `Type` and value `Loan`, the query would be `metadata%5BType%5D=Loan`. This encodes the query parameters. schemas: account_capability: type: object properties: created_at: type: string format: date-time direction: type: string enum: - credit - debit description: One of `debit` or `credit`. Indicates the direction of money movement this capability is responsible for. discarded_at: type: string format: date-time nullable: true id: type: string format: uuid identifier: type: string nullable: true description: A unique reference assigned by your bank for tracking and recognizing payment files. It is important this is formatted exactly how the bank assigned it. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: Indicates the the type of payment this capability is responsible for originating. updated_at: type: string format: date-time additionalProperties: true required: - id - object - live_mode - created_at - updated_at - discarded_at - direction - identifier - payment_type minProperties: 9 maxProperties: 9 account_capability_update_request: type: object properties: identifier: type: string description: A unique reference assigned by your bank for tracking and recognizing payment files. It is important this is formatted exactly how the bank assigned it. additionalProperties: false required: - identifier minProperties: 1 maxProperties: 1 account_collection_flow: type: object properties: client_token: type: string description: The client token of the account collection flow. This token can be used to embed account collection in your client-side application. counterparty_id: type: string format: uuid description: The ID of a counterparty. An external account created with this flow will be associated with this counterparty. created_at: type: string format: date-time external_account_id: type: string format: uuid nullable: true description: If present, the ID of the external account created using this flow. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string payment_types: type: array items: type: string enum: - ach - wire description: An account created with this flow will support payments of one of these types. receiving_countries: type: array items: type: string enum: - USA - AUS - BEL - CAN - CHL - CHN - COL - FRA - DEU - HKG - IND - IRL - ITA - MEX - NLD - PER - ESP - GBR description: An account created with this flow will support wires from the US to these countries. status: type: string enum: - cancelled - completed - expired - pending description: The current status of the account collection flow. One of `pending`, `completed`, `expired`, or `cancelled`. updated_at: type: string format: date-time additionalProperties: false required: - payment_types - counterparty_id minProperties: 10 account_collection_flow_create_request: type: object properties: counterparty_id: type: string format: uuid description: Required. payment_types: type: array items: type: string description: Required. At least one of `ach`, `wire` or `check`. receiving_countries: type: array items: type: string enum: - USA - AUS - BEL - CAN - CHL - CHN - COL - FRA - DEU - HKG - IND - IRL - ITA - MEX - NLD - PER - ESP - GBR description: Optional. Array of 3-digit ISO country codes. required: - payment_types - counterparty_id account_collection_flow_update_request: type: object properties: status: type: string enum: - cancelled description: Required. The updated status of the account collection flow. Can only be used to mark a flow as `cancelled`. required: - status account_detail: type: object properties: account_number: type: string description: The account number for the bank account. account_number_safe: type: string description: The last 4 digits of the account_number. account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address description: The type of the account number. For wallet addresses, use the chain-specific type (e.g. `ethereum_address`). Use `other` if the account number is in a generic format. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - account_number_type - account_number_safe minProperties: 8 maxProperties: 9 account_detail_create_request: type: object properties: account_number: type: string description: The account number for the bank account. account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address description: The type of the account number. For wallet addresses, use the chain-specific type (e.g. `ethereum_address`). Use `other` if the account number is in a generic format. required: - account_number accounting: type: object properties: account_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. class_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of the class objects in your accounting system. Class objects track segments of your business independent of client or project. Note that these will only be accessible if your accounting system has been connected. deprecated: true accounts_type: type: string enum: - external_accounts - internal_accounts address: type: object nullable: true properties: country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] created_at: type: string format: date-time id: type: string format: uuid line1: type: string nullable: true line2: type: string nullable: true live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). object: type: string postal_code: type: string nullable: true description: The postal code of the address. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - line1 - line2 - locality - region - postal_code - country minProperties: 11 address_request: type: object properties: country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string nullable: true line2: type: string nullable: true locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string nullable: true description: The postal code of the address. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. alert_condition: type: object properties: field: type: string description: One of `available_balance_amount`, `pending_balance_amount`, `posted_balance_amount`, `ledger_account_lock_version`. operator: type: string description: A logical operator to compare the `field` against the `value`. One of `less_than`, `less_than_or_equals`, `equals`, `greater_than_or_equals`, `greater_than`. value: type: integer description: The monitor's `current_ledger_account_balance_state.triggered` will be `true` when comparing the `field` to this integer value using the `operator` is logically true. additionalProperties: false required: - field - operator - value minProperties: 3 alert_condition_create_request: type: object properties: field: type: string description: One of `available_balance_amount`, `pending_balance_amount`, `posted_balance_amount`, `ledger_account_lock_version`. operator: type: string description: A logical operator to compare the `field` against the `value`. One of `less_than`, `less_than_or_equals`, `equals`, `greater_than_or_equals`, `greater_than`. value: type: integer description: The monitor's `current_ledger_account_balance_state.triggered` will be `true` when comparing the `field` to this integer value using the `operator` is logically true. required: - field - operator - value async_response: type: object properties: id: type: string format: uuid object: type: string additionalProperties: false required: - id - object minProperties: 2 balance: type: object properties: amount: type: integer description: The balance amount. amount_string: type: string description: The amount of the balance as a string, preserving full precision for values that may exceed safe integer limits in some languages. as_of_date: type: string format: date nullable: true description: The date on which the balance became true for the account. as_of_time: type: string format: time nullable: true description: The time on which the balance became true for the account. balance_type: type: string enum: - closing_available - closing_ledger - closing_pending_inflows - closing_pending_outflows - current_available - current_ledger - current_pending_inflows - current_pending_outflows - opening_available - opening_available_next_business_day - opening_ledger - other - previously_closed_book description: The specific type of balance reported. One of `opening_ledger`, `closing_ledger`, `current_ledger`, `opening_available`, `opening_available_next_business_day`, `closing_available`, `closing_pending_inflows`, `closing_pending_outflows`, `current_available`, 'previously_closed_book', `current_pending_inflows`, `current_pending_outflows`, or `other`. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: The currency of the balance. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time value_date: type: string format: date nullable: true description: The date on which the balance becomes available. vendor_code: type: string description: The code used by the bank when reporting this specific balance. vendor_code_type: type: string nullable: true description: The type of `vendor_code` being reported. Can be one of `bai2`, `bankprov`, `bnk_dev`, `cleartouch`, `currencycloud`, `cross_river`, `dwolla`, `evolve`, `goldman_sachs`, `iso20022`, `jpmc`, `mx`, `silvergate`, `swift`, or `us_bank`. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - amount - amount_string - currency - balance_type - vendor_code - vendor_code_type - as_of_date - as_of_time - value_date minProperties: 14 balance_create_request: type: object properties: amount: type: integer description: The balance amount. amount_string: type: string description: The amount of the balance as a string, preserving full precision for values that may exceed safe integer limits in some languages. balance_type: type: string enum: - closing_available - closing_ledger - closing_pending_inflows - closing_pending_outflows - current_available - current_ledger - current_pending_inflows - current_pending_outflows - opening_available - opening_available_next_business_day - opening_ledger - other - previously_closed_book description: The specific type of balance reported. One of `opening_ledger`, `closing_ledger`, `current_ledger`, `opening_available`, `opening_available_next_business_day`, `closing_available`, `closing_pending_inflows`, `closing_pending_outflows`, `current_available`, 'previously_closed_book', `current_pending_inflows`, `current_pending_outflows`, or `other`. vendor_code: type: string description: The code used by the bank when reporting this specific balance. vendor_code_type: type: string nullable: true description: The type of `vendor_code` being reported. Can be one of `bai2`, `bankprov`, `bnk_dev`, `cleartouch`, `currencycloud`, `cross_river`, `dwolla`, `evolve`, `goldman_sachs`, `iso20022`, `jpmc`, `mx`, `silvergate`, `swift`, or `us_bank`. additionalProperties: false required: - balance_type - vendor_code - vendor_code_type minProperties: 3 description: At least one of "amount" or "amount_string" is required. balance_report: type: object properties: as_of_date: type: string format: date description: The date of the balance report in local time. as_of_time: type: string format: time description: The time (24-hour clock) of the balance report in local time. balance_report_type: type: string enum: - intraday - other - previous_day - real_time description: The specific type of balance report. One of `intraday`, `previous_day`, `real_time`, or `other`. balances: type: array items: "$ref": "#/components/schemas/balance" description: An array of `Balance` objects. created_at: type: string format: date-time id: type: string format: uuid internal_account_id: type: string format: uuid description: The ID of one of your organization's Internal Accounts. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - balance_report_type - as_of_date - as_of_time - balances - internal_account_id minProperties: 10 balance_report_create_request: type: object properties: as_of_date: type: string format: date description: The date of the balance report in local time. as_of_time: type: string description: The time (24-hour clock) of the balance report in local time. balance_report_type: type: string enum: - intraday - other - previous_day - real_time description: The specific type of balance report. One of `intraday`, `previous_day`, `real_time`, or `other`. balances: type: array items: "$ref": "#/components/schemas/balance_create_request" description: An array of `Balance` objects. required: - as_of_date - as_of_time - balance_report_type - balances bulk_error: type: object properties: created_at: type: string format: date-time id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string request_errors: type: array items: type: object properties: code: type: string message: type: string parameter: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - request_errors minProperties: 6 bulk_request: type: object properties: action_type: type: string enum: - create - update - delete description: One of create, or update. created_at: type: string format: date-time failed_result_count: type: integer description: Total number of failed bulk results so far for this request id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string resource_type: type: string enum: - payment_order - ledger_account - ledger_transaction - expected_payment - transaction - transaction_line_item description: One of payment_order, expected_payment, or ledger_transaction. status: type: string enum: - pending - processing - completed description: One of pending, processing, or completed. success_result_count: type: integer description: Total number of successful bulk results so far for this request total_resource_count: type: integer description: Total number of items in the `resources` array. Once a bulk request is completed, `success_result_count` + `failed_result_count` will be equal to `total_result_count`. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - action_type - resource_type - status - total_resource_count - success_result_count - failed_result_count - metadata minProperties: 12 bulk_request_create_request: type: object properties: action_type: type: string enum: - create - update - delete description: One of create, or update. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury resource_type: type: string enum: - payment_order - ledger_account - ledger_transaction - expected_payment - transaction - transaction_line_item description: One of payment_order, expected_payment, or ledger_transaction. resources: type: array items: oneOf: - "$ref": "#/components/schemas/payment_order_async_create_request" - "$ref": "#/components/schemas/expected_payment_create_request" - "$ref": "#/components/schemas/ledger_transaction_create_request" - "$ref": "#/components/schemas/ledger_account_create_request" - "$ref": "#/components/schemas/transaction_create_request" - type: object properties: id: type: string format: uuid - allOf: - "$ref": "#/components/schemas/payment_order_update_request" - type: object properties: id: type: string format: uuid - allOf: - "$ref": "#/components/schemas/expected_payment_update_request" - type: object properties: id: type: string format: uuid - allOf: - "$ref": "#/components/schemas/transaction_update_request" - type: object properties: id: type: string format: uuid - allOf: - "$ref": "#/components/schemas/ledger_transaction_update_request" - type: object properties: id: type: string format: uuid - allOf: - "$ref": "#/components/schemas/ledger_account_update_request" - type: object properties: id: type: string format: uuid description: An array of objects where each object contains the input params for a single `action_type` request on a `resource_type` resource required: - action_type - resource_type - resources bulk_result: type: object properties: created_at: type: string format: date-time entity: anyOf: - "$ref": "#/components/schemas/payment_order" - "$ref": "#/components/schemas/expected_payment" - "$ref": "#/components/schemas/ledger_transaction" - "$ref": "#/components/schemas/ledger_account" - "$ref": "#/components/schemas/transaction" - "$ref": "#/components/schemas/bulk_error" description: An object with type as indicated by `entity_type`. This is the result object that is generated by performing the requested action on the provided input `request_params`. entity_id: type: string format: uuid description: Unique identifier for the result entity object. entity_type: type: string enum: - payment_order - ledger_account - ledger_transaction - expected_payment - transaction - transaction_line_item - bulk_error description: The type of the result entity object. For a successful bulk result, this is the same as the `resource_type` of the bulk request. For a failed bulk result, this is always bulk_error id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string request_id: type: string format: uuid description: Unique identifier for the request that created this bulk result. This is the ID of the bulk request when `request_type` is bulk_request request_params: type: object nullable: true additionalProperties: type: string description: An optional object that contains the provided input params for the request that created this result. This is an item in the `resources` array for the bulk_request request_type: type: string enum: - bulk_request description: The type of the request that created this result. bulk_request is the only supported `request_type` status: type: string enum: - pending - successful - failed description: One of successful or failed. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - request_id - request_type - status - request_params - entity_id - entity_type - entity minProperties: 12 case: type: object properties: created_at: type: string format: date-time id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string requested_actions: type: array items: "$ref": "#/components/schemas/requested_action" description: The pending actions requested to resolve the case. resolved_actions: type: array items: "$ref": "#/components/schemas/requested_action" description: The requested actions that have been resolved. status: type: string enum: - open - resolved description: The status of the case. subject_id: type: string format: uuid description: The ID of the object the case is about. subject_type: type: string description: The type of the object the case is about. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - status - subject_type - subject_id - requested_actions - resolved_actions minProperties: 10 case_resolve_request: type: object properties: category: type: string enum: - onboarding.proof_of_address_failure - onboarding.business_registry_verification_failure - onboarding.tin_check_failure - onboarding.ssn_check_failure - onboarding.database_failure child_legal_entity: type: object properties: addresses: type: array items: "$ref": "#/components/schemas/legal_entity_address" description: A list of addresses for the entity. bank_settings: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_bank_setting" business_description: type: string nullable: true description: A description of the business. business_designation: type: string nullable: true enum: - exempt_financial_institution - non_operating_business description: Legal designation associated with the business. business_name: type: string nullable: true description: The business's legal business name. citizenship_country: type: string nullable: true description: The country of citizenship for an individual. compliance_details: type: object nullable: true deprecated: true country_of_incorporation: type: string nullable: true description: The country where the business is incorporated, as an ISO 3166-1 alpha-2 country code (e.g. US). example: US created_at: type: string format: date-time date_formed: type: string format: date nullable: true description: A business's formation date (YYYY-MM-DD). date_of_birth: type: string format: date nullable: true description: An individual's date of birth (YYYY-MM-DD). discarded_at: type: string format: date-time nullable: true documents: type: array items: "$ref": "#/components/schemas/document" doing_business_as_names: type: array items: type: string description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name. email: type: string nullable: true description: The entity's primary email. expected_activity_volume: type: integer nullable: true description: Monthly expected transaction volume in USD. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. first_name: type: string nullable: true description: An individual's first name. id: type: string format: uuid identifications: type: array items: "$ref": "#/components/schemas/identification" description: A list of identifications for the legal entity. industry_classifications: type: array items: "$ref": "#/components/schemas/legal_entity_industry_classification" description: A list of industry classifications for the legal entity. intended_use: type: string nullable: true description: A description of the intended use of the legal entity. last_name: type: string nullable: true description: An individual's last name. legal_entity_associations: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_association" description: The legal entity associations and its child legal entities. example: [] legal_entity_type: type: string enum: - business - individual description: The type of legal entity. legal_structure: type: string nullable: true enum: - corporation - llc - non_profit - partnership - sole_proprietorship - trust description: The business's legal structure. listed_exchange: type: string nullable: true description: ISO 10383 market identifier code. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury middle_name: type: string nullable: true description: An individual's middle name. object: type: string operating_jurisdictions: type: array items: type: string description: A list of countries where the business operates, as ISO 3166-1 alpha-2 country codes (e.g. ["US", "CA"]). example: - US - CA phone_numbers: type: array items: type: object properties: phone_number: type: string description: 'A phone number in E.164 format. This format is strictly validated: include a leading + and country code, followed by digits only (no spaces or dashes), e.g. +12025551234.' description: A list of phone numbers in E.164 format. politically_exposed_person: type: boolean nullable: true description: Whether the individual is a politically exposed person. preferred_name: type: string nullable: true description: An individual's preferred name. prefix: type: string nullable: true description: An individual's prefix. primary_social_media_sites: type: array items: type: string description: A list of the entity's primary social media URLs. regulators: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_regulator" description: Array of regulatory bodies overseeing this institution. risk_rating: type: string nullable: true enum: - low - medium - high description: The risk rating of the legal entity. One of low, medium, high. service_provider_legal_entity_id: type: string format: uuid nullable: true description: The UUID of the parent legal entity in the service provider tree. status: type: string nullable: true enum: - active - denied - draft - pending - suspended description: The activation status of the legal entity. One of draft, pending, active, suspended, or denied. suffix: type: string nullable: true description: An individual's suffix. terms_of_use: type: object nullable: true properties: accepted_at: type: string format: date-time description: The ISO 8601 timestamp indicating when the terms of use were accepted. ip_address: type: string description: The IP address from which the terms of use were accepted. Supports both IPv4 and IPv6 formats. description: Acceptance of terms of use by the legal entity. third_party_verification: type: object nullable: true allOf: - "$ref": "#/components/schemas/third_party_verification" deprecated: true description: Deprecated. Use `third_party_verifications` instead. third_party_verifications: type: array items: "$ref": "#/components/schemas/third_party_verification" description: A list of third-party verifications run by external vendors. title: Third Party Verfications ticker_symbol: type: string nullable: true description: Stock ticker symbol for publicly traded companies. updated_at: type: string format: date-time wealth_and_employment_details: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_wealth_employment_detail" website: type: string nullable: true description: The entity's primary website URL. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - legal_entity_type - risk_rating - status - prefix - first_name - middle_name - last_name - suffix - preferred_name - citizenship_country - politically_exposed_person - date_of_birth - date_formed - business_name - doing_business_as_names - legal_structure - business_designation - phone_numbers - email - website - business_description - intended_use - expected_activity_volume - country_of_incorporation - operating_jurisdictions - primary_social_media_sites - listed_exchange - ticker_symbol - regulators - third_party_verification - third_party_verifications - service_provider_legal_entity_id - terms_of_use - metadata - external_id - bank_settings - compliance_details - wealth_and_employment_details - addresses - identifications - industry_classifications - documents - legal_entity_associations minProperties: 49 child_legal_entity_create: type: object properties: addresses: type: array items: "$ref": "#/components/schemas/legal_entity_address_create_request" description: A list of addresses for the entity. bank_settings: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_bank_setting" business_description: type: string nullable: true description: A description of the business. business_designation: type: string nullable: true enum: - exempt_financial_institution - non_operating_business description: Legal designation associated with the business. business_name: type: string nullable: true description: The business's legal business name. citizenship_country: type: string nullable: true description: The country of citizenship for an individual. compliance_details: type: object nullable: true deprecated: true connection_id: type: string nullable: true description: The connection ID for the connection the legal entity is associated with. Defaults to the id of the connection designated with an is_default value of true or the id of an existing operational connection if only one is available. Pass in a value of null to prevent the connection from being associated with the legal entity. country_of_incorporation: type: string nullable: true description: The country where the business is incorporated, as an ISO 3166-1 alpha-2 country code (e.g. US). example: US date_formed: type: string format: date nullable: true description: A business's formation date (YYYY-MM-DD). date_of_birth: type: string format: date nullable: true description: An individual's date of birth (YYYY-MM-DD). documents: type: array items: type: object properties: document_type: type: string enum: - articles_of_incorporation - certificate_of_good_standing - ein_letter - generic - identification_back - identification_front - proof_of_address description: A category given to the document, can be `null`. file_data: type: string description: Base64-encoded file content for the document. filename: type: string description: The original filename of the document. required: - document_type - file_data description: A list of documents to attach to the legal entity (e.g. articles of incorporation, certificate of good standing, proof of address). doing_business_as_names: type: array items: type: string description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name. email: type: string nullable: true description: The entity's primary email. expected_activity_volume: type: integer nullable: true description: Monthly expected transaction volume in USD. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. first_name: type: string nullable: true description: An individual's first name. identifications: type: array items: "$ref": "#/components/schemas/identification_create_request" description: A list of identifications for the legal entity. industry_classifications: type: array items: "$ref": "#/components/schemas/legal_entity_industry_classification" description: A list of industry classifications for the legal entity. intended_use: type: string nullable: true description: A description of the intended use of the legal entity. last_name: type: string nullable: true description: An individual's last name. legal_entity_associations: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_association_inline_create_request" description: The legal entity associations and its child legal entities. legal_entity_type: type: string enum: - business - individual description: The type of legal entity. legal_structure: type: string nullable: true enum: - corporation - llc - non_profit - partnership - sole_proprietorship - trust description: The business's legal structure. listed_exchange: type: string nullable: true description: ISO 10383 market identifier code. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury middle_name: type: string nullable: true description: An individual's middle name. operating_jurisdictions: type: array items: type: string description: A list of countries where the business operates, as ISO 3166-1 alpha-2 country codes (e.g. ["US", "CA"]). example: - US - CA phone_numbers: type: array items: type: object properties: phone_number: type: string description: 'A phone number in E.164 format. This format is strictly validated: include a leading + and country code, followed by digits only (no spaces or dashes), e.g. +12025551234.' description: A list of phone numbers in E.164 format. politically_exposed_person: type: boolean nullable: true description: Whether the individual is a politically exposed person. preferred_name: type: string nullable: true description: An individual's preferred name. prefix: type: string nullable: true description: An individual's prefix. primary_social_media_sites: type: array items: type: string description: A list of the entity's primary social media URLs. regulators: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_regulator" description: Array of regulatory bodies overseeing this institution. risk_rating: type: string nullable: true enum: - low - medium - high description: The risk rating of the legal entity. One of low, medium, high. service_provider_legal_entity_id: type: string format: uuid nullable: true description: The UUID of the parent legal entity in the service provider tree. suffix: type: string nullable: true description: An individual's suffix. terms_of_use: type: object nullable: true properties: accepted_at: type: string format: date-time description: The ISO 8601 timestamp indicating when the terms of use were accepted. ip_address: type: string description: The IP address from which the terms of use were accepted. Supports both IPv4 and IPv6 formats. description: Acceptance of terms of use by the legal entity. third_party_verification: type: object nullable: true allOf: - "$ref": "#/components/schemas/third_party_verification" deprecated: true description: Deprecated. Use `third_party_verifications` instead. third_party_verifications: type: array items: "$ref": "#/components/schemas/third_party_verification" description: A list of third-party verifications run by external vendors. title: Third Party Verfications ticker_symbol: type: string nullable: true description: Stock ticker symbol for publicly traded companies. wealth_and_employment_details: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_wealth_employment_detail" website: type: string nullable: true description: The entity's primary website URL. additionalProperties: false minProperties: 43 connection: type: object properties: created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time vendor_customer_id: type: string format: uuid nullable: true description: An identifier given to this connection by the bank. vendor_id: type: string format: uuid description: Unique identifier for the bank or vendor. vendor_name: type: string description: A human-friendly name for the bank or vendor. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - vendor_id - vendor_customer_id - vendor_name minProperties: 9 connection_legal_entity: type: object properties: connection_id: type: string description: The ID of the connection. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid legal_entity_id: type: string description: The ID of the legal entity. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string status: type: string enum: - completed - denied - failed - processing - suspended description: The status of the connection legal entity. updated_at: type: string format: date-time vendor_id: type: string description: The ID of the legal entity at the vendor. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - connection_id - legal_entity_id - status - vendor_id minProperties: 10 connection_legal_entity_create_request: type: object properties: connection_id: type: string description: The ID of the connection. legal_entity: type: object properties: addresses: type: array items: "$ref": "#/components/schemas/legal_entity_address_create_request" description: A list of addresses for the entity. bank_settings: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_bank_setting" business_description: type: string nullable: true description: A description of the business. business_designation: type: string nullable: true enum: - exempt_financial_institution - non_operating_business description: Legal designation associated with the business. business_name: type: string nullable: true description: The business's legal business name. citizenship_country: type: string nullable: true description: The country of citizenship for an individual. compliance_details: type: object nullable: true deprecated: true connection_id: type: string nullable: true description: The connection ID for the connection the legal entity is associated with. Defaults to the id of the connection designated with an is_default value of true or the id of an existing operational connection if only one is available. Pass in a value of null to prevent the connection from being associated with the legal entity. country_of_incorporation: type: string nullable: true description: The country where the business is incorporated, as an ISO 3166-1 alpha-2 country code (e.g. US). example: US date_formed: type: string format: date nullable: true description: A business's formation date (YYYY-MM-DD). date_of_birth: type: string format: date nullable: true description: An individual's date of birth (YYYY-MM-DD). documents: type: array items: type: object properties: document_type: type: string enum: - articles_of_incorporation - certificate_of_good_standing - ein_letter - generic - identification_back - identification_front - proof_of_address description: A category given to the document, can be `null`. file_data: type: string description: Base64-encoded file content for the document. filename: type: string description: The original filename of the document. required: - document_type - file_data description: A list of documents to attach to the legal entity (e.g. articles of incorporation, certificate of good standing, proof of address). doing_business_as_names: type: array items: type: string description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name. email: type: string nullable: true description: The entity's primary email. expected_activity_volume: type: integer nullable: true description: Monthly expected transaction volume in USD. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. first_name: type: string nullable: true description: An individual's first name. identifications: type: array items: "$ref": "#/components/schemas/identification_create_request" description: A list of identifications for the legal entity. industry_classifications: type: array items: "$ref": "#/components/schemas/legal_entity_industry_classification" description: A list of industry classifications for the legal entity. intended_use: type: string nullable: true description: A description of the intended use of the legal entity. last_name: type: string nullable: true description: An individual's last name. legal_entity_associations: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_association_inline_create_request" description: The legal entity associations and its child legal entities. legal_entity_type: type: string enum: - business - individual description: The type of legal entity. legal_structure: type: string nullable: true enum: - corporation - llc - non_profit - partnership - sole_proprietorship - trust description: The business's legal structure. listed_exchange: type: string nullable: true description: ISO 10383 market identifier code. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury middle_name: type: string nullable: true description: An individual's middle name. operating_jurisdictions: type: array items: type: string description: A list of countries where the business operates, as ISO 3166-1 alpha-2 country codes (e.g. ["US", "CA"]). example: - US - CA phone_numbers: type: array items: type: object properties: phone_number: type: string description: 'A phone number in E.164 format. This format is strictly validated: include a leading + and country code, followed by digits only (no spaces or dashes), e.g. +12025551234.' description: A list of phone numbers in E.164 format. politically_exposed_person: type: boolean nullable: true description: Whether the individual is a politically exposed person. preferred_name: type: string nullable: true description: An individual's preferred name. prefix: type: string nullable: true description: An individual's prefix. primary_social_media_sites: type: array items: type: string description: A list of the entity's primary social media URLs. regulators: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_regulator" description: Array of regulatory bodies overseeing this institution. risk_rating: type: string nullable: true enum: - low - medium - high description: The risk rating of the legal entity. One of low, medium, high. service_provider_legal_entity_id: type: string format: uuid nullable: true description: The UUID of the parent legal entity in the service provider tree. suffix: type: string nullable: true description: An individual's suffix. terms_of_use: type: object nullable: true properties: accepted_at: type: string format: date-time description: The ISO 8601 timestamp indicating when the terms of use were accepted. ip_address: type: string description: The IP address from which the terms of use were accepted. Supports both IPv4 and IPv6 formats. description: Acceptance of terms of use by the legal entity. third_party_verification: type: object nullable: true allOf: - "$ref": "#/components/schemas/third_party_verification" deprecated: true description: Deprecated. Use `third_party_verifications` instead. third_party_verifications: type: array items: "$ref": "#/components/schemas/third_party_verification" description: A list of third-party verifications run by external vendors. title: Third Party Verfications ticker_symbol: type: string nullable: true description: Stock ticker symbol for publicly traded companies. wealth_and_employment_details: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_wealth_employment_detail" website: type: string nullable: true description: The entity's primary website URL. description: The legal entity. legal_entity_id: type: string description: The ID of the legal entity. required: - connection_id connection_legal_entity_update_request: type: object properties: status: type: string enum: - processing description: The status of the connection legal entity. contact_detail: type: object properties: contact_identifier: type: string contact_identifier_type: type: string enum: - email - phone_number - website created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - contact_identifier - contact_identifier_type minProperties: 8 contact_detail_create_request: type: object properties: contact_identifier: type: string contact_identifier_type: type: string enum: - email - phone_number - website counterparty: type: object properties: accounts: type: array items: type: object properties: account_details: type: array items: "$ref": "#/components/schemas/account_detail" account_type: "$ref": "#/components/schemas/external_account_type" card_id: type: string format: uuid nullable: true contact_details: type: array items: "$ref": "#/components/schemas/contact_detail" created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid ledger_account_id: type: string format: uuid nullable: true description: If the external account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments object: type: string party_address: "$ref": "#/components/schemas/address" description: The address associated with the owner or `null`. party_name: type: string description: The legal name of the entity which owns the account. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. routing_details: type: array items: "$ref": "#/components/schemas/routing_detail" updated_at: type: string format: date-time verification_source: type: string nullable: true enum: - ach_prenote - microdeposits - plaid verification_status: type: string enum: - pending_verification - unverified - verified additionalProperties: false minProperties: 20 description: The accounts for this counterparty. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true email: type: string format: email nullable: true description: The counterparty's email. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid legal_entity_id: type: string format: uuid nullable: true description: The id of the legal entity. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A human friendly name for this counterparty. object: type: string send_remittance_advice: type: boolean description: Send an email to the counterparty whenever an associated payment order is sent to the bank. updated_at: type: string format: date-time verification_status: type: string deprecated: true description: The verification status of the counterparty. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - name - accounts - email - legal_entity_id - metadata - external_id - send_remittance_advice - verification_status minProperties: 14 counterparty_collect_account_request: type: object properties: custom_redirect: type: string format: uri description: The URL you want your customer to visit upon filling out the form. By default, they will be sent to a Modern Treasury landing page. This must be a valid HTTPS URL if set. direction: type: string enum: - credit - debit description: One of `credit` or `debit`. Use `credit` when you want to pay a counterparty. Use `debit` when you need to charge a counterparty. This field helps us send a more tailored email to your counterparties." fields: type: array items: type: string enum: - name - nameOnAccount - taxpayerIdentifier - accountType - accountNumber - ibanNumber - clabeNumber - walletAddress - routingNumber - abaWireRoutingNumber - swiftCode - auBsb - caCpa - cnaps - gbSortCode - inIfsc - myBranchCode - brCodigo - routingNumberType - address - jpZenginCode - seBankgiroClearingCode - nzNationalClearingCode - hkInterbankClearingCode - dkInterbankClearingCode - zaNationalClearingCode description: The list of fields you want on the form. This field is optional and if it is not set, will default to [\"nameOnAccount\", \"accountType\", \"accountNumber\", \"routingNumber\", \"address\"]. The full list of options is [\"name\", \"nameOnAccount\", \"taxpayerIdentifier\", \"accountType\", \"accountNumber\", \"routingNumber\", \"address\", \"ibanNumber\", \"swiftCode\"]. send_email: type: boolean description: By default, Modern Treasury will send an email to your counterparty that includes a link to the form they must fill out. However, if you would like to send the counterparty the link, you can set this parameter to `false`. The JSON body will include the link to the secure Modern Treasury form. required: - direction counterparty_collect_account_response: type: object properties: form_link: type: string format: uri description: This is the link to the secure Modern Treasury form. By default, Modern Treasury will send an email to your counterparty that includes a link to this form. However, if `send_email` is passed as `false` in the body then Modern Treasury will not send the email and you can send it to the counterparty directly. id: type: string description: The id of the existing counterparty. is_resend: type: boolean description: This field will be `true` if an email requesting account details has already been sent to this counterparty. additionalProperties: false required: - id - is_resend - form_link minProperties: 3 counterparty_create_request: type: object properties: accounts: type: array items: type: object properties: account_details: type: array items: type: object properties: account_number: type: string account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address required: - account_number account_type: "$ref": "#/components/schemas/external_account_type" contact_details: type: array items: "$ref": "#/components/schemas/contact_detail_create_request" external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account: "$ref": "#/components/schemas/ledger_account_create_request" description: Specifies a ledger account object that will be created with the external account. The resulting ledger account is linked to the external account for auto-ledgering Payment objects. See https://docs.moderntreasury.com/docs/linking-to-other-modern-treasury-objects for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments party_address: "$ref": "#/components/schemas/address_request" description: Required if receiving wire payments. party_identifier: type: string party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. plaid_processor_token: type: string description: If you've enabled the Modern Treasury + Plaid integration in your Plaid account, you can pass the processor token in this field. routing_details: type: array items: type: object properties: payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin routing_number: type: string routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - my_branch_code - mx_bank_identifier - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code required: - routing_number - routing_number_type description: The accounts for this counterparty. email: type: string format: email nullable: true description: The counterparty's email. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. legal_entity: "$ref": "#/components/schemas/legal_entity_create_request" legal_entity_id: type: string format: uuid nullable: true description: The id of the legal entity. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A human friendly name for this counterparty. send_remittance_advice: type: boolean description: Send an email to the counterparty whenever an associated payment order is sent to the bank. taxpayer_identifier: type: string description: Either a valid SSN or EIN. verification_status: type: string deprecated: true description: The verification status of the counterparty. required: - name counterparty_update_request: type: object properties: email: type: string format: email description: A new email for the counterparty. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. legal_entity_id: type: string format: uuid nullable: true description: The id of the legal entity. metadata: type: object additionalProperties: type: string description: Additional data in the form of key-value pairs. Pairs can be removed by passing an empty string or `null` as the value. name: type: string description: A new name for the counterparty. Will only update if passed. send_remittance_advice: type: boolean description: If this is `true`, Modern Treasury will send an email to the counterparty whenever an associated payment order is sent to the bank. taxpayer_identifier: type: string description: Either a valid SSN or EIN. currency: type: string enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BCH - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTC - BTN - BWP - BYN - BYR - BZD - CAD - CDF - CHF - CLF - CLP - CNH - CNY - COP - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EEK - EGP - ERN - ETB - ETH - EUR - EURC - FJD - FKP - GBP - GBX - GEL - GGP - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - IMP - INR - IQD - IRR - ISK - JEP - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LVL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRO - MRU - MTL - MUR - MVR - MWK - MXN - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - OP - OUSD - PAB - PEN - PGK - PHP - PKR - PLN - PYG - PYUSD - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SKK - SLE - SLL - SOS - SRD - SSP - STD - STN - SVC - SYP - SZL - THB - TJS - TMM - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - USDC - USDG - USDT - UYU - UZS - VEF - VES - VND - VUV - WST - XAF - XAG - XAU - XBA - XBB - XBC - XBD - XCD - XCG - XDR - XFU - XOF - XPD - XPF - XPT - XTS - YER - ZAR - ZMK - ZMW - ZWD - ZWG - ZWL - ZWN - ZWR description: Three-letter ISO currency code. current_ledger_account_balance_state: type: object properties: balances: "$ref": "#/components/schemas/ledger_balances" ledger_account_lock_version: type: integer description: The current lock version of the ledger account. triggered: type: boolean description: If `true`, the ledger account's balances satisfy the `alert_condition` at this lock version. additionalProperties: false required: - balances - ledger_account_lock_version - triggered minProperties: 3 document: type: object properties: created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true document_type: type: string nullable: true description: A category given to the document, can be `null`. documentable_id: type: string format: uuid nullable: true description: The unique identifier for the associated object. documentable_type: type: string nullable: true enum: - connection - counterparty - expected_payment - identification - incoming_payment_detail - internal_account - legal_entity - payment_order - return - transaction description: The type of the associated object. Currently can be one of `connection`, `counterparty`, `expected_payment`, `identification`, `incoming_payment_detail`, `internal_account`, `legal_entity`, `payment_order`, `return`, or `transaction`. file: type: object properties: content_type: type: string description: The MIME content type of the document. filename: type: string description: The original filename of the document. size: type: integer description: The size of the document in bytes. additionalProperties: false minProperties: 3 id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string source: type: string description: The source of the document. Can be `vendor`, `customer`, or `modern_treasury`. updated_at: type: string format: date-time required: - id - object - live_mode - created_at - updated_at - discarded_at - document_type - source - documentable_id - documentable_type - file minProperties: 11 document_create_request: type: object properties: document_type: type: string description: A category given to the document, can be `null`. documentable_id: type: string description: The unique identifier for the associated object. documentable_type: type: string enum: - connection - counterparty - expected_payment - identification - incoming_payment_detail - internal_account - legal_entity - payment_order - return - transaction file: type: string format: binary required: - file embeddable_flow: type: object properties: client_token: type: string created_at: type: string format: date-time expires_at: type: string format: date-time id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string options: oneOf: - type: object properties: legal_entity_id: type: string format: uuid type: type: string enum: - individual additionalProperties: false required: - type - legal_entity_id - type: object properties: counterparty_id: type: string format: uuid nullable: true external_account_id: type: string format: uuid nullable: true payment_types: type: array items: type: string receiving_countries: type: array items: type: string additionalProperties: false required: - counterparty_id - payment_types - receiving_countries - external_account_id - type: object properties: amount: type: integer counterparty_id: type: string format: uuid nullable: true currency: type: string direction: type: string enum: - credit - debit due_date: type: string format: date nullable: true effective_date_selection_enabled: type: boolean existing_external_accounts_filter: type: string nullable: true enum: - verified external_account_collection: type: string enum: - enabled - disabled originating_account_id: type: string format: uuid payment_order_id: type: string format: uuid nullable: true receiving_account_id: type: string format: uuid nullable: true selected_effective_date: type: string format: date nullable: true additionalProperties: false required: - amount - currency - direction - counterparty_id - originating_account_id - receiving_account_id - payment_order_id - due_date - effective_date_selection_enabled - selected_effective_date - external_account_collection - existing_external_accounts_filter status: type: string enum: - cancelled - completed - expired - pending description: The current status of the underlying flow. template: type: string enum: - legal_entity_onboarding - account_collection - payment updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - template - client_token - status - expires_at - created_at - updated_at - options minProperties: 10 maxProperties: 10 embeddable_flow_create_request: type: object properties: options: oneOf: - "$ref": "#/components/schemas/account_collection_flow_create_request" - "$ref": "#/components/schemas/payment_flow_create_request" - type: object properties: type: type: string enum: - individual additionalProperties: false required: - type description: The parameters for the selected template's flow. template: type: string enum: - legal_entity_onboarding - account_collection - payment additionalProperties: false required: - template - options embeddable_flow_update_request: type: object properties: status: type: string enum: - cancelled description: The updated status of the flow. Can only be used to mark the flow as `cancelled`. additionalProperties: false required: - status error_message: type: object properties: errors: type: object properties: code: type: string enum: - parameter_invalid - parameter_missing - resource_not_found - not_found - forbidden - invalid_ip - invalid_key - header_invalid - expired_key - conflict - too_many_requests message: type: string parameter: type: string required: - errors event: type: object properties: created_at: type: string format: date-time data: type: object additionalProperties: true description: The body of the event. entity_id: type: string format: uuid description: The ID of the entity for the event. event_name: type: string description: The name of the event. event_time: type: string format: date-time description: The time of the event. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string resource: type: string description: The type of resource for the event. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - resource - event_name - event_time - data - entity_id minProperties: 10 expected_payment: type: object properties: amount_lower_bound: type: integer nullable: true description: The lowest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_reconciled: type: integer nullable: true description: The amount reconciled for this expected payment. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_reconciled_direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. Indicates whether amount_reconciled is a credit or debit amount. amount_unreconciled: type: integer nullable: true description: The amount that remains unreconciled for this expected payment. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_unreconciled_direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. Indicates whether amount_unreconciled is a credit or debit amount. amount_upper_bound: type: integer nullable: true description: The highest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. counterparty_id: type: string format: uuid nullable: true description: The ID of the counterparty you expect for this payment. created_at: type: string format: date-time currency: type: string nullable: true allOf: - "$ref": "#/components/schemas/currency" description: Must conform to ISO 4217. Defaults to the currency of the internal account. date_lower_bound: type: string format: date nullable: true description: 'The earliest date the payment may come in. Format: yyyy-mm-dd' date_upper_bound: type: string format: date nullable: true description: 'The latest date the payment may come in. Format: yyyy-mm-dd' description: type: string nullable: true description: An optional description for internal use. direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. When you are receiving money, use credit. When you are being charged, use debit. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid internal_account_id: type: string format: uuid nullable: true description: The ID of the Internal Account for the expected payment. ledger_transaction_id: type: string format: uuid nullable: true description: The ID of the ledger transaction linked to the expected payment. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string reconciliation_filters: type: object nullable: true description: The reconciliation filters you have for this payment. reconciliation_groups: type: object nullable: true description: The reconciliation groups you have for this payment. reconciliation_method: type: string nullable: true enum: - automatic - manual description: One of manual if this expected payment was manually reconciled in the dashboard, automatic if it was automatically reconciled by Modern Treasury, or null if it is unreconciled. reconciliation_rule_variables: type: array nullable: false items: "$ref": "#/components/schemas/reconciliation_rule_variable" description: An array of reconciliation rule variables for this payment. remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. statement_descriptor: type: string nullable: true description: The statement description you expect to see on the transaction. For ACH payments, this will be the full line item passed from the bank. For wire payments, this will be the OBI field on the wire. For check payments, this will be the memo field. status: type: string enum: - archived - partially_reconciled - reconciled - unreconciled description: One of unreconciled, partially_reconciled, reconciled, or archived. transaction_id: type: string format: uuid nullable: true description: The ID of the Transaction this expected payment object has been matched to. transaction_line_item_id: type: string format: uuid nullable: true description: The ID of the Transaction Line Item this expected payment has been matched to. type: "$ref": "#/components/schemas/expected_payment_type" updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - external_id - amount_upper_bound - amount_lower_bound - direction - internal_account_id - type - currency - date_upper_bound - date_lower_bound - description - statement_descriptor - metadata - counterparty_id - remittance_information - reconciliation_groups - reconciliation_filters - reconciliation_rule_variables - amount_reconciled - amount_reconciled_direction - amount_unreconciled - amount_unreconciled_direction - transaction_id - transaction_line_item_id - status - reconciliation_method - ledger_transaction_id minProperties: 31 expected_payment_create_request: type: object properties: amount_lower_bound: type: integer nullable: true description: The lowest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_reconciled: type: integer nullable: true description: The amount reconciled for this expected payment. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_reconciled_direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. Indicates whether amount_reconciled is a credit or debit amount. amount_unreconciled: type: integer nullable: true description: The amount that remains unreconciled for this expected payment. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_unreconciled_direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. Indicates whether amount_unreconciled is a credit or debit amount. amount_upper_bound: type: integer nullable: true description: The highest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. counterparty_id: type: string format: uuid nullable: true description: The ID of the counterparty you expect for this payment. currency: type: string nullable: true allOf: - "$ref": "#/components/schemas/currency" description: Must conform to ISO 4217. Defaults to the currency of the internal account. date_lower_bound: type: string format: date nullable: true description: 'The earliest date the payment may come in. Format: yyyy-mm-dd' date_upper_bound: type: string format: date nullable: true description: 'The latest date the payment may come in. Format: yyyy-mm-dd' description: type: string nullable: true description: An optional description for internal use. direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. When you are receiving money, use credit. When you are being charged, use debit. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. internal_account_id: type: string format: uuid nullable: true description: The ID of the Internal Account for the expected payment. ledger_transaction: "$ref": "#/components/schemas/ledger_transaction_create_request" description: Specifies a ledger transaction object that will be created with the expected payment. If the ledger transaction cannot be created, then the expected payment creation will fail. The resulting ledger transaction will mirror the status of the expected payment. ledger_transaction_id: type: string format: uuid description: Either ledger_transaction or ledger_transaction_id can be provided. Only a pending ledger transaction can be attached upon expected payment creation. Once the expected payment is created, the status of the ledger transaction tracks the expected payment automatically. line_items: type: array items: "$ref": "#/components/schemas/line_item_request" metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury reconciliation_filters: type: object nullable: true description: The reconciliation filters you have for this payment. reconciliation_groups: type: object nullable: true description: The reconciliation groups you have for this payment. reconciliation_rule_variables: type: array nullable: false items: "$ref": "#/components/schemas/reconciliation_rule_variable" description: An array of reconciliation rule variables for this payment. remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. statement_descriptor: type: string nullable: true description: The statement description you expect to see on the transaction. For ACH payments, this will be the full line item passed from the bank. For wire payments, this will be the OBI field on the wire. For check payments, this will be the memo field. type: "$ref": "#/components/schemas/expected_payment_type" expected_payment_type: type: string nullable: true enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: 'One of: ach, au_becs, bacs, book, check, eft, rtp, sepa, wire.' expected_payment_update_request: type: object properties: amount_lower_bound: type: integer nullable: true description: The lowest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_reconciled: type: integer nullable: true description: The amount reconciled for this expected payment. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_reconciled_direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. Indicates whether amount_reconciled is a credit or debit amount. amount_unreconciled: type: integer nullable: true description: The amount that remains unreconciled for this expected payment. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_unreconciled_direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. Indicates whether amount_unreconciled is a credit or debit amount. amount_upper_bound: type: integer nullable: true description: The highest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. counterparty_id: type: string format: uuid nullable: true description: The ID of the counterparty you expect for this payment. currency: type: string nullable: true allOf: - "$ref": "#/components/schemas/currency" description: Must conform to ISO 4217. Defaults to the currency of the internal account. date_lower_bound: type: string format: date nullable: true description: 'The earliest date the payment may come in. Format: yyyy-mm-dd' date_upper_bound: type: string format: date nullable: true description: 'The latest date the payment may come in. Format: yyyy-mm-dd' description: type: string nullable: true description: An optional description for internal use. direction: type: string nullable: true enum: - credit - debit description: One of credit or debit. When you are receiving money, use credit. When you are being charged, use debit. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. internal_account_id: type: string format: uuid nullable: true description: The ID of the Internal Account for the expected payment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury reconciliation_filters: type: object nullable: true description: The reconciliation filters you have for this payment. reconciliation_groups: type: object nullable: true description: The reconciliation groups you have for this payment. reconciliation_rule_variables: type: array nullable: false items: "$ref": "#/components/schemas/reconciliation_rule_variable" description: An array of reconciliation rule variables for this payment. remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. statement_descriptor: type: string nullable: true description: The statement description you expect to see on the transaction. For ACH payments, this will be the full line item passed from the bank. For wire payments, this will be the OBI field on the wire. For check payments, this will be the memo field. status: type: string nullable: true enum: - reconciled description: The Expected Payment's status can be updated from partially_reconciled to reconciled. type: "$ref": "#/components/schemas/expected_payment_type" external_account: type: object properties: account_details: type: array items: "$ref": "#/components/schemas/account_detail" account_type: "$ref": "#/components/schemas/external_account_type" card_id: type: string format: uuid nullable: true contact_details: type: array items: "$ref": "#/components/schemas/contact_detail" counterparty_id: type: string format: uuid nullable: true created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid ledger_account_id: type: string format: uuid nullable: true description: If the external account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments object: type: string party_address: "$ref": "#/components/schemas/address" description: The address associated with the owner or `null`. party_name: type: string description: The legal name of the entity which owns the account. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. routing_details: type: array items: "$ref": "#/components/schemas/routing_detail" updated_at: type: string format: date-time verification_source: type: string nullable: true enum: - ach_prenote - microdeposits - plaid verification_status: type: string enum: - pending_verification - unverified - verified additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - account_type - party_type - party_address - name - counterparty_id - account_details - routing_details - external_id - metadata - party_name - contact_details - ledger_account_id - card_id - verification_status - verification_source minProperties: 21 external_account_complete_verification_request: type: object properties: amounts: type: array items: type: integer maxItems: 2 example: - 2 - 4 external_account_create_request: type: object properties: account_details: type: array items: type: object properties: account_number: type: string account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address required: - account_number account_type: "$ref": "#/components/schemas/external_account_type" contact_details: type: array items: "$ref": "#/components/schemas/contact_detail_create_request" counterparty_id: type: string format: uuid nullable: true external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account: "$ref": "#/components/schemas/ledger_account_create_request" description: Specifies a ledger account object that will be created with the external account. The resulting ledger account is linked to the external account for auto-ledgering Payment objects. See https://docs.moderntreasury.com/docs/linking-to-other-modern-treasury-objects for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments party_address: "$ref": "#/components/schemas/address_request" description: Required if receiving wire payments. party_identifier: type: string party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. plaid_processor_token: type: string description: If you've enabled the Modern Treasury + Plaid integration in your Plaid account, you can pass the processor token in this field. routing_details: type: array items: type: object properties: payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin routing_number: type: string routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - my_branch_code - mx_bank_identifier - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code required: - routing_number - routing_number_type required: - counterparty_id external_account_type: type: string enum: - cash - checking - general_ledger - hosted_wallet - loan - non_resident - other - overdraft - savings - self_hosted_wallet description: Can be `checking`, `savings` or `other`. external_account_update_request: type: object properties: account_type: "$ref": "#/components/schemas/external_account_type" counterparty_id: type: string format: uuid nullable: true metadata: type: object additionalProperties: type: string description: Additional data in the form of key-value pairs. Pairs can be removed by passing an empty string or `null` as the value. name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments party_address: type: object nullable: true allOf: - "$ref": "#/components/schemas/address_request" party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. external_account_verification_attempt: type: object properties: created_at: type: string format: date-time external_account_id: type: string format: uuid description: The ID of the external account. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string originating_account_id: type: string format: uuid description: The ID of the internal account where the micro-deposits originate from. payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: The type of payment that can be made to this account. Can be `ach`, `eft`, or `rtp`. priority: type: string nullable: true enum: - high - normal description: The priority of the payment. Can be `normal` or `high`. status: type: string enum: - cancelled - failed - pending_verification - verified description: The status of the verification attempt. Can be `pending_verification`, `verified`, `failed`, or `cancelled`. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - external_account_id - originating_account_id - payment_type - priority - status minProperties: 10 external_account_verify_request: type: object properties: currency: "$ref": "#/components/schemas/currency" description: Defaults to the currency of the originating account. fallback_type: type: string enum: - ach description: A payment type to fallback to if the original type is not valid for the receiving account. Currently, this only supports falling back from RTP to ACH (payment_type=rtp and fallback_type=ach) originating_account_id: type: string format: uuid description: The ID of the internal account where the micro-deposits originate from. Both credit and debit capabilities must be enabled. payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: Can be `ach`, `eft`, or `rtp`. priority: type: string enum: - high - normal description: Either `normal` or `high`. For ACH payments, `high` represents a same-day ACH transfer. This will apply to both `payment_type` and `fallback_type`. required: - originating_account_id - payment_type foreign_exchange_quote: type: object properties: created_at: type: string format: date-time effective_at: type: string format: date-time description: The timestamp until when the quoted rate is valid. expires_at: type: string format: date-time description: The timestamp until which the quote must be booked by. foreign_exchange_indicator: type: string description: Either `fixed_to_variable` if the `base_amount` was specified, or `variable_to_fixed` if the `target_amount` was specified when requesting the quote. foreign_exchange_rate: "$ref": "#/components/schemas/foreign_exchange_rate" description: The serialized rate information represented by this quote. id: type: string format: uuid internal_account_id: type: string format: uuid description: The ID for the `InternalAccount` this quote is associated with. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string updated_at: type: string format: date-time vendor_id: type: string description: This vendor assigned ID for this quote. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - effective_at - expires_at - foreign_exchange_indicator - foreign_exchange_rate - internal_account_id - metadata foreign_exchange_quote_create_request: type: object properties: base_amount: type: integer description: Amount in the lowest denomination of the `base_currency` to convert, often called the "sell" amount. base_currency: "$ref": "#/components/schemas/currency" description: Currency to convert, often called the "sell" currency. effective_at: type: string format: date-time description: The timestamp until when the quoted rate is valid. internal_account_id: type: string format: uuid description: The ID for the `InternalAccount` this quote is associated with. target_amount: type: integer description: Amount in the lowest denomination of the `target_currency`, often called the "buy" amount. target_currency: "$ref": "#/components/schemas/currency" description: Currency to convert the `base_currency` to, often called the "buy" currency. additionalProperties: false required: - internal_account_id - target_currency foreign_exchange_rate: type: object properties: base_amount: type: integer description: Amount in the lowest denomination of the `base_currency` to convert, often called the "sell" amount. base_currency: "$ref": "#/components/schemas/currency" description: Currency to convert, often called the "sell" currency. exponent: type: integer description: The exponent component of the rate. The decimal is calculated as `value` / (10 ^ `exponent`). rate_string: type: string description: A string representation of the rate. target_amount: type: integer description: Amount in the lowest denomination of the `target_currency`, often called the "buy" amount. target_currency: "$ref": "#/components/schemas/currency" description: Currency to convert the `base_currency` to, often called the "buy" currency. value: type: integer description: The whole number component of the rate. The decimal is calculated as `value` / (10 ^ `exponent`). additionalProperties: false required: - base_amount - base_currency - exponent - rate_string - target_amount - target_currency - value hold: type: object properties: created_at: type: string format: date-time id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object nullable: true additionalProperties: type: string description: Additional metadata for the hold object: type: string enum: - hold description: The type of object reason: type: string nullable: true description: The reason for the hold resolution: type: string nullable: true description: The resolution of the hold resolved_at: type: string format: date-time nullable: true description: When the hold was resolved status: type: string enum: - active - resolved description: The status of the hold target_id: type: string format: uuid description: The ID of the target being held target_type: type: string enum: - payment_order description: The type of target being held updated_at: type: string format: date-time additionalProperties: false required: - id - object - status - target_type - target_id - created_at - updated_at identification: type: object properties: created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true documents: type: array items: "$ref": "#/components/schemas/document" expiration_date: type: string format: date nullable: true description: The date when the Identification is no longer considered valid by the issuing authority. id: type: string format: uuid id_type: type: string enum: - ad_nrt - ae_eid - ae_trn - ag_tin - ai_tin - al_nid - al_nipt - am_tin - ao_nif - ar_cuil - ar_cuit - at_atin - at_vat - au_abn - au_tfn - aw_tin - az_pin - bb_tin - bd_tin - be_ent - be_nrn - bf_ifu - bg_egn - bh_cpr - bh_vat - bj_ifu - bo_nit - br_cnpj - br_cpf - bs_tin - bt_bin - bw_tin - bz_tin - ca_bn - ca_sin - ch_ahv - ch_uid - ci_ncc - cl_run - cl_rut - cm_niu - co_cedulas - co_nit - cr_cpf - cw_crib - cy_tin - cz_ico - cz_rc - de_stid - de_stnr - de_vat - dk_cpr - dk_cvr - dm_tin - do_cedula - do_rnc - drivers_license - ec_ruc - ee_ik - ee_rk - es_nie - es_nif - fi_hetu - fi_ytj - fj_tin - fo_ptal - fr_nif - fr_siren - fr_vat - gb_nino - gb_utr - gb_vat - gd_tin - ge_ic - ge_pn - ge_tin - generic_international - gg_sin - gh_pin - gh_tin - gi_trn - gl_cpr - gl_ger - gm_tin - gr_vat - gt_nit - hk_brn - hk_hkid - hn_id - hn_rtn - hr_oib - hu_adj - hu_anum - id_nik - id_npwp - ie_pps - ie_trn - il_cn - il_pin - im_trn - in_lei - is_knt - it_cf - it_piva - je_ssn - je_tin - jm_trn - jo_tin - jp_hb - jp_mn - ke_pin - kg_pin - kn_tin - kr_brn - kr_crn - kr_rrn - kw_cid - kz_bin - kz_iin - la_tin - lc_tin - li_peid - lk_tin - ls_tin - lt_ak - lt_jak - lu_mtc - lu_vat - lv_pk - lv_rn - md_idnp - me_jmbg - me_pib - mg_nif - mh_ssn - mo_bir - mo_tin_b - mo_tin_i - mr_nif - mt_tin - mt_vat - mu_tan - mw_tpin - mx_curp - mx_ine - mx_rfc - my_npc - my_nric - my_tin_b - mz_nuit - na_tin - national_id - nl_bsn - nl_btw - nl_rsin - no_fdn - no_mva - no_orgnr - nr_tin - nz_ird - om_cid - pa_cedula - pa_ruc - passport - pe_ruc - pg_tin - ph_tin - pl_nip - pl_pesel - pt_nif - py_ruc - qa_qid - qa_tin - ro_cnp - ro_cui - rw_tin - sa_tin - sa_vat - se_orgnr - se_pnmr - sg_fin - sg_nric - sg_uen - si_dav - si_tin - sk_ico - sk_rc - sl_tin - sm_ssi - sz_tin - tg_nif - th_jid - th_pin - tj_inn - to_tin - tr_tckn - tt_bir - tw_nric - tw_ubn - ug_tin - us_ein - us_itin - us_ssn - uy_rut - uz_inn - uz_pin - vn_tin - za_trn - za_vat - zm_tpin description: The type of ID number. issuing_country: type: string nullable: true description: The ISO 3166-1 alpha-2 country code of the country that issued the identification issuing_region: type: string nullable: true description: The region in which the identifcation was issued. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - id_type - expiration_date - issuing_country - issuing_region - documents minProperties: 11 identification_create_request: type: object properties: documents: type: array items: type: object properties: document_type: type: string enum: - articles_of_incorporation - certificate_of_good_standing - ein_letter - generic - identification_back - identification_front - proof_of_address description: A category given to the document, can be `null`. file_data: type: string description: Base64-encoded file content for the document. filename: type: string description: The original filename of the document. required: - document_type - file_data description: A list of documents to attach to the identification. expiration_date: type: string format: date nullable: true description: The date when the Identification is no longer considered valid by the issuing authority. id_number: type: string description: The ID number of identification document. id_type: type: string enum: - ad_nrt - ae_eid - ae_trn - ag_tin - ai_tin - al_nid - al_nipt - am_tin - ao_nif - ar_cuil - ar_cuit - at_atin - at_vat - au_abn - au_tfn - aw_tin - az_pin - bb_tin - bd_tin - be_ent - be_nrn - bf_ifu - bg_egn - bh_cpr - bh_vat - bj_ifu - bo_nit - br_cnpj - br_cpf - bs_tin - bt_bin - bw_tin - bz_tin - ca_bn - ca_sin - ch_ahv - ch_uid - ci_ncc - cl_run - cl_rut - cm_niu - co_cedulas - co_nit - cr_cpf - cw_crib - cy_tin - cz_ico - cz_rc - de_stid - de_stnr - de_vat - dk_cpr - dk_cvr - dm_tin - do_cedula - do_rnc - drivers_license - ec_ruc - ee_ik - ee_rk - es_nie - es_nif - fi_hetu - fi_ytj - fj_tin - fo_ptal - fr_nif - fr_siren - fr_vat - gb_nino - gb_utr - gb_vat - gd_tin - ge_ic - ge_pn - ge_tin - generic_international - gg_sin - gh_pin - gh_tin - gi_trn - gl_cpr - gl_ger - gm_tin - gr_vat - gt_nit - hk_brn - hk_hkid - hn_id - hn_rtn - hr_oib - hu_adj - hu_anum - id_nik - id_npwp - ie_pps - ie_trn - il_cn - il_pin - im_trn - in_lei - is_knt - it_cf - it_piva - je_ssn - je_tin - jm_trn - jo_tin - jp_hb - jp_mn - ke_pin - kg_pin - kn_tin - kr_brn - kr_crn - kr_rrn - kw_cid - kz_bin - kz_iin - la_tin - lc_tin - li_peid - lk_tin - ls_tin - lt_ak - lt_jak - lu_mtc - lu_vat - lv_pk - lv_rn - md_idnp - me_jmbg - me_pib - mg_nif - mh_ssn - mo_bir - mo_tin_b - mo_tin_i - mr_nif - mt_tin - mt_vat - mu_tan - mw_tpin - mx_curp - mx_ine - mx_rfc - my_npc - my_nric - my_tin_b - mz_nuit - na_tin - national_id - nl_bsn - nl_btw - nl_rsin - no_fdn - no_mva - no_orgnr - nr_tin - nz_ird - om_cid - pa_cedula - pa_ruc - passport - pe_ruc - pg_tin - ph_tin - pl_nip - pl_pesel - pt_nif - py_ruc - qa_qid - qa_tin - ro_cnp - ro_cui - rw_tin - sa_tin - sa_vat - se_orgnr - se_pnmr - sg_fin - sg_nric - sg_uen - si_dav - si_tin - sk_ico - sk_rc - sl_tin - sm_ssi - sz_tin - tg_nif - th_jid - th_pin - tj_inn - to_tin - tr_tckn - tt_bir - tw_nric - tw_ubn - ug_tin - us_ein - us_itin - us_ssn - uy_rut - uz_inn - uz_pin - vn_tin - za_trn - za_vat - zm_tpin description: The type of ID number. issuing_country: type: string nullable: true description: The ISO 3166-1 alpha-2 country code of the country that issued the identification issuing_region: type: string nullable: true description: The region in which the identifcation was issued. required: - id_number - id_type identification_update_request: type: object properties: expiration_date: type: string format: date nullable: true description: The date when the Identification is no longer considered valid by the issuing authority. id_number: type: string description: The ID number of identification document. id_type: type: string enum: - ad_nrt - ae_eid - ae_trn - ag_tin - ai_tin - al_nid - al_nipt - am_tin - ao_nif - ar_cuil - ar_cuit - at_atin - at_vat - au_abn - au_tfn - aw_tin - az_pin - bb_tin - bd_tin - be_ent - be_nrn - bf_ifu - bg_egn - bh_cpr - bh_vat - bj_ifu - bo_nit - br_cnpj - br_cpf - bs_tin - bt_bin - bw_tin - bz_tin - ca_bn - ca_sin - ch_ahv - ch_uid - ci_ncc - cl_run - cl_rut - cm_niu - co_cedulas - co_nit - cr_cpf - cw_crib - cy_tin - cz_ico - cz_rc - de_stid - de_stnr - de_vat - dk_cpr - dk_cvr - dm_tin - do_cedula - do_rnc - drivers_license - ec_ruc - ee_ik - ee_rk - es_nie - es_nif - fi_hetu - fi_ytj - fj_tin - fo_ptal - fr_nif - fr_siren - fr_vat - gb_nino - gb_utr - gb_vat - gd_tin - ge_ic - ge_pn - ge_tin - generic_international - gg_sin - gh_pin - gh_tin - gi_trn - gl_cpr - gl_ger - gm_tin - gr_vat - gt_nit - hk_brn - hk_hkid - hn_id - hn_rtn - hr_oib - hu_adj - hu_anum - id_nik - id_npwp - ie_pps - ie_trn - il_cn - il_pin - im_trn - in_lei - is_knt - it_cf - it_piva - je_ssn - je_tin - jm_trn - jo_tin - jp_hb - jp_mn - ke_pin - kg_pin - kn_tin - kr_brn - kr_crn - kr_rrn - kw_cid - kz_bin - kz_iin - la_tin - lc_tin - li_peid - lk_tin - ls_tin - lt_ak - lt_jak - lu_mtc - lu_vat - lv_pk - lv_rn - md_idnp - me_jmbg - me_pib - mg_nif - mh_ssn - mo_bir - mo_tin_b - mo_tin_i - mr_nif - mt_tin - mt_vat - mu_tan - mw_tpin - mx_curp - mx_ine - mx_rfc - my_npc - my_nric - my_tin_b - mz_nuit - na_tin - national_id - nl_bsn - nl_btw - nl_rsin - no_fdn - no_mva - no_orgnr - nr_tin - nz_ird - om_cid - pa_cedula - pa_ruc - passport - pe_ruc - pg_tin - ph_tin - pl_nip - pl_pesel - pt_nif - py_ruc - qa_qid - qa_tin - ro_cnp - ro_cui - rw_tin - sa_tin - sa_vat - se_orgnr - se_pnmr - sg_fin - sg_nric - sg_uen - si_dav - si_tin - sk_ico - sk_rc - sl_tin - sm_ssi - sz_tin - tg_nif - th_jid - th_pin - tj_inn - to_tin - tr_tckn - tt_bir - tw_nric - tw_ubn - ug_tin - us_ein - us_itin - us_ssn - uy_rut - uz_inn - uz_pin - vn_tin - za_trn - za_vat - zm_tpin description: The type of ID number. issuing_country: type: string nullable: true description: The ISO 3166-1 alpha-2 country code of the country that issued the identification issuing_region: type: string nullable: true description: The region in which the identifcation was issued. incoming_payment_detail: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. as_of_date: type: string format: date description: The date on which the corresponding transaction will occur. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: The currency of the incoming payment detail. data: type: object additionalProperties: true description: The raw data from the payment pre-notification file that we get from the bank. direction: type: string enum: - credit - debit description: One of `credit` or `debit`. failure_reason: type: string nullable: true description: The reason the incoming payment detail failed, or `null`. id: type: string format: uuid internal_account_id: type: string format: uuid description: The ID of the Internal Account for the incoming payment detail. This is always present. ledger_transaction_id: type: string format: uuid nullable: true description: The ID of the ledger transaction linked to the incoming payment detail or `null`. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string originating_account_number: type: string nullable: true description: The account number of the originating account for the incoming payment detail. originating_account_number_safe: type: string nullable: true description: The last 4 digits of the originating account_number for the incoming payment detail. originating_account_number_type: type: string nullable: true enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address description: The type of the originating account number for the incoming payment detail. originating_party_address: type: object nullable: true allOf: - "$ref": "#/components/schemas/address" description: The address of the originating party for the incoming payment detail, or `null`. originating_party_name: type: string nullable: true description: The name of the originating party for the incoming payment detail. originating_party_vendor_identifier: type: string nullable: true description: The vendor-assigned identifier for the originating party of the incoming payment detail, or `null`. originating_routing_number: type: string nullable: true description: The routing number of the originating account for the incoming payment detail. originating_routing_number_type: type: string nullable: true enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - mx_bank_identifier - my_branch_code - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code description: The type of the originating routing number for the incoming payment detail. receiving_account_number: type: string nullable: true description: The account number of the receiving account for the incoming payment detail, or `null`. receiving_account_number_safe: type: string nullable: true description: The last 4 digits of the receiving account number for the incoming payment detail, or `null`. reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. status: type: string enum: - completed - failed - held - pending - returned description: The current status of the incoming payment order. One of `pending`, `completed`, `returned`, `failed`, or `held`. subtype: type: string nullable: true description: An additional layer of classification for the type of incoming payment detail. For example, a `type` of `stablecoin` may have a `subtype` of `ethereum` or `solana`. transaction_id: type: string format: uuid nullable: true description: The ID of the reconciled Transaction or `null`. transaction_line_item_id: type: string format: uuid nullable: true description: The ID of the reconciled Transaction Line Item or `null`. type: type: string enum: - ach - au_becs - bacs - book - check - eft - neft - nz_becs - rtp - sepa - stablecoin - wire - zengin description: 'One of: `ach`, `book`, `check`, `eft`, `rtp`, `sepa`, or `wire`.' updated_at: type: string format: date-time vendor_id: type: string format: uuid nullable: true description: The identifier of the vendor bank. virtual_account: type: object nullable: true allOf: - "$ref": "#/components/schemas/virtual_account" description: If the incoming payment detail is in a virtual account, the serialized virtual account object. virtual_account_id: type: string format: uuid nullable: true description: If the incoming payment detail is in a virtual account, the ID of the Virtual Account. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - internal_account_id - virtual_account_id - virtual_account - transaction_line_item_id - transaction_id - ledger_transaction_id - type - data - amount - currency - direction - status - failure_reason - metadata - as_of_date - vendor_id - originating_routing_number - originating_routing_number_type - originating_account_number_safe - originating_account_number_type - subtype - reconciliation_status minProperties: 27 incoming_payment_detail_create_request: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. as_of_date: type: string format: date nullable: true description: Defaults to today. currency: type: string nullable: true allOf: - "$ref": "#/components/schemas/currency" description: Defaults to the currency of the originating account. data: type: object nullable: true description: 'An object passed through to the simulated IPD that could reflect what a vendor would pass. For `type: check` with `subtype: lockbox` (sandbox Modern Treasury payment accounts only), `data` must include `payor_name`, otherwise the request returns 422.' description: type: string nullable: true description: Defaults to a random description. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. internal_account_id: type: string format: uuid description: The ID of one of your internal accounts. subtype: type: string nullable: true description: 'An additional layer of classification for the type of incoming payment detail, e.g. `ethereum` for a `stablecoin` type. For `type: check`, `subtype: lockbox` simulates a lockbox check deposit.' type: type: string enum: - ach - au_becs - bacs - book - check - eft - neft - nz_becs - rtp - sepa - stablecoin - wire - zengin description: One of `ach`, `wire`, `check`. virtual_account_id: type: string format: uuid nullable: true description: An optional parameter to associate the incoming payment detail to a virtual account. required: - type incoming_payment_detail_update_request: type: object properties: metadata: type: object additionalProperties: type: string description: Additional data in the form of key-value pairs. Pairs can be removed by passing an empty string or `null` as the value. internal_account: type: object properties: account_capabilities: type: array items: "$ref": "#/components/schemas/account_capability" description: An array of AccountCapability objects that list the originating abilities of the internal account and any relevant information for them. account_details: type: array items: "$ref": "#/components/schemas/account_detail" description: An array of account detail objects. account_type: type: string nullable: true enum: - cash - checking - general_ledger - hosted_wallet - loan - non_resident - other - overdraft - savings - self_hosted_wallet description: Can be checking, savings or other. allowed_ach_debit_company_ids: type: array nullable: true items: type: string description: The ACH Company IDs allowed to debit this account. `null` allows every company. An empty array allows none. Debits from any other company are returned with code R10. Only applicable to debitable accounts under a Modern Treasury PSP connection. connection: "$ref": "#/components/schemas/connection" description: Specifies which financial institution the accounts belong to. contra_ledger_account_id: type: string format: uuid nullable: true description: If the internal account links to a contra ledger account in Modern Treasury, the id of the contra ledger account will be populated here. counterparty_id: type: string format: uuid nullable: true description: The Counterparty associated to this account. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: The currency of the account. debitable: type: boolean nullable: true description: Whether this account can receive ACH debits. Only applicable to accounts created under a Modern Treasury PSP connection, or `null` for Bring Your Own Bank accounts. Defaults to `false`. Configurable only on creation. Please reach out to your customer success manager to enable this capability for your connection. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid ledger_account_id: type: string format: uuid nullable: true description: If the internal account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. legal_entity_id: type: string format: uuid nullable: true description: The Legal Entity associated to this account. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the account. object: type: string parent_account_id: type: string format: uuid nullable: true description: The parent InternalAccount of this account. party_address: "$ref": "#/components/schemas/address" description: The address associated with the owner or null. party_name: type: string description: The legal name of the entity which owns the account. party_type: type: string nullable: true enum: - business - individual description: Either individual or business. Inherits from associated LegalEntity legal_entity_type, if one exists. routing_details: type: array items: "$ref": "#/components/schemas/routing_detail" description: An array of routing detail objects. status: type: string format: string nullable: true enum: - active - closed - pending_activation - pending_closure - suspended description: The internal account status. title: type: string description: The account title at the financial institution. Defaults to the party name unless a custom title was set on creation. Custom titles are only applicable to accounts created under supported connections. updated_at: type: string format: date-time vendor_id: type: string format: string nullable: true description: The vendor ID associated with this account. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - account_type - party_name - party_type - party_address - name - account_details - account_capabilities - routing_details - connection - currency - metadata - parent_account_id - counterparty_id - vendor_id - legal_entity_id - status - ledger_account_id - contra_ledger_account_id - external_id - debitable - allowed_ach_debit_company_ids - title minProperties: 26 internal_account_create_request: type: object properties: account_capabilities: type: array items: "$ref": "#/components/schemas/account_capability" description: An array of AccountCapability objects that list the originating abilities of the internal account and any relevant information for them. account_type: type: string enum: - cash - checking - general_ledger - loan - non_resident - other - overdraft - savings description: The account type, used to provision the appropriate account at the financial institution. example: checking allowed_ach_debit_company_ids: type: array nullable: true items: type: string maxLength: 10 minLength: 1 description: The ACH Company IDs allowed to debit this account. `null` allows every company. An empty array allows none. Debits from any other company are returned with code R10. Only applicable to debitable accounts under a Modern Treasury PSP connection. connection_id: type: string description: The identifier of the financial institution the account belongs to. If not provided, defaults to the default connection, or the sole connection if only one exists. counterparty_id: type: string description: The Counterparty associated to this account. currency: type: string enum: - USD - CAD - USDC - USDT - PYUSD - USDG description: The currency of the internal account. Supports fiat and stablecoin currencies. example: USD debitable: type: boolean nullable: true description: Whether this account can receive ACH debits. Only applicable to accounts created under a Modern Treasury PSP connection, or `null` for Bring Your Own Bank accounts. Defaults to `false`. Configurable only on creation. Please reach out to your customer success manager to enable this capability for your connection. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. legal_entity_id: type: string description: The LegalEntity associated to this account. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. name: type: string description: The nickname of the account. parent_account_id: type: string description: The parent internal account of this new account. party_address: type: object properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The address associated with the owner or null. party_name: type: string nullable: true description: The legal name of the entity which owns the account. party_type: type: string nullable: true enum: - individual - business description: Either individual or business. Inherits from associated LegalEntity legal_entity_type, if one exists. requested_account_number_types: type: array items: type: string enum: - arbitrum_address - avalanche_address - base_address - ethereum_address - polygon_address - solana_address description: An array of account number types requested for provisioning. title: type: string nullable: true description: The account title at the financial institution, used in place of the party name. Defaults to the party name if not set. Only applicable to accounts created under supported connections. Please reach out to your customer success manager to enable this capability for your program. maxLength: 255 vendor_attributes: type: object additionalProperties: type: string description: A hash of vendor specific attributes that will be used when creating the account at the vendor specified by the given connection. example: foo: bar key: value modern: treasury required: - name - currency internal_account_update_request: type: object properties: allowed_ach_debit_company_ids: type: array nullable: true items: type: string maxLength: 10 minLength: 1 description: The ACH Company IDs allowed to debit this account. `null` allows every company. An empty array allows none. Debits from any other company are returned with code R10. Only applicable to debitable accounts under a Modern Treasury PSP connection. contra_ledger_account_id: type: string description: The Contra Ledger Account associated to this account. counterparty_id: type: string description: The Counterparty associated to this account. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account_id: type: string description: The Ledger Account associated to this account. metadata: type: object additionalProperties: type: string description: Additional data in the form of key-value pairs. Pairs can be removed by passing an empty string or `null` as the value. name: type: string description: The nickname for the internal account. parent_account_id: type: string description: The parent internal account for this account. party_address: type: object nullable: true allOf: - "$ref": "#/components/schemas/address_request" description: The address associated with the owner of the internal account. Updating this value does not guarantee that the new address matches the address on record with the account's bank; you are responsible for verifying that the address is accurate. party_type: type: string nullable: true enum: - individual - business description: Either individual or business. Inherits from associated LegalEntity legal_entity_type, if one exists. status: type: string enum: - pending_closure description: Requests closure of the internal account. The resulting status may be `closed` for vendors that close synchronously. invoice: type: object properties: amount_paid: type: integer description: Amount paid on the invoice in specified currency's smallest unit, e.g., $10 USD would be represented as 1000. amount_remaining: type: integer description: Amount remaining due on the invoice in specified currency's smallest unit, e.g., $10 USD would be represented as 1000. contact_details: type: array items: "$ref": "#/components/schemas/contact_detail" description: The invoicer's contact details displayed at the top of the invoice. counterparty_billing_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The counterparty's billing address. counterparty_id: type: string description: The ID of the counterparty receiving the invoice. counterparty_shipping_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The counterparty's shipping address where physical goods should be delivered. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: Currency that the invoice is denominated in. Defaults to `USD` if not provided. description: type: string description: An optional free-form description of the invoice. due_date: type: string format: date-time description: A future date by when the invoice needs to be paid. expected_payments: type: array items: "$ref": "#/components/schemas/expected_payment" description: The expected payments created for an unpaid invoice. fallback_payment_method: type: string nullable: true description: When payment_method is automatic, the fallback payment method to use when an automatic payment fails. One of `manual` or `ui`. hosted_url: type: string description: The URL of the hosted web UI where the invoice can be viewed. id: type: string format: uuid invoicer_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The invoice issuer's business address. invoicer_name: type: string nullable: true description: The name of the issuer for the invoice. Defaults to the name of the Organization. issued_at: type: string format: date-time nullable: true description: The time at which the invoice was issued. ledger_account_settlement_id: type: string format: uuid nullable: true deprecated: true description: The ledger account settlement object linked to the invoice. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object nullable: true additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury notification_email_addresses: type: array nullable: true items: type: string description: Emails in addition to the counterparty email to send invoice status notifications to. At least one email is required if notifications are enabled and the counterparty doesn't have an email. notifications_enabled: type: boolean description: If true, the invoice will send email notifications to the invoice recipients about invoice status changes. number: type: string description: A unique record number assigned to each invoice that is issued. object: type: string originating_account_id: type: string description: The ID of the internal account the invoice should be paid to. paid_at: type: string format: date-time nullable: true description: The time at which the invoice was paid. payment_effective_date: type: string format: date nullable: true description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' payment_method: type: string nullable: true enum: - ui - manual - automatic description: When opening an invoice, whether to show the embedded payment UI , automatically debit the recipient, or rely on manual payment from the recipient. payment_orders: type: array items: "$ref": "#/components/schemas/payment_order" description: The payment orders created for paying the invoice through the invoice payment UI. payment_type: type: string nullable: true enum: - eft - ach description: One of `ach` or `eft`. pdf_url: type: string nullable: true description: The URL where the invoice PDF can be downloaded. receiving_account_id: type: string format: uuid nullable: true description: The receiving account ID. Can be an `internal_account`. recipient_email: type: string nullable: true description: The email of the recipient of the invoice. Leaving this value as null will fallback to using the counterparty's name. recipient_name: type: string nullable: true description: The name of the recipient of the invoice. Leaving this value as null will fallback to using the counterparty's name. remind_after_overdue_days: type: array nullable: true items: type: integer description: Number of days after due date when overdue reminder emails will be sent out to invoice recipients. status: type: string enum: - draft - paid - partially_paid - payment_pending - unpaid - voided description: The status of the invoice. total_amount: type: integer description: Total amount due in specified currency's smallest unit, e.g., $10 USD would be represented as 1000. transaction_line_item_ids: type: array items: type: string format: uuid description: IDs of transaction line items associated with an invoice. updated_at: type: string format: date-time virtual_account_id: type: string format: uuid nullable: true description: The ID of the virtual account the invoice should be paid to. voided_at: type: string format: date-time nullable: true description: The time at which the invoice was voided. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - contact_details - recipient_email - recipient_name - counterparty_id - counterparty_billing_address - counterparty_shipping_address - currency - description - due_date - invoicer_name - invoicer_address - originating_account_id - receiving_account_id - virtual_account_id - payment_effective_date - payment_type - payment_method - fallback_payment_method - notifications_enabled - notification_email_addresses - remind_after_overdue_days - metadata - hosted_url - number - payment_orders - expected_payments - pdf_url - status - total_amount - amount_remaining - amount_paid - transaction_line_item_ids - ledger_account_settlement_id - issued_at - paid_at - voided_at minProperties: 41 invoice_create_request: type: object properties: auto_advance: type: boolean nullable: true description: When true, the invoice will progress to unpaid automatically and cannot be edited after entering that state. If the invoice fails to progress to unpaid, the errors will be returned and the invoice will not be created. contact_details: type: array items: "$ref": "#/components/schemas/contact_detail" description: The invoicer's contact details displayed at the top of the invoice. counterparty_billing_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The counterparty's billing address. counterparty_id: type: string description: The ID of the counterparty receiving the invoice. counterparty_shipping_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The counterparty's shipping address where physical goods should be delivered. currency: "$ref": "#/components/schemas/currency" description: Currency that the invoice is denominated in. Defaults to `USD` if not provided. description: type: string description: A free-form description of the invoice. due_date: type: string format: date-time description: A future date by when the invoice needs to be paid. fallback_payment_method: type: string nullable: true description: When payment_method is automatic, the fallback payment method to use when an automatic payment fails. One of `manual` or `ui`. invoice_line_items: type: array nullable: true items: "$ref": "#/components/schemas/invoice_line_item_create_request" description: An array of invoice line items. The API supports a maximum of 50 invoice line items per invoice. If a greater number of invoice line items is required, please contact support. invoicer_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The invoice issuer's business address. invoicer_name: type: string nullable: true description: The name of the issuer for the invoice. Defaults to the name of the Organization. metadata: type: object nullable: true additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury notification_email_addresses: type: array nullable: true items: type: string description: Emails in addition to the counterparty email to send invoice status notifications to. At least one email is required if notifications are enabled and the counterparty doesn't have an email. notifications_enabled: type: boolean description: If true, the invoice will send email notifications to the invoice recipients about invoice status changes. originating_account_id: type: string description: The ID of the internal account the invoice should be paid to. payment_effective_date: type: string format: date description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' payment_method: type: string enum: - ui - manual - automatic description: The method by which the invoice can be paid. `ui` will show the embedded payment collection flow. `automatic` will automatically initiate payment based upon the account details of the receiving_account id.\nIf the invoice amount is positive, the automatically initiated payment order's direction will be debit. If the invoice amount is negative, the automatically initiated payment order's direction will be credit. One of `manual`, `ui`, or `automatic`. payment_type: "$ref": "#/components/schemas/payment_order_type" receiving_account_id: type: string format: uuid description: The receiving account ID. Can be an `external_account`. recipient_email: type: string nullable: true description: The email of the recipient of the invoice. Leaving this value as null will fallback to using the counterparty's name. recipient_name: type: string nullable: true description: The name of the recipient of the invoice. Leaving this value as null will fallback to using the counterparty's name. remind_after_overdue_days: type: array nullable: true items: type: integer description: Number of days after due date when overdue reminder emails will be sent out to invoice recipients. virtual_account_id: type: string format: uuid nullable: true description: The ID of the virtual account the invoice should be paid to. required: - counterparty_id - due_date - originating_account_id invoice_line_item: type: object properties: amount: type: integer description: The total amount for this line item specified in the invoice currency's smallest unit. created_at: type: string format: date-time description: type: string description: An optional free-form description of the line item. direction: type: string description: Either `debit` or `credit`. `debit` indicates that a client owes the business money and increases the invoice's `total_amount` due. `credit` has the opposite intention and effect. id: type: string format: uuid invoice_id: type: string description: The ID of the invoice for this line item. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the line item, typically a product or SKU name. object: type: string quantity: type: integer description: The number of units of a product or service that this line item is for. Must be a whole number. Defaults to 1 if not provided. unit_amount: type: integer description: The cost per unit of the product or service that this line item is for, specified in the invoice currency's smallest unit. unit_amount_decimal: type: string description: The cost per unit of the product or service that this line item is for, specified in the invoice currency's smallest unit. Accepts decimal strings with up to 12 decimals updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - name - description - quantity - unit_amount - unit_amount_decimal - direction - metadata - amount - invoice_id minProperties: 14 invoice_line_item_create_request: type: object properties: description: type: string description: An optional free-form description of the line item. direction: type: string description: Either `debit` or `credit`. `debit` indicates that a client owes the business money and increases the invoice's `total_amount` due. `credit` has the opposite intention and effect. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the line item, typically a product or SKU name. quantity: type: integer description: The number of units of a product or service that this line item is for. Must be a whole number. Defaults to 1 if not provided. unit_amount: type: integer description: The cost per unit of the product or service that this line item is for, specified in the invoice currency's smallest unit. unit_amount_decimal: type: string description: The cost per unit of the product or service that this line item is for, specified in the invoice currency's smallest unit. Accepts decimal strings with up to 12 decimals required: - name - unit_amount invoice_line_item_update_request: type: object properties: description: type: string description: An optional free-form description of the line item. direction: type: string description: Either `debit` or `credit`. `debit` indicates that a client owes the business money and increases the invoice's `total_amount` due. `credit` has the opposite intention and effect. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the line item, typically a product or SKU name. quantity: type: integer description: The number of units of a product or service that this line item is for. Must be a whole number. Defaults to 1 if not provided. unit_amount: type: integer description: The cost per unit of the product or service that this line item is for, specified in the invoice currency's smallest unit. unit_amount_decimal: type: string description: The cost per unit of the product or service that this line item is for, specified in the invoice currency's smallest unit. Accepts decimal strings with up to 12 decimals invoice_update_request: type: object properties: contact_details: type: array items: "$ref": "#/components/schemas/contact_detail" description: The invoicer's contact details displayed at the top of the invoice. counterparty_billing_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The counterparty's billing address. counterparty_id: type: string description: The ID of the counterparty receiving the invoice. counterparty_shipping_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The counterparty's shipping address where physical goods should be delivered. currency: "$ref": "#/components/schemas/currency" description: Currency that the invoice is denominated in. Defaults to `USD` if not provided. description: type: string description: A free-form description of the invoice. due_date: type: string format: date-time description: A future date by when the invoice needs to be paid. fallback_payment_method: type: string nullable: true description: When payment_method is automatic, the fallback payment method to use when an automatic payment fails. One of `manual` or `ui`. invoice_line_items: type: array nullable: true items: "$ref": "#/components/schemas/invoice_line_item_create_request" description: An array of invoice line items. The API supports a maximum of 50 invoice line items per invoice. If a greater number of invoice line items is required, please contact support. invoicer_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - region - postal_code - country description: The invoice issuer's business address. invoicer_name: type: string nullable: true description: The name of the issuer for the invoice. Defaults to the name of the Organization. metadata: type: object nullable: true additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury notification_email_addresses: type: array nullable: true items: type: string description: Emails in addition to the counterparty email to send invoice status notifications to. At least one email is required if notifications are enabled and the counterparty doesn't have an email. notifications_enabled: type: boolean description: If true, the invoice will send email notifications to the invoice recipients about invoice status changes. originating_account_id: type: string description: The ID of the internal account the invoice should be paid to. payment_effective_date: type: string format: date description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' payment_method: type: string enum: - ui - manual - automatic description: The method by which the invoice can be paid. `ui` will show the embedded payment collection flow. `automatic` will automatically initiate payment based upon the account details of the receiving_account id.\nIf the invoice amount is positive, the automatically initiated payment order's direction will be debit. If the invoice amount is negative, the automatically initiated payment order's direction will be credit. One of `manual`, `ui`, or `automatic`. payment_type: "$ref": "#/components/schemas/payment_order_type" receiving_account_id: type: string format: uuid description: The receiving account ID. Can be an `external_account`. recipient_email: type: string nullable: true description: The email of the recipient of the invoice. Leaving this value as null will fallback to using the counterparty's name. recipient_name: type: string nullable: true description: The name of the recipient of the invoice. Leaving this value as null will fallback to using the counterparty's name. remind_after_overdue_days: type: array nullable: true items: type: integer description: Number of days after due date when overdue reminder emails will be sent out to invoice recipients. status: type: string description: Invoice status must be updated in a `PATCH` request that does not modify any other invoice attributes. Valid state transitions are `draft` to `unpaid`, `draft`, `unpaid` or `paid` to `voided`, and `draft` or `unpaid` to `paid`. virtual_account_id: type: string format: uuid nullable: true description: The ID of the virtual account the invoice should be paid to. ledger: type: object properties: created_at: type: string format: date-time description: type: string nullable: true description: An optional free-form description for internal use. discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger. object: type: string updated_at: type: string format: date-time additionalProperties: true required: - id - object - live_mode - created_at - updated_at - discarded_at - name - description - metadata minProperties: 9 maxProperties: 11 ledger_account: type: object properties: balances: "$ref": "#/components/schemas/ledger_balances_with_effective_at" description: The pending, posted, and available balances for this ledger account. The posted balance is the sum of all posted entries on the account. The pending balance is the sum of all pending and posted entries on the account. The available balance is the posted incoming entries minus the sum of the pending and posted outgoing amounts. created_at: type: string format: date-time description: type: string nullable: true description: The description of the ledger account. discarded_at: type: string format: date-time nullable: true external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid ledger_id: type: string format: uuid description: The id of the ledger that this account belongs to. ledgerable_id: type: string format: uuid nullable: true description: If the ledger account links to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string nullable: true enum: - external_account - internal_account - virtual_account description: If the ledger account links to another object in Modern Treasury, the type will be populated here, otherwise null. The value is one of internal_account or external_account. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. lock_version: type: integer description: Lock version of the ledger account. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger account. normal_balance: type: string enum: - credit - debit description: The normal balance of the ledger account. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - name - description - normal_balance - balances - lock_version - ledger_id - ledgerable_id - external_id - ledgerable_type - metadata minProperties: 16 ledger_account_balance_monitor: type: object properties: alert_condition: "$ref": "#/components/schemas/alert_condition" description: Describes the condition that must be satisfied for the monitor to be triggered. created_at: type: string format: date-time current_ledger_account_balance_state: "$ref": "#/components/schemas/current_ledger_account_balance_state" description: The ledger account's balances and the monitor state as of the current ledger account lock version. description: type: string nullable: true description: An optional, free-form description for internal use. discarded_at: type: string format: date-time nullable: true id: type: string format: uuid ledger_account_id: type: string description: The ledger account associated with this balance monitor. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - ledger_account_id - description - alert_condition - current_ledger_account_balance_state - metadata minProperties: 11 ledger_account_balance_monitor_create_request: type: object properties: alert_condition: "$ref": "#/components/schemas/alert_condition_create_request" description: Describes the condition that must be satisfied for the monitor to be triggered. description: type: string description: An optional, free-form description for internal use. ledger_account_id: type: string description: The ledger account associated with this balance monitor. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury required: - ledger_account_id - alert_condition ledger_account_balance_monitor_update_request: type: object properties: description: type: string description: An optional, free-form description for internal use. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury ledger_account_category: type: object properties: balances: "$ref": "#/components/schemas/ledger_balances" description: The pending, posted, and available balances for this ledger account category. The posted balance is the sum of all posted entries on the account. The pending balance is the sum of all pending and posted entries on the account. The available balance is the posted incoming entries minus the sum of the pending and posted outgoing amounts. created_at: type: string format: date-time description: type: string nullable: true description: The description of the ledger account category. discarded_at: type: string format: date-time nullable: true external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid ledger_id: type: string format: uuid description: The id of the ledger that this account category belongs to. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger account category. normal_balance: type: string enum: - credit - debit description: The normal balance of the ledger account category. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - name - description - metadata - ledger_id - normal_balance - external_id - balances minProperties: 13 ledger_account_category_create_request: type: object properties: currency: type: string description: The currency of the ledger account category. currency_exponent: type: integer nullable: true description: The currency exponent of the ledger account category. description: type: string nullable: true description: The description of the ledger account category. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account_category_ids: type: array items: type: string format: uuid description: The array of ledger account category ids that this ledger account category should be a child of. ledger_id: type: string format: uuid description: The id of the ledger that this account category belongs to. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger account category. normal_balance: type: string enum: - credit - debit description: The normal balance of the ledger account category. required: - name - normal_balance - currency - ledger_id ledger_account_category_update_request: type: object properties: description: type: string nullable: true description: The description of the ledger account category. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger account category. ledger_account_create_request: type: object properties: currency: type: string description: The currency of the ledger account. currency_exponent: type: integer nullable: true description: The currency exponent of the ledger account. description: type: string nullable: true description: The description of the ledger account. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account_category_ids: type: array items: type: string format: uuid description: The array of ledger account category ids that this ledger account should be a child of. ledger_id: type: string format: uuid description: The id of the ledger that this account belongs to. ledgerable_id: type: string format: uuid description: If the ledger account links to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string enum: - external_account - internal_account - virtual_account description: If the ledger account links to another object in Modern Treasury, the type will be populated here, otherwise null. The value is one of internal_account or external_account. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger account. normal_balance: type: string enum: - credit - debit description: The normal balance of the ledger account. required: - name - normal_balance - ledger_id - currency ledger_account_settlement: type: object properties: amount: type: integer nullable: true description: The amount of the ledger account settlement. contra_ledger_account_id: type: string format: uuid description: The id of the contra ledger account that sends to or receives funds from the settled ledger account. created_at: type: string format: date-time currency: type: string description: The currency of the ledger account settlement. currency_exponent: type: integer nullable: true description: The currency exponent of the ledger account settlement. description: type: string nullable: true description: The description of the ledger account settlement. effective_at_upper_bound: type: string format: date-time nullable: true description: The exclusive upper bound of the effective_at timestamp of the ledger entries to be included in the ledger account settlement. The default value is the created_at timestamp of the ledger account settlement. id: type: string format: uuid ledger_id: type: string format: uuid description: The id of the ledger that this ledger account settlement belongs to. ledger_transaction_id: type: string format: uuid nullable: true description: The id of the ledger transaction that this settlement is associated with. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string settled_ledger_account_id: type: string format: uuid description: The id of the settled ledger account whose ledger entries are queried against, and its balance is reduced as a result. settlement_entry_direction: type: string nullable: true description: The direction of the ledger entry with the settlement_ledger_account. status: type: string enum: - archived - archiving - drafting - pending - posted - processing description: The status of the ledger account settlement. One of `processing`, `pending`, `posted`, `archiving` or `archived`. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - ledger_id - description - status - settled_ledger_account_id - contra_ledger_account_id - effective_at_upper_bound - ledger_transaction_id - amount - settlement_entry_direction - currency - currency_exponent - metadata minProperties: 17 ledger_account_settlement_create_request: type: object properties: allow_either_direction: type: boolean nullable: true description: If true, the settlement amount and settlement_entry_direction will bring the settlement ledger account's balance closer to zero, even if the balance is negative. contra_ledger_account_id: type: string format: uuid description: The id of the contra ledger account that sends to or receives funds from the settled ledger account. description: type: string nullable: true description: The description of the ledger account settlement. effective_at_upper_bound: type: string format: date-time nullable: true description: The exclusive upper bound of the effective_at timestamp of the ledger entries to be included in the ledger account settlement. The default value is the created_at timestamp of the ledger account settlement. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury settled_ledger_account_id: type: string format: uuid description: The id of the settled ledger account whose ledger entries are queried against, and its balance is reduced as a result. skip_settlement_ledger_transaction: type: boolean nullable: true description: It is set to `false` by default. It should be set to `true` when migrating existing settlements. status: type: string nullable: true enum: - pending - posted - drafting description: The status of the ledger account settlement. It is set to `pending` by default. To post a ledger account settlement at creation, use `posted`. required: - settled_ledger_account_id - contra_ledger_account_id ledger_account_settlement_entries_delete_request: type: object properties: ledger_entry_ids: type: array nullable: true items: type: string format: uuid description: The ids of the ledger entries that are to be added or removed from the ledger account settlement. required: - ledger_entry_ids ledger_account_settlement_entries_patch_request: type: object properties: ledger_entry_ids: type: array nullable: true items: type: string format: uuid description: The ids of the ledger entries that are to be added or removed from the ledger account settlement. required: - ledger_entry_ids ledger_account_settlement_update_request: type: object properties: description: type: string nullable: true description: The description of the ledger account settlement. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury skip_settlement_ledger_transaction: type: boolean nullable: true description: It is set to `false` by default. It should be set to `true` when migrating existing settlements. status: type: string enum: - posted - archived description: To post a pending ledger account settlement, use `posted`. To archive a pending ledger transaction, use `archived`. ledger_account_statement: type: object properties: created_at: type: string format: date-time description: type: string nullable: true description: The description of the ledger account statement. effective_at_lower_bound: type: string format: date-time description: The inclusive lower bound of the effective_at timestamp of the ledger entries to be included in the ledger account statement. effective_at_upper_bound: type: string format: date-time description: The exclusive upper bound of the effective_at timestamp of the ledger entries to be included in the ledger account statement. ending_balance: "$ref": "#/components/schemas/ledger_balances" description: The pending, posted, and available balances for this ledger account at the `effective_at_upper_bound`. The posted balance is the sum of all posted entries on the account. The pending balance is the sum of all pending and posted entries on the account. The available balance is the posted incoming entries minus the sum of the pending and posted outgoing amounts. id: type: string format: uuid ledger_account_id: type: string format: uuid description: The id of the ledger account whose ledger entries are queried against, and its balances are computed as a result. ledger_account_lock_version: type: integer description: Lock version of the ledger account at the time of statement generation. ledger_account_normal_balance: type: string enum: - credit - debit description: The normal balance of the ledger account. ledger_id: type: string format: uuid description: The id of the ledger that this ledger account statement belongs to. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string starting_balance: "$ref": "#/components/schemas/ledger_balances" description: The pending, posted, and available balances for this ledger account at the `effective_at_lower_bound`. The posted balance is the sum of all posted entries on the account. The pending balance is the sum of all pending and posted entries on the account. The available balance is the posted incoming entries minus the sum of the pending and posted outgoing amounts. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - ledger_id - description - ledger_account_id - ledger_account_lock_version - ledger_account_normal_balance - effective_at_lower_bound - effective_at_upper_bound - starting_balance - ending_balance - metadata minProperties: 15 ledger_account_statement_create_request: type: object properties: description: type: string nullable: true description: The description of the ledger account statement. effective_at_lower_bound: type: string format: date-time description: The inclusive lower bound of the effective_at timestamp of the ledger entries to be included in the ledger account statement. effective_at_upper_bound: type: string format: date-time description: The exclusive upper bound of the effective_at timestamp of the ledger entries to be included in the ledger account statement. ledger_account_id: type: string format: uuid description: The id of the ledger account whose ledger entries are queried against, and its balances are computed as a result. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury required: - ledger_account_id - effective_at_lower_bound - effective_at_upper_bound ledger_account_update_request: type: object properties: description: type: string nullable: true description: The description of the ledger account. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger account. ledger_balance: type: object properties: amount: type: integer amount_string: type: string credits: type: integer credits_string: type: string currency: type: string description: The currency of the ledger account. currency_exponent: type: integer description: The currency exponent of the ledger account. debits: type: integer debits_string: type: string additionalProperties: false required: - credits - credits_string - debits - debits_string - amount - amount_string - currency - currency_exponent minProperties: 8 ledger_balances: type: object properties: available_balance: "$ref": "#/components/schemas/ledger_balance" description: The available_balance is the sum of all posted inbound entries and pending outbound entries. For credit normal, available_amount = posted_credits - pending_debits; for debit normal, available_amount = posted_debits - pending_credits. pending_balance: "$ref": "#/components/schemas/ledger_balance" description: The pending_balance is the sum of all pending and posted entries. posted_balance: "$ref": "#/components/schemas/ledger_balance" description: The posted_balance is the sum of all posted entries. additionalProperties: false required: - pending_balance - posted_balance - available_balance minProperties: 3 ledger_balances_with_effective_at: type: object properties: available_balance: "$ref": "#/components/schemas/ledger_balance" description: The available_balance is the sum of all posted inbound entries and pending outbound entries. For credit normal, available_amount = posted_credits - pending_debits; for debit normal, available_amount = posted_debits - pending_credits. effective_at_lower_bound: type: string format: date-time nullable: true description: The inclusive lower bound of the effective_at timestamp for the returned balances. effective_at_upper_bound: type: string format: date-time nullable: true description: The exclusive upper bound of the effective_at timestamp for the returned balances. pending_balance: "$ref": "#/components/schemas/ledger_balance" description: The pending_balance is the sum of all pending and posted entries. posted_balance: "$ref": "#/components/schemas/ledger_balance" description: The posted_balance is the sum of all posted entries. additionalProperties: false required: - effective_at_lower_bound - effective_at_upper_bound - pending_balance - posted_balance - available_balance minProperties: 5 ledger_create_request: type: object properties: description: type: string nullable: true description: An optional free-form description for internal use. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger. required: - name ledger_entry: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. Can be any integer up to 36 digits. amount_string: type: string description: The amount of the ledger entry as a string, preserving full precision for values that may exceed safe integer limits in some languages. created_at: type: string format: date-time direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. discarded_at: type: string format: date-time nullable: true effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. id: type: string format: uuid ledger_account_currency: type: string description: The currency of the ledger account. ledger_account_currency_exponent: type: integer description: The currency exponent of the ledger account. ledger_account_id: type: string format: uuid description: The ledger account that this ledger entry is associated with. ledger_account_lock_version: type: integer nullable: true description: Lock version of the ledger account. This can be passed when creating a ledger transaction to only succeed if no ledger transactions have posted since the given version. See our post about Designing the Ledgers API with Optimistic Locking for more details. ledger_transaction_id: type: string description: The ledger transaction that this ledger entry is associated with. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string resulting_ledger_account_balances: type: object nullable: true allOf: - "$ref": "#/components/schemas/ledger_balances" description: The pending, posted, and available balances for this ledger entry's ledger account. The posted balance is the sum of all posted entries on the account. The pending balance is the sum of all pending and posted entries on the account. The available balance is the posted incoming entries minus the sum of the pending and posted outgoing amounts. Please see https://docs.moderntreasury.com/docs/transaction-status-and-balances for more details. status: type: string enum: - archived - pending - posted description: Equal to the state of the ledger transaction when the ledger entry was created. One of `pending`, `posted`, or `archived`. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - amount - amount_string - effective_at - direction - status - ledger_account_id - ledger_account_lock_version - ledger_account_currency - ledger_account_currency_exponent - ledger_transaction_id - resulting_ledger_account_balances - metadata minProperties: 18 ledger_entry_create_request: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. Can be any integer up to 36 digits. amount_string: type: string description: The amount of the ledger entry as a string, preserving full precision for values that may exceed safe integer limits in some languages. available_balance_amount: type: object nullable: true additionalProperties: type: integer description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to lock on the account’s available balance. If any of these conditions would be false after the transaction is created, the entire call will fail with error code 422. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. ledger_account_id: type: string format: uuid description: The ledger account that this ledger entry is associated with. lock_version: type: integer nullable: true description: Lock version of the ledger account. This can be passed when creating a ledger transaction to only succeed if no ledger transactions have posted since the given version. See our post about Designing the Ledgers API with Optimistic Locking for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury pending_balance_amount: type: object nullable: true additionalProperties: type: integer description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to lock on the account’s pending balance. If any of these conditions would be false after the transaction is created, the entire call will fail with error code 422. posted_balance_amount: type: object nullable: true additionalProperties: type: integer description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to lock on the account’s posted balance. If any of these conditions would be false after the transaction is created, the entire call will fail with error code 422. show_resulting_ledger_account_balances: type: boolean nullable: true description: If true, response will include the balance of the associated ledger account for the entry. required: - direction - ledger_account_id description: At least one of "amount" or "amount_string" is required. ledger_entry_of_transaction_version: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. Can be any integer up to 36 digits. amount_string: type: string description: The amount of the ledger entry as a string, preserving full precision for values that may exceed safe integer limits in some languages. created_at: type: string format: date-time direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. id: type: string format: uuid ledger_account_currency: type: string description: The currency of the ledger account. ledger_account_currency_exponent: type: integer description: The currency exponent of the ledger account. ledger_account_id: type: string format: uuid description: The ledger account that this ledger entry is associated with. ledger_account_lock_version: type: integer nullable: true description: Lock version of the ledger account. This can be passed when creating a ledger transaction to only succeed if no ledger transactions have posted since the given version. See our post about Designing the Ledgers API with Optimistic Locking for more details. ledger_transaction_id: type: string description: The ledger transaction that this ledger entry is associated with. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string resulting_ledger_account_balances: type: object nullable: true allOf: - "$ref": "#/components/schemas/ledger_balances" description: The pending, posted, and available balances for this ledger entry's ledger account. The posted balance is the sum of all posted entries on the account. The pending balance is the sum of all pending and posted entries on the account. The available balance is the posted incoming entries minus the sum of the pending and posted outgoing amounts. Please see https://docs.moderntreasury.com/docs/transaction-status-and-balances for more details. status: type: string enum: - archived - pending - posted description: Equal to the state of the ledger transaction when the ledger entry was created. One of `pending`, `posted`, or `archived`. additionalProperties: false required: - id - object - live_mode - created_at - amount - amount_string - effective_at - direction - status - ledger_account_id - ledger_account_lock_version - ledger_account_currency - ledger_account_currency_exponent - ledger_transaction_id - metadata - resulting_ledger_account_balances minProperties: 16 ledger_entry_partial_post_create_request: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. Can be any integer up to 36 digits. amount_string: type: string description: The amount of the ledger entry as a string, preserving full precision for values that may exceed safe integer limits in some languages. available_balance_amount: type: object nullable: true additionalProperties: type: integer description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to lock on the account’s available balance. If any of these conditions would be false after the transaction is created, the entire call will fail with error code 422. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. ledger_account_id: type: string format: uuid description: The ledger account that this ledger entry is associated with. lock_version: type: integer nullable: true description: Lock version of the ledger account. This can be passed when creating a ledger transaction to only succeed if no ledger transactions have posted since the given version. See our post about Designing the Ledgers API with Optimistic Locking for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury pending_balance_amount: type: object nullable: true additionalProperties: type: integer description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to lock on the account’s pending balance. If any of these conditions would be false after the transaction is created, the entire call will fail with error code 422. posted_balance_amount: type: object nullable: true additionalProperties: type: integer description: Use `gt` (>), `gte` (>=), `lt` (<), `lte` (<=), or `eq` (=) to lock on the account’s posted balance. If any of these conditions would be false after the transaction is created, the entire call will fail with error code 422. show_resulting_ledger_account_balances: type: boolean nullable: true description: If true, response will include the balance of the associated ledger account for the entry. required: - direction - ledger_account_id description: At least one of "amount" or "amount_string" is required. ledger_entry_update_request: type: object properties: metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury ledger_transaction: type: object properties: archived_reason: type: string nullable: true description: System-set reason why the ledger transaction was archived; currently only 'balance_lock_failure' for transactions that violated balance constraints. Only populated when archive_on_balance_lock_failure is true and a balance lock violation occurs, otherwise null. created_at: type: string format: date-time description: type: string nullable: true description: An optional description for internal use. effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. effective_date: type: string format: date description: The date (YYYY-MM-DD) on which the ledger transaction happened for reporting purposes. external_id: type: string nullable: true description: A unique string to represent the ledger transaction. Only one pending or posted ledger transaction may have this ID in the ledger. id: type: string format: uuid ledger_entries: type: array items: "$ref": "#/components/schemas/ledger_entry" description: An array of ledger entry objects. ledger_id: type: string format: uuid description: The ID of the ledger this ledger transaction belongs to. ledgerable_id: type: string format: uuid nullable: true description: If the ledger transaction can be reconciled to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string nullable: true enum: - expected_payment - incoming_payment_detail - payment_order - return - reversal description: If the ledger transaction can be reconciled to another object in Modern Treasury, the type will be populated here, otherwise null. This can be one of payment_order, incoming_payment_detail, expected_payment, return, or reversal. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string partially_posts_ledger_transaction_id: type: string nullable: true description: The ID of the ledger transaction that this ledger transaction partially posts. posted_at: type: string format: date-time nullable: true description: The time on which the ledger transaction posted. This is null if the ledger transaction is pending. reversed_by_ledger_transaction_id: type: string nullable: true description: The ID of the ledger transaction that reversed this ledger transaction. reverses_ledger_transaction_id: type: string nullable: true description: The ID of the original ledger transaction that this ledger transaction reverses. status: type: string enum: - archived - pending - posted description: To post a ledger transaction at creation, use `posted`. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - description - status - metadata - effective_at - effective_date - ledger_entries - posted_at - ledger_id - ledgerable_type - ledgerable_id - external_id - reverses_ledger_transaction_id - reversed_by_ledger_transaction_id - partially_posts_ledger_transaction_id - archived_reason minProperties: 20 ledger_transaction_create_request: type: object properties: description: type: string nullable: true description: An optional description for internal use. effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. effective_date: type: string format: date description: The date (YYYY-MM-DD) on which the ledger transaction happened for reporting purposes. external_id: type: string description: A unique string to represent the ledger transaction. Only one pending or posted ledger transaction may have this ID in the ledger. ledger_entries: type: array items: "$ref": "#/components/schemas/ledger_entry_create_request" description: An array of ledger entry objects. ledgerable_id: type: string format: uuid description: If the ledger transaction can be reconciled to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string enum: - expected_payment - incoming_payment_detail - payment_order - return - reversal description: If the ledger transaction can be reconciled to another object in Modern Treasury, the type will be populated here, otherwise null. This can be one of payment_order, incoming_payment_detail, expected_payment, return, or reversal. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury status: type: string enum: - archived - pending - posted description: To post a ledger transaction at creation, use `posted`. required: - ledger_entries ledger_transaction_partial_post_create_request: type: object properties: description: type: string description: An optional free-form description for the posted ledger transaction. Maximum of 1000 characters allowed. effective_at: type: string format: date-time description: The timestamp (IS08601 format) at which the posted ledger transaction happened for reporting purposes. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury posted_ledger_entries: type: array items: "$ref": "#/components/schemas/ledger_entry_partial_post_create_request" description: An array of ledger entry objects to be set on the posted ledger transaction. There must be one entry for each of the existing entries with a lesser amount than the existing entry. required: - posted_ledger_entries ledger_transaction_reversal_create_request: type: object properties: description: type: string description: An optional free-form description for the reversal ledger transaction. Maximum of 1000 characters allowed. effective_at: type: string format: date-time nullable: true description: The timestamp (ISO8601 format) at which the reversal ledger transaction happened for reporting purposes. It defaults to the `effective_at` of the original ledger transaction if not provided. external_id: type: string description: Must be unique within the ledger. ledgerable_id: type: string format: uuid description: Specify this if you'd like to link the reversal ledger transaction to a Payment object like Return or Reversal. ledgerable_type: type: string enum: - expected_payment - incoming_payment_detail - payment_order - return - reversal description: Specify this if you'd like to link the reversal ledger transaction to a Payment object like Return or Reversal. metadata: type: object additionalProperties: type: string description: Additional data to be added to the reversal ledger transaction as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury status: type: string enum: - archived - pending - posted description: Status of the reversal ledger transaction. It defaults to `posted` if not provided. ledger_transaction_update_request: type: object properties: description: type: string nullable: true description: An optional description for internal use. effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. external_id: type: string nullable: true description: A unique string to represent the ledger transaction. Only one pending or posted ledger transaction may have this ID in the ledger. ledger_entries: type: array items: "$ref": "#/components/schemas/ledger_entry_create_request" description: An array of ledger entry objects. ledgerable_id: type: string format: uuid description: If the ledger transaction can be reconciled to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string enum: - expected_payment - incoming_payment_detail - payment_order - return - reversal description: If the ledger transaction can be reconciled to another object in Modern Treasury, the type will be populated here, otherwise null. This can be one of payment_order, incoming_payment_detail, expected_payment, return, or reversal. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury status: type: string enum: - archived - pending - posted description: To post a ledger transaction at creation, use `posted`. ledger_transaction_version: type: object properties: archived_reason: type: string nullable: true description: System-set reason why the ledger transaction was archived; currently only 'balance_lock_failure' for transactions that violated balance constraints. Only populated when archive_on_balance_lock_failure is true and a balance lock violation occurs, otherwise null. created_at: type: string format: date-time description: type: string nullable: true description: An optional description for internal use. effective_at: type: string format: date-time description: The timestamp (ISO8601 format) at which the ledger transaction happened for reporting purposes. effective_date: type: string format: date description: The date (YYYY-MM-DD) on which the ledger transaction happened for reporting purposes. external_id: type: string nullable: true description: A unique string to represent the ledger transaction. Only one pending or posted ledger transaction may have this ID in the ledger. id: type: string format: uuid ledger_entries: type: array items: "$ref": "#/components/schemas/ledger_entry_of_transaction_version" description: An array of ledger entry objects. ledger_id: type: string format: uuid description: The ID of the ledger this ledger transaction belongs to. ledger_transaction_id: type: string format: uuid description: The ID of the ledger transaction ledgerable_id: type: string format: uuid nullable: true description: If the ledger transaction can be reconciled to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string nullable: true enum: - expected_payment - incoming_payment_detail - payment_order - return - reversal description: If the ledger transaction can be reconciled to another object in Modern Treasury, the type will be populated here, otherwise null. This can be one of payment_order, incoming_payment_detail, expected_payment, return, or reversal. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string partially_posts_ledger_transaction_id: type: string nullable: true description: The ID of the ledger transaction that this ledger transaction partially posts. posted_at: type: string format: date-time nullable: true description: The time on which the ledger transaction posted. This is null if the ledger transaction is pending. reversed_by_ledger_transaction_id: type: string nullable: true description: The ID of the ledger transaction that reversed this ledger transaction. reverses_ledger_transaction_id: type: string nullable: true description: The ID of the original ledger transaction. that this ledger transaction reverses. status: type: string enum: - archived - pending - posted description: One of `pending`, `posted`, or `archived`. version: type: integer description: Version number of the ledger transaction. additionalProperties: false required: - id - object - live_mode - created_at - ledger_transaction_id - description - status - metadata - effective_at - effective_date - ledger_entries - posted_at - ledger_id - ledgerable_type - ledgerable_id - external_id - version - reverses_ledger_transaction_id - reversed_by_ledger_transaction_id - partially_posts_ledger_transaction_id - archived_reason minProperties: 21 ledger_update_request: type: object properties: description: type: string nullable: true description: An optional free-form description for internal use. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the ledger. legacy_document_create_request: type: object properties: document_type: type: string description: A category given to the document, can be `null`. file: type: string format: binary required: - file legal_entity: type: object properties: addresses: type: array items: "$ref": "#/components/schemas/legal_entity_address" description: A list of addresses for the entity. bank_settings: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_bank_setting" business_description: type: string nullable: true description: A description of the business. business_designation: type: string nullable: true enum: - exempt_financial_institution - non_operating_business description: Legal designation associated with the business. business_name: type: string nullable: true description: The business's legal business name. citizenship_country: type: string nullable: true description: The country of citizenship for an individual. compliance_details: type: object nullable: true deprecated: true country_of_incorporation: type: string nullable: true description: The country where the business is incorporated, as an ISO 3166-1 alpha-2 country code (e.g. US). example: US created_at: type: string format: date-time date_formed: type: string format: date nullable: true description: A business's formation date (YYYY-MM-DD). date_of_birth: type: string format: date nullable: true description: An individual's date of birth (YYYY-MM-DD). discarded_at: type: string format: date-time nullable: true documents: type: array items: "$ref": "#/components/schemas/document" doing_business_as_names: type: array items: type: string description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name. email: type: string nullable: true description: The entity's primary email. expected_activity_volume: type: integer nullable: true description: Monthly expected transaction volume in USD. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. first_name: type: string nullable: true description: An individual's first name. id: type: string format: uuid identifications: type: array items: "$ref": "#/components/schemas/identification" description: A list of identifications for the legal entity. industry_classifications: type: array items: "$ref": "#/components/schemas/legal_entity_industry_classification" description: A list of industry classifications for the legal entity. intended_use: type: string nullable: true description: A description of the intended use of the legal entity. last_name: type: string nullable: true description: An individual's last name. legal_entity_associations: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_association" description: The legal entity associations and its child legal entities. legal_entity_type: type: string enum: - business - individual description: The type of legal entity. legal_structure: type: string nullable: true enum: - corporation - llc - non_profit - partnership - sole_proprietorship - trust description: The business's legal structure. listed_exchange: type: string nullable: true description: ISO 10383 market identifier code. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury middle_name: type: string nullable: true description: An individual's middle name. object: type: string operating_jurisdictions: type: array items: type: string description: A list of countries where the business operates, as ISO 3166-1 alpha-2 country codes (e.g. ["US", "CA"]). example: - US - CA phone_numbers: type: array items: type: object properties: phone_number: type: string description: 'A phone number in E.164 format. This format is strictly validated: include a leading + and country code, followed by digits only (no spaces or dashes), e.g. +12025551234.' description: A list of phone numbers in E.164 format. politically_exposed_person: type: boolean nullable: true description: Whether the individual is a politically exposed person. preferred_name: type: string nullable: true description: An individual's preferred name. prefix: type: string nullable: true description: An individual's prefix. primary_social_media_sites: type: array items: type: string description: A list of the entity's primary social media URLs. regulators: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_regulator" description: Array of regulatory bodies overseeing this institution. risk_rating: type: string nullable: true enum: - low - medium - high description: The risk rating of the legal entity. One of low, medium, high. service_provider_legal_entity_id: type: string format: uuid nullable: true description: The UUID of the parent legal entity in the service provider tree. status: type: string nullable: true enum: - active - denied - draft - pending - suspended description: The activation status of the legal entity. One of draft, pending, active, suspended, or denied. suffix: type: string nullable: true description: An individual's suffix. terms_of_use: type: object nullable: true properties: accepted_at: type: string format: date-time description: The ISO 8601 timestamp indicating when the terms of use were accepted. ip_address: type: string description: The IP address from which the terms of use were accepted. Supports both IPv4 and IPv6 formats. description: Acceptance of terms of use by the legal entity. third_party_verification: type: object nullable: true allOf: - "$ref": "#/components/schemas/third_party_verification" deprecated: true description: Deprecated. Use `third_party_verifications` instead. third_party_verifications: type: array items: "$ref": "#/components/schemas/third_party_verification" description: A list of third-party verifications run by external vendors. title: Third Party Verfications ticker_symbol: type: string nullable: true description: Stock ticker symbol for publicly traded companies. updated_at: type: string format: date-time wealth_and_employment_details: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_wealth_employment_detail" website: type: string nullable: true description: The entity's primary website URL. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - legal_entity_type - risk_rating - status - prefix - first_name - middle_name - last_name - suffix - preferred_name - citizenship_country - politically_exposed_person - date_of_birth - date_formed - business_name - doing_business_as_names - legal_structure - business_designation - phone_numbers - email - website - business_description - intended_use - expected_activity_volume - country_of_incorporation - operating_jurisdictions - primary_social_media_sites - listed_exchange - ticker_symbol - regulators - third_party_verification - third_party_verifications - service_provider_legal_entity_id - terms_of_use - metadata - external_id - bank_settings - compliance_details - wealth_and_employment_details - addresses - identifications - industry_classifications - documents minProperties: 48 legal_entity_address: type: object properties: address_types: type: array items: type: string enum: - business - business_physical - business_registered - mailing - other - po_box - residential description: The types of this address. country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid line1: type: string nullable: true line2: type: string nullable: true live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). object: type: string postal_code: type: string nullable: true description: The postal code of the address. primary: type: boolean nullable: true description: Whether this address is the primary address for the legal entity. Optional; when omitted it is inferred from the address types. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - address_types - primary - line1 - line2 - locality - region - postal_code - country minProperties: 14 legal_entity_address_create_request: type: object properties: address_types: type: array items: type: string enum: - business - business_physical - business_registered - mailing - other - po_box - residential description: The types of this address. country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string nullable: true line2: type: string nullable: true locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string nullable: true description: The postal code of the address. primary: type: boolean nullable: true description: Whether this address is the primary address for the legal entity. Optional; when omitted it is inferred from the address types. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. required: - line1 - locality - country legal_entity_association: type: object properties: child_legal_entity: "$ref": "#/components/schemas/child_legal_entity" description: The child legal entity. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string ownership_percentage: type: integer nullable: true description: The child entity's ownership percentage iff they are a beneficial owner. parent_legal_entity_id: type: string description: The ID of the parent legal entity. This must be a business legal entity. relationship_types: type: array items: type: string enum: - authorized_signer - beneficial_owner - control_person description: A list of relationship types for how the child entity relates to parent entity. title: type: string nullable: true description: The job title of the child entity at the parent entity. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - parent_legal_entity_id - relationship_types - title - ownership_percentage - child_legal_entity minProperties: 11 legal_entity_association_create_request: type: object properties: child_legal_entity: "$ref": "#/components/schemas/child_legal_entity_create" description: The child legal entity. child_legal_entity_id: type: string description: The ID of the child legal entity. ownership_percentage: type: integer nullable: true description: The child entity's ownership percentage iff they are a beneficial owner. parent_legal_entity_id: type: string description: The ID of the parent legal entity. This must be a business legal entity. relationship_types: type: array items: type: string enum: - authorized_signer - beneficial_owner - control_person description: A list of relationship types for how the child entity relates to parent entity. title: type: string nullable: true description: The job title of the child entity at the parent entity. required: - parent_legal_entity_id - relationship_types legal_entity_association_inline_create_request: type: object properties: child_legal_entity: "$ref": "#/components/schemas/child_legal_entity_create" description: The child legal entity. child_legal_entity_id: type: string description: The ID of the child legal entity. ownership_percentage: type: integer nullable: true description: The child entity's ownership percentage iff they are a beneficial owner. relationship_types: type: array items: type: string enum: - authorized_signer - beneficial_owner - control_person description: A list of relationship types for how the child entity relates to parent entity. title: type: string nullable: true description: The job title of the child entity at the parent entity. required: - relationship_types legal_entity_bank_setting: type: object properties: backup_withholding_percentage: type: integer nullable: true description: The percentage of backup withholding to apply to the legal entity. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true enable_backup_withholding: type: boolean nullable: true description: Whether backup withholding is enabled. See more here - https://www.irs.gov/businesses/small-businesses-self-employed/backup-withholding. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string privacy_opt_out: type: boolean nullable: true description: Cross River Bank specific setting to opt out of privacy policy. regulation_o: type: boolean nullable: true description: It covers, among other types of insider loans, extensions of credit by a member bank to an executive officer, director, or principal shareholder of the member bank; a bank holding company of which the member bank is a subsidiary; and any other subsidiary of that bank holding company. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - enable_backup_withholding - backup_withholding_percentage - privacy_opt_out - regulation_o minProperties: 10 legal_entity_create_request: type: object properties: addresses: type: array items: "$ref": "#/components/schemas/legal_entity_address_create_request" description: A list of addresses for the entity. bank_settings: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_bank_setting" business_description: type: string nullable: true description: A description of the business. business_designation: type: string nullable: true enum: - exempt_financial_institution - non_operating_business description: Legal designation associated with the business. business_name: type: string nullable: true description: The business's legal business name. citizenship_country: type: string nullable: true description: The country of citizenship for an individual. compliance_details: type: object nullable: true deprecated: true connection_id: type: string nullable: true description: The connection ID for the connection the legal entity is associated with. Defaults to the id of the connection designated with an is_default value of true or the id of an existing operational connection if only one is available. Pass in a value of null to prevent the connection from being associated with the legal entity. country_of_incorporation: type: string nullable: true description: The country where the business is incorporated, as an ISO 3166-1 alpha-2 country code (e.g. US). example: US date_formed: type: string format: date nullable: true description: A business's formation date (YYYY-MM-DD). date_of_birth: type: string format: date nullable: true description: An individual's date of birth (YYYY-MM-DD). documents: type: array items: type: object properties: document_type: type: string enum: - articles_of_incorporation - certificate_of_good_standing - ein_letter - generic - identification_back - identification_front - proof_of_address description: A category given to the document, can be `null`. file_data: type: string description: Base64-encoded file content for the document. filename: type: string description: The original filename of the document. required: - document_type - file_data description: A list of documents to attach to the legal entity (e.g. articles of incorporation, certificate of good standing, proof of address). doing_business_as_names: type: array items: type: string description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name. email: type: string nullable: true description: The entity's primary email. expected_activity_volume: type: integer nullable: true description: Monthly expected transaction volume in USD. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. first_name: type: string nullable: true description: An individual's first name. identifications: type: array items: "$ref": "#/components/schemas/identification_create_request" description: A list of identifications for the legal entity. industry_classifications: type: array items: "$ref": "#/components/schemas/legal_entity_industry_classification" description: A list of industry classifications for the legal entity. intended_use: type: string nullable: true description: A description of the intended use of the legal entity. last_name: type: string nullable: true description: An individual's last name. legal_entity_associations: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_association_inline_create_request" description: The legal entity associations and its child legal entities. legal_entity_type: type: string enum: - business - individual description: The type of legal entity. legal_structure: type: string nullable: true enum: - corporation - llc - non_profit - partnership - sole_proprietorship - trust description: The business's legal structure. listed_exchange: type: string nullable: true description: ISO 10383 market identifier code. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury middle_name: type: string nullable: true description: An individual's middle name. operating_jurisdictions: type: array items: type: string description: A list of countries where the business operates, as ISO 3166-1 alpha-2 country codes (e.g. ["US", "CA"]). example: - US - CA phone_numbers: type: array items: type: object properties: phone_number: type: string description: 'A phone number in E.164 format. This format is strictly validated: include a leading + and country code, followed by digits only (no spaces or dashes), e.g. +12025551234.' description: A list of phone numbers in E.164 format. politically_exposed_person: type: boolean nullable: true description: Whether the individual is a politically exposed person. preferred_name: type: string nullable: true description: An individual's preferred name. prefix: type: string nullable: true description: An individual's prefix. primary_social_media_sites: type: array items: type: string description: A list of the entity's primary social media URLs. regulators: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_regulator" description: Array of regulatory bodies overseeing this institution. risk_rating: type: string nullable: true enum: - low - medium - high description: The risk rating of the legal entity. One of low, medium, high. service_provider_legal_entity_id: type: string format: uuid nullable: true description: The UUID of the parent legal entity in the service provider tree. status: type: string enum: - draft description: Set to draft to create the legal entity as a draft. Omit to create it as pending. Inline child legal entities take the parent's status. suffix: type: string nullable: true description: An individual's suffix. terms_of_use: type: object nullable: true properties: accepted_at: type: string format: date-time description: The ISO 8601 timestamp indicating when the terms of use were accepted. ip_address: type: string description: The IP address from which the terms of use were accepted. Supports both IPv4 and IPv6 formats. description: Acceptance of terms of use by the legal entity. third_party_verification: type: object nullable: true allOf: - "$ref": "#/components/schemas/third_party_verification" deprecated: true description: Deprecated. Use `third_party_verifications` instead. third_party_verifications: type: array items: "$ref": "#/components/schemas/third_party_verification" description: A list of third-party verifications run by external vendors. title: Third Party Verfications ticker_symbol: type: string nullable: true description: Stock ticker symbol for publicly traded companies. wealth_and_employment_details: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_wealth_employment_detail" website: type: string nullable: true description: The entity's primary website URL. required: - legal_entity_type legal_entity_industry_classification: type: object properties: classification_codes: type: array nullable: false items: type: string description: The industry classification codes for the legal entity. classification_type: type: string nullable: false enum: - anzsic - bics - gics - hsics - icb - isic - mgecs - nace - naics - rbics - sic - sni - trbc - uksic - unspsc description: The classification system of the classification codes. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - classification_type - classification_codes minProperties: 8 legal_entity_regulator: type: object properties: jurisdiction: type: string description: The country code where the regulator operates in the ISO 3166-1 alpha-2 format (e.g., "US", "CA", "GB"). name: type: string description: Full name of the regulatory body. registration_number: type: string description: Registration or identification number with the regulator. additionalProperties: false required: - name - jurisdiction - registration_number legal_entity_update_request: type: object properties: addresses: type: array items: "$ref": "#/components/schemas/legal_entity_address_create_request" description: A list of addresses for the entity. bank_settings: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_bank_setting" business_description: type: string nullable: true description: A description of the business. business_designation: type: string nullable: true enum: - exempt_financial_institution - non_operating_business description: Legal designation associated with the business. business_name: type: string nullable: true description: The business's legal business name. citizenship_country: type: string nullable: true description: The country of citizenship for an individual. country_of_incorporation: type: string nullable: true description: The country where the business is incorporated, as an ISO 3166-1 alpha-2 country code (e.g. US). example: US date_formed: type: string format: date nullable: true description: A business's formation date (YYYY-MM-DD). date_of_birth: type: string format: date nullable: true description: An individual's date of birth (YYYY-MM-DD). doing_business_as_names: type: array items: type: string description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name. email: type: string nullable: true description: The entity's primary email. expected_activity_volume: type: integer nullable: true description: Monthly expected transaction volume in USD. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. first_name: type: string nullable: true description: An individual's first name. identifications: type: array items: "$ref": "#/components/schemas/identification_create_request" description: A list of identifications for the legal entity. industry_classifications: type: array items: "$ref": "#/components/schemas/legal_entity_industry_classification" description: A list of industry classifications for the legal entity. intended_use: type: string nullable: true description: A description of the intended use of the legal entity. last_name: type: string nullable: true description: An individual's last name. legal_structure: type: string nullable: true enum: - corporation - llc - non_profit - partnership - sole_proprietorship - trust description: The business's legal structure. listed_exchange: type: string nullable: true description: ISO 10383 market identifier code. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury middle_name: type: string nullable: true description: An individual's middle name. operating_jurisdictions: type: array items: type: string description: A list of countries where the business operates, as ISO 3166-1 alpha-2 country codes (e.g. ["US", "CA"]). example: - US - CA phone_numbers: type: array items: type: object properties: phone_number: type: string description: 'A phone number in E.164 format. This format is strictly validated: include a leading + and country code, followed by digits only (no spaces or dashes), e.g. +12025551234.' description: A list of phone numbers in E.164 format. politically_exposed_person: type: boolean nullable: true description: Whether the individual is a politically exposed person. preferred_name: type: string nullable: true description: An individual's preferred name. prefix: type: string nullable: true description: An individual's prefix. primary_social_media_sites: type: array items: type: string description: A list of the entity's primary social media URLs. regulators: type: array nullable: true items: "$ref": "#/components/schemas/legal_entity_regulator" description: Array of regulatory bodies overseeing this institution. risk_rating: type: string nullable: true enum: - low - medium - high description: The risk rating of the legal entity. One of low, medium, high. service_provider_legal_entity_id: type: string format: uuid nullable: true description: The UUID of the parent legal entity in the service provider tree. status: type: string enum: - pending description: Set to pending to submit a draft legal entity for processing. Only valid while the legal entity is draft, and must be the only attribute in the request. Draft child legal entities are submitted with it. suffix: type: string nullable: true description: An individual's suffix. terms_of_use: type: object nullable: true properties: accepted_at: type: string format: date-time description: The ISO 8601 timestamp indicating when the terms of use were accepted. ip_address: type: string description: The IP address from which the terms of use were accepted. Supports both IPv4 and IPv6 formats. description: Acceptance of terms of use by the legal entity. third_party_verification: type: object nullable: true allOf: - "$ref": "#/components/schemas/third_party_verification" deprecated: true description: Deprecated. Use `third_party_verifications` instead. third_party_verifications: type: array items: "$ref": "#/components/schemas/third_party_verification" description: A list of third-party verifications run by external vendors. title: Third Party Verfications ticker_symbol: type: string nullable: true description: Stock ticker symbol for publicly traded companies. wealth_and_employment_details: type: object nullable: true allOf: - "$ref": "#/components/schemas/legal_entity_wealth_employment_detail" website: type: string nullable: true description: The entity's primary website URL. legal_entity_update_status_request: type: object properties: status: type: string enum: - active - suspended - denied description: The target status for the legal entity. One of `active`, `suspended`, or `denied`. Valid transitions depend on the current status. required: - status legal_entity_wealth_employment_detail: type: object properties: annual_income: type: integer nullable: true description: The annual income of the individual in USD. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true employer_country: type: string nullable: true description: The country in which the employer is located. employer_name: type: string nullable: true description: The name of the employer. employer_state: type: string nullable: true description: The state in which the employer is located. This field is free-form text; for US states, we recommend a two-letter abbreviation (e.g. CA). employment_status: type: string nullable: true enum: - employed - retired - self_employed - student - unemployed description: The employment status of the individual. id: type: string format: uuid income_country: type: string nullable: true description: The country in which the individual's income is earned. income_source: type: string nullable: true enum: - family_support - government_benefits - inheritance - investments - rental_income - retirement - salary - self_employed description: The source of the individual's income. income_state: type: string nullable: true description: The state in which the individual's income is earned. industry: type: string nullable: true enum: - accounting - agriculture - automotive - chemical_manufacturing - construction - educational_medical - food_service - finance - gasoline - health_stores - laundry - maintenance - manufacturing - merchant_wholesale - mining - performing_arts - professional_non_legal - public_administration - publishing - real_estate - recreation_gambling - religious_charity - rental_services - retail_clothing - retail_electronics - retail_food - retail_furnishing - retail_home - retail_non_store - retail_sporting - transportation - travel - utilities description: The industry of the individual. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string occupation: type: string nullable: true enum: - consulting - executive - finance_accounting - food_services - government - healthcare - legal_services - manufacturing - other - sales - science_engineering - technology description: The occupation of the individual. source_of_funds: type: string nullable: true enum: - alimony - annuity - business_owner - business_revenue - debt_financing - general_employee - government_benefits - homemaker - inheritance_gift - intercompany_loan - investment - investor_funding - legal_settlement - lottery - real_estate - retained_earnings_or_savings - retired - retirement - salary - sale_of_business_assets - sale_of_real_estate - self_employed - senior_executive - trust_income description: The source of the individual's funds. updated_at: type: string format: date-time wealth_source: type: string nullable: true enum: - business_sale - family_support - government_benefits - inheritance - investments - other - rental_income - retirement - salary - self_employed description: The source of the individual's wealth. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - employment_status - occupation - industry - income_source - income_state - income_country - employer_name - employer_state - employer_country - source_of_funds - wealth_source - annual_income minProperties: 18 line_item: type: object properties: accounting: "$ref": "#/components/schemas/accounting" accounting_category_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. accounting_ledger_class_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of the class objects in your accounting system. Class objects track segments of your business independent of client or project. Note that these will only be accessible if your accounting system has been connected. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. created_at: type: string format: date-time description: type: string nullable: true description: A free-form description of the line item. id: type: string format: uuid itemizable_id: type: string format: uuid description: The ID of the payment order or expected payment. itemizable_type: type: string enum: - ExpectedPayment - PaymentOrder description: One of `payment_orders` or `expected_payments`. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - itemizable_id - itemizable_type - amount - description - metadata - accounting - accounting_category_id - accounting_ledger_class_id minProperties: 13 line_item_request: type: object properties: accounting_category_id: type: string nullable: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. description: type: string nullable: true description: A free-form description of the line item. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury required: - amount line_item_update_request: type: object properties: metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury payment_action: type: object properties: actionable_id: type: string format: uuid nullable: true description: The ID of the associated actionable object. actionable_type: type: string nullable: true description: The type of the associated actionable object. One of `payment_order`, `expected_payment`. created_at: type: string format: date-time details: type: object description: The specifc details of the payment action based on type. id: type: string format: uuid internal_account_id: type: string format: uuid description: The ID of the internal account associated with the payment action. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string status: type: string description: The current status of the payment action. One of `pending`, `processing`, `sent`, `acknowledged`, `cancelled`, or `failed`. type: type: string description: The type of the payment action. Determines the action to be taken. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - type - status - actionable_id - actionable_type - internal_account_id - details minProperties: 11 payment_action_create_request: type: object properties: actionable_id: type: string format: uuid description: Optional. The ID of the associated actionable object. actionable_type: type: string description: Optional. The type of the associated actionable object. One of `payment_order`, `expected_payment`. Required if `actionable_id` is passed. details: type: object description: Optional. The specifc details of the payment action based on type. internal_account_id: type: string format: uuid description: Optional. The ID of one of your organization's internal accounts. Required if `actionable_id` is not passed. type: type: string description: Required. The type of the payment action. Determines the action to be taken. required: - type payment_action_update_request: type: object properties: status: type: string enum: - pending - processable - processing - sent - acknowledged - failed - cancelled description: Optional. Set the status of the payment action to `cancelled` to cancel the payment action. This will only work if the payment action is in a `pending` state. required: - status payment_flow: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. Can be any integer up to 36 digits. client_token: type: string description: The client token of the payment flow. This token can be used to embed a payment workflow in your client-side application. counterparty_id: type: string format: uuid nullable: true description: The ID of a counterparty associated with the payment. As part of the payment workflow an external account will be associated with this counterparty. created_at: type: string format: date-time currency: type: string description: The currency of the payment. direction: type: string enum: - credit - debit description: Describes the direction money is flowing in the transaction. Can only be `debit`. A `debit` pulls money from someone else's account to your own. due_date: type: string format: date nullable: true description: The due date for the flow. Can only be passed in when `effective_date_selection_enabled` is `true`. effective_date_selection_enabled: type: boolean description: When `true`, your end-user can schedule the payment `effective_date` while completing the pre-built UI. existing_external_accounts_filter: type: string nullable: true enum: - verified description: When `verified` and `external_account_collection` is `enabled`, filters the list of external accounts your end-user can select to those with a `verification_status` of `verified`. external_account_collection: type: string enum: - disabled - enabled description: When `enabled`, your end-user can select from an existing external account when completing the flow. When `disabled`, your end-user must add new payment details when completing the flow. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string originating_account_id: type: string format: uuid nullable: true description: The ID of one of your organization's internal accounts. payment_order_id: type: string format: uuid nullable: true description: If present, the ID of the payment order created using this flow. receiving_account_id: type: string format: uuid nullable: true description: If present, the ID of the external account created using this flow. selected_effective_date: type: string format: date nullable: true description: This field is set after your end-user selects a payment date while completing the pre-built UI. This field is always `null` unless `effective_date_selection_enabled` is `true`. status: type: string enum: - cancelled - completed - expired - pending description: The current status of the payment flow. One of `pending`, `completed`, `expired`, or `cancelled`. updated_at: type: string format: date-time additionalProperties: false minProperties: 17 maxProperties: 19 payment_flow_create_request: type: object properties: amount: type: integer description: Required. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. Can be any integer up to 36 digits. counterparty_id: type: string format: uuid description: Required. The ID of a counterparty associated with the payment. As part of the payment workflow an external account will be associated with this model. currency: type: string description: Required. The currency of the payment. direction: type: string enum: - credit - debit description: Required. Describes the direction money is flowing in the transaction. Can only be `debit`. A `debit` pulls money from someone else's account to your own. due_date: type: string format: date description: Optional. Can only be passed in when `effective_date_selection_enabled` is `true`. When set, the due date is shown to your end-user in the pre-built UI as they are selecting a payment `effective_date`. originating_account_id: type: string format: uuid description: Required. The ID of one of your organization's internal accounts. required: - amount - currency - direction - counterparty_id - originating_account_id payment_flow_update_request: type: object properties: status: type: string enum: - cancelled description: Required. The updated status of the payment flow. Can only be used to mark a flow as `cancelled`. required: - status payment_order: type: object properties: accounting: "$ref": "#/components/schemas/accounting" accounting_category_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. accounting_ledger_class_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting ledger classes. Note that these will only be accessible if your accounting system has been connected. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000 (cents). For RTP, the maximum amount allowed by the network is $10,000,000. batch_id: type: string format: uuid nullable: true description: The ID of the batch in which the payment order is included. Only populated after the payment order begins processing. charge_bearer: type: string nullable: true enum: - shared - sender - receiver description: The party that will pay the fees for the payment order. See https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the differences between the options. counterparty_id: type: string format: uuid nullable: true description: If the payment order is tied to a specific Counterparty, their id will appear, otherwise `null`. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: Defaults to the currency of the originating account. current_hold: type: object nullable: true allOf: - "$ref": "#/components/schemas/hold" description: If the payment order's status is `held`, this will include the hold object's data. current_return: type: object nullable: true allOf: - "$ref": "#/components/schemas/return" description: If the payment order's status is `returned`, this will include the return object's data. description: type: string nullable: true description: An optional description for internal use. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. effective_date: type: string format: date description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' expires_at: type: string format: date-time nullable: true description: RFP payments require an expires_at. This value must be past the effective_date. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. foreign_exchange_contract: type: string nullable: true description: If present, indicates a specific foreign exchange contract number that has been generated by your financial institution. foreign_exchange_indicator: type: string nullable: true enum: - fixed_to_variable - variable_to_fixed description: Indicates the type of FX transfer to initiate, can be either `variable_to_fixed`, `fixed_to_variable`, or `null` if the payment order currency matches the originating account currency. foreign_exchange_rate: type: object nullable: true allOf: - "$ref": "#/components/schemas/foreign_exchange_rate" description: Associated serialized foreign exchange rate information. id: type: string format: uuid ledger_transaction_id: type: string format: uuid nullable: true description: The ID of the ledger transaction linked to the payment order. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury nsf_protected: type: boolean description: A boolean to determine if NSF Protection is enabled for this payment order. Note that this setting must also be turned on in your organization settings page. object: type: string originating_account_id: type: string format: uuid description: The ID of one of your organization's internal accounts. originating_account_type: type: string enum: - internal_account - virtual_account originating_party_address: type: object nullable: true properties: country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string nullable: true line2: type: string nullable: true locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string nullable: true description: The postal code of the address. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. description: If present, this address will override the default originating party address used on the payment order. This works across all payment types. originating_party_name: type: string nullable: true description: If present, this will replace your default company name on receiver's bank statement. This field can only be used for ACH payments currently. For ACH, only the first 16 characters of this string will be used. Any additional characters will be truncated. originating_secondary_party_name: type: string nullable: true description: Secondary name for the legal entity making the payment. Can be used for e.g. check signatures where the originating party wishes to retain their company's display name but use an employee's name for the signature. maxLength: 35 priority: type: string enum: - high - normal description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail. process_after: type: string format: date-time nullable: true description: If present, Modern Treasury will not process the payment until after this time. If `process_after` is past the cutoff for `effective_date`, `process_after` will take precedence and `effective_date` will automatically update to reflect the earliest possible sending date after `process_after`. Format is ISO8601 timestamp. purpose: type: string nullable: true description: For `wire`, this is usually the purpose which is transmitted via the "InstrForDbtrAgt" field in the ISO20022 file. For `eft`, this field is the 3 digit CPA Code that will be attached to the payment. receiving_account: type: object nullable: true oneOf: - type: object properties: account_details: type: array items: "$ref": "#/components/schemas/account_detail" account_type: "$ref": "#/components/schemas/external_account_type" card_id: type: string format: uuid nullable: true contact_details: type: array items: "$ref": "#/components/schemas/contact_detail" created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. id: type: string format: uuid ledger_account_id: type: string format: uuid nullable: true description: If the external account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments object: type: string party_address: "$ref": "#/components/schemas/address" description: The address associated with the owner or `null`. party_name: type: string description: The legal name of the entity which owns the account. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. routing_details: type: array items: "$ref": "#/components/schemas/routing_detail" updated_at: type: string format: date-time verification_source: type: string nullable: true enum: - ach_prenote - microdeposits - plaid verification_status: type: string enum: - pending_verification - unverified - verified additionalProperties: false minProperties: 20 - "$ref": "#/components/schemas/internal_account" deprecated: true description: The receiving account. Can be an `external_account` or `internal_account`. receiving_account_id: type: string format: uuid description: The receiving account ID. Can be an `external_account` or `internal_account`. receiving_account_type: type: string enum: - internal_account - external_account reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. reference_numbers: type: array items: "$ref": "#/components/schemas/payment_reference" remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. send_remittance_advice: type: boolean nullable: true description: Send an email to the counterparty when the payment order is sent to the bank. If `null`, `send_remittance_advice` on the Counterparty is used. statement_descriptor: type: string nullable: true description: An optional descriptor which will appear in the receiver's statement. For `check` payments this field will be used as the memo line. For `ach` the maximum length is 10 characters. Note that for ACH payments, the name on your bank account will be included automatically by the bank, so you can use the characters for other useful information. For `eft` the maximum length is 15 characters. status: type: string enum: - approved - cancelled - completed - denied - failed - held - needs_approval - pending - processing - returned - reversed - sent - stopped description: The current status of the payment order. subtype: "$ref": "#/components/schemas/payment_order_subtype" transaction_ids: type: array items: type: string format: uuid description: The IDs of all the transactions associated to this payment order. Usually, you will only have a single transaction ID. However, if a payment order initially results in a Return, but gets redrafted and is later successfully completed, it can have many transactions. type: "$ref": "#/components/schemas/payment_order_type" ultimate_originating_account: type: object nullable: true oneOf: - "$ref": "#/components/schemas/virtual_account" - "$ref": "#/components/schemas/internal_account" description: The account to which the originating of this payment should be attributed to. Can be a `virtual_account` or `internal_account`. ultimate_originating_account_id: type: string format: uuid nullable: true description: The ultimate originating account ID. Can be a `virtual_account` or `internal_account`. ultimate_originating_account_type: type: string nullable: true enum: - internal_account - virtual_account ultimate_originating_party_identifier: type: string nullable: true description: Identifier of the ultimate originator of the payment order. ultimate_originating_party_name: type: string nullable: true description: Name of the ultimate originator of the payment order. ultimate_receiving_party_identifier: type: string nullable: true ultimate_receiving_party_name: type: string nullable: true updated_at: type: string format: date-time vendor_attributes: type: object nullable: true description: Additional vendor specific fields for this payment. Data must be represented as key-value pairs. vendor_failure_reason: type: string nullable: true description: This field will be populated if a vendor failure occurs. Logic shouldn't be built on its value as it is free-form. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - type - subtype - amount - direction - priority - originating_account_id - receiving_account_id - currency - accounting - accounting_category_id - accounting_ledger_class_id - effective_date - description - statement_descriptor - remittance_information - originating_secondary_party_name - process_after - purpose - metadata - charge_bearer - foreign_exchange_indicator - foreign_exchange_contract - nsf_protected - originating_party_name - originating_party_address - ultimate_originating_party_name - ultimate_originating_party_identifier - ultimate_receiving_party_name - ultimate_receiving_party_identifier - send_remittance_advice - expires_at - reconciliation_status - external_id - status - receiving_account - receiving_account_type - ultimate_originating_account - ultimate_originating_account_id - ultimate_originating_account_type - originating_account_type - counterparty_id - transaction_ids - ledger_transaction_id - current_return - current_hold - reference_numbers - vendor_failure_reason - foreign_exchange_rate - vendor_attributes - batch_id minProperties: 55 payment_order_async_create_request: type: object properties: accounting: "$ref": "#/components/schemas/accounting" accounting_category_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. accounting_ledger_class_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting ledger classes. Note that these will only be accessible if your accounting system has been connected. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000 (cents). For RTP, the maximum amount allowed by the network is $10,000,000. charge_bearer: type: string nullable: true enum: - shared - sender - receiver description: The party that will pay the fees for the payment order. See https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the differences between the options. currency: "$ref": "#/components/schemas/currency" description: Defaults to the currency of the originating account. description: type: string nullable: true description: An optional description for internal use. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. effective_date: type: string format: date description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' end_to_end_id: type: string nullable: true description: A unique identifier passed through to the receiving bank. Only supported for `ach` (maximum 15 characters) and `wire` (maximum 35 characters). If not provided, Modern Treasury generates one. Some banks may truncate this value or use their own identifier instead. expires_at: type: string format: date-time nullable: true description: RFP payments require an expires_at. This value must be past the effective_date. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. fallback_type: type: string enum: - ach description: A payment type to fallback to if the original type is not valid for the receiving account. Currently, this only supports falling back from RTP to ACH (type=rtp and fallback_type=ach) foreign_exchange_contract: type: string nullable: true description: If present, indicates a specific foreign exchange contract number that has been generated by your financial institution. foreign_exchange_indicator: type: string nullable: true enum: - fixed_to_variable - variable_to_fixed description: Indicates the type of FX transfer to initiate, can be either `variable_to_fixed`, `fixed_to_variable`, or `null` if the payment order currency matches the originating account currency. ledger_transaction: "$ref": "#/components/schemas/ledger_transaction_create_request" description: Specifies a ledger transaction object that will be created with the payment order. If the ledger transaction cannot be created, then the payment order creation will fail. The resulting ledger transaction will mirror the status of the payment order. ledger_transaction_id: type: string format: uuid description: Either ledger_transaction or ledger_transaction_id can be provided. Only a pending ledger transaction can be attached upon payment order creation. Once the payment order is created, the status of the ledger transaction tracks the payment order automatically. line_items: type: array items: "$ref": "#/components/schemas/line_item_request" description: An array of line items that must sum up to the amount of the payment order. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury nsf_protected: type: boolean description: A boolean to determine if NSF Protection is enabled for this payment order. Note that this setting must also be turned on in your organization settings page. originating_account_id: type: string format: uuid description: The ID of one of your organization's internal accounts. originating_party_address: type: object nullable: true properties: country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string nullable: true line2: type: string nullable: true locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string nullable: true description: The postal code of the address. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. description: If present, this address will override the default originating party address used on the payment order. This works across all payment types. originating_party_name: type: string nullable: true description: If present, this will replace your default company name on receiver's bank statement. This field can only be used for ACH payments currently. For ACH, only the first 16 characters of this string will be used. Any additional characters will be truncated. originating_secondary_party_name: type: string nullable: true description: Secondary name for the legal entity making the payment. Can be used for e.g. check signatures where the originating party wishes to retain their company's display name but use an employee's name for the signature. maxLength: 35 priority: type: string enum: - high - normal description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail. process_after: type: string format: date-time nullable: true description: If present, Modern Treasury will not process the payment until after this time. If `process_after` is past the cutoff for `effective_date`, `process_after` will take precedence and `effective_date` will automatically update to reflect the earliest possible sending date after `process_after`. Format is ISO8601 timestamp. purpose: type: string nullable: true description: For `wire`, this is usually the purpose which is transmitted via the "InstrForDbtrAgt" field in the ISO20022 file. For `eft`, this field is the 3 digit CPA Code that will be attached to the payment. receiving_account: type: object properties: account_details: type: array items: type: object properties: account_number: type: string account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address required: - account_number account_type: "$ref": "#/components/schemas/external_account_type" contact_details: type: array items: "$ref": "#/components/schemas/contact_detail_create_request" external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account: "$ref": "#/components/schemas/ledger_account_create_request" description: Specifies a ledger account object that will be created with the external account. The resulting ledger account is linked to the external account for auto-ledgering Payment objects. See https://docs.moderntreasury.com/docs/linking-to-other-modern-treasury-objects for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments party_address: "$ref": "#/components/schemas/address_request" description: Required if receiving wire payments. party_identifier: type: string party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. plaid_processor_token: type: string description: If you've enabled the Modern Treasury + Plaid integration in your Plaid account, you can pass the processor token in this field. routing_details: type: array items: type: object properties: payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin routing_number: type: string routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - my_branch_code - mx_bank_identifier - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code required: - routing_number - routing_number_type description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account. receiving_account_id: type: string format: uuid description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account. reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. send_remittance_advice: type: boolean nullable: true description: Send an email to the counterparty when the payment order is sent to the bank. If `null`, `send_remittance_advice` on the Counterparty is used. statement_descriptor: type: string nullable: true description: An optional descriptor which will appear in the receiver's statement. For `check` payments this field will be used as the memo line. For `ach` the maximum length is 10 characters. Note that for ACH payments, the name on your bank account will be included automatically by the bank, so you can use the characters for other useful information. For `eft` the maximum length is 15 characters. subtype: "$ref": "#/components/schemas/payment_order_subtype" transaction_monitoring_enabled: type: boolean deprecated: true description: A flag that determines whether a payment order should go through transaction monitoring. type: "$ref": "#/components/schemas/payment_order_type" ultimate_originating_account_id: type: string format: uuid description: The ultimate originating account ID. Can be a `virtual_account` or `internal_account`. ultimate_originating_party_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. description: Address of the ultimate originator of the payment order. ultimate_originating_party_identifier: type: string nullable: true description: Identifier of the ultimate originator of the payment order. ultimate_originating_party_name: type: string nullable: true description: Name of the ultimate originator of the payment order. ultimate_receiving_party_identifier: type: string nullable: true description: Identifier of the ultimate funds recipient. ultimate_receiving_party_name: type: string nullable: true description: Name of the ultimate funds recipient. vendor_attributes: type: object additionalProperties: true description: Additional vendor specific fields for this payment. Data must be represented as key-value pairs. required: - type - amount - direction - originating_account_id payment_order_create_request: type: object properties: accounting: "$ref": "#/components/schemas/accounting" accounting_category_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. accounting_ledger_class_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting ledger classes. Note that these will only be accessible if your accounting system has been connected. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000 (cents). For RTP, the maximum amount allowed by the network is $10,000,000. charge_bearer: type: string nullable: true enum: - shared - sender - receiver description: The party that will pay the fees for the payment order. See https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the differences between the options. currency: "$ref": "#/components/schemas/currency" description: Defaults to the currency of the originating account. description: type: string nullable: true description: An optional description for internal use. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. documents: type: array items: "$ref": "#/components/schemas/payment_order_document_create_request" description: An array of documents to be attached to the payment order. Note that if you attach documents, the request's content type must be `multipart/form-data`. effective_date: type: string format: date description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' end_to_end_id: type: string nullable: true description: A unique identifier passed through to the receiving bank. Only supported for `ach` (maximum 15 characters) and `wire` (maximum 35 characters). If not provided, Modern Treasury generates one. Some banks may truncate this value or use their own identifier instead. expires_at: type: string format: date-time nullable: true description: RFP payments require an expires_at. This value must be past the effective_date. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. fallback_type: type: string enum: - ach description: A payment type to fallback to if the original type is not valid for the receiving account. Currently, this only supports falling back from RTP to ACH (type=rtp and fallback_type=ach) foreign_exchange_contract: type: string nullable: true description: If present, indicates a specific foreign exchange contract number that has been generated by your financial institution. foreign_exchange_indicator: type: string nullable: true enum: - fixed_to_variable - variable_to_fixed description: Indicates the type of FX transfer to initiate, can be either `variable_to_fixed`, `fixed_to_variable`, or `null` if the payment order currency matches the originating account currency. ledger_transaction: "$ref": "#/components/schemas/ledger_transaction_create_request" description: Specifies a ledger transaction object that will be created with the payment order. If the ledger transaction cannot be created, then the payment order creation will fail. The resulting ledger transaction will mirror the status of the payment order. ledger_transaction_id: type: string format: uuid description: Either ledger_transaction or ledger_transaction_id can be provided. Only a pending ledger transaction can be attached upon payment order creation. Once the payment order is created, the status of the ledger transaction tracks the payment order automatically. line_items: type: array items: "$ref": "#/components/schemas/line_item_request" description: An array of line items that must sum up to the amount of the payment order. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury nsf_protected: type: boolean description: A boolean to determine if NSF Protection is enabled for this payment order. Note that this setting must also be turned on in your organization settings page. originating_account_id: type: string format: uuid description: The ID of one of your organization's internal accounts. originating_party_address: type: object nullable: true properties: country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string nullable: true line2: type: string nullable: true locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string nullable: true description: The postal code of the address. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. description: If present, this address will override the default originating party address used on the payment order. This works across all payment types. originating_party_name: type: string nullable: true description: If present, this will replace your default company name on receiver's bank statement. This field can only be used for ACH payments currently. For ACH, only the first 16 characters of this string will be used. Any additional characters will be truncated. originating_secondary_party_name: type: string nullable: true description: Secondary name for the legal entity making the payment. Can be used for e.g. check signatures where the originating party wishes to retain their company's display name but use an employee's name for the signature. maxLength: 35 priority: type: string enum: - high - normal description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail. process_after: type: string format: date-time nullable: true description: If present, Modern Treasury will not process the payment until after this time. If `process_after` is past the cutoff for `effective_date`, `process_after` will take precedence and `effective_date` will automatically update to reflect the earliest possible sending date after `process_after`. Format is ISO8601 timestamp. purpose: type: string nullable: true description: For `wire`, this is usually the purpose which is transmitted via the "InstrForDbtrAgt" field in the ISO20022 file. For `eft`, this field is the 3 digit CPA Code that will be attached to the payment. receiving_account: type: object properties: account_details: type: array items: type: object properties: account_number: type: string account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address required: - account_number account_type: "$ref": "#/components/schemas/external_account_type" contact_details: type: array items: "$ref": "#/components/schemas/contact_detail_create_request" external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account: "$ref": "#/components/schemas/ledger_account_create_request" description: Specifies a ledger account object that will be created with the external account. The resulting ledger account is linked to the external account for auto-ledgering Payment objects. See https://docs.moderntreasury.com/docs/linking-to-other-modern-treasury-objects for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments party_address: "$ref": "#/components/schemas/address_request" description: Required if receiving wire payments. party_identifier: type: string party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. plaid_processor_token: type: string description: If you've enabled the Modern Treasury + Plaid integration in your Plaid account, you can pass the processor token in this field. routing_details: type: array items: type: object properties: payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin routing_number: type: string routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - my_branch_code - mx_bank_identifier - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code required: - routing_number - routing_number_type description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account. receiving_account_id: type: string format: uuid description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account. reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. send_remittance_advice: type: boolean nullable: true description: Send an email to the counterparty when the payment order is sent to the bank. If `null`, `send_remittance_advice` on the Counterparty is used. statement_descriptor: type: string nullable: true description: An optional descriptor which will appear in the receiver's statement. For `check` payments this field will be used as the memo line. For `ach` the maximum length is 10 characters. Note that for ACH payments, the name on your bank account will be included automatically by the bank, so you can use the characters for other useful information. For `eft` the maximum length is 15 characters. subtype: "$ref": "#/components/schemas/payment_order_subtype" transaction_monitoring_enabled: type: boolean deprecated: true description: A flag that determines whether a payment order should go through transaction monitoring. type: "$ref": "#/components/schemas/payment_order_type" ultimate_originating_account_id: type: string format: uuid description: The ultimate originating account ID. Can be a `virtual_account` or `internal_account`. ultimate_originating_party_address: type: object nullable: true properties: country: type: string description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string line2: type: string locality: type: string description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string description: The postal code of the address. region: type: string description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. description: Address of the ultimate originator of the payment order. ultimate_originating_party_identifier: type: string nullable: true description: Identifier of the ultimate originator of the payment order. ultimate_originating_party_name: type: string nullable: true description: Name of the ultimate originator of the payment order. ultimate_receiving_party_identifier: type: string nullable: true description: Identifier of the ultimate funds recipient. ultimate_receiving_party_name: type: string nullable: true description: Name of the ultimate funds recipient. vendor_attributes: type: object additionalProperties: true description: Additional vendor specific fields for this payment. Data must be represented as key-value pairs. required: - type - amount - direction - originating_account_id payment_order_document_create_request: type: object properties: document_type: type: string description: A category given to the document, can be `null`. documentable_id: type: string description: The unique identifier for the associated object. documentable_type: type: string enum: - connection - counterparty - expected_payment - identification - incoming_payment_detail - internal_account - legal_entity - payment_order - return - transaction file: type: string format: binary required: - file payment_order_subtype: type: string nullable: true enum: - 0C - 0N - 0S - CCD - CIE - CTX - IAT - PPD - TEL - WEB - arbitrum - au_becs - avalanche - bacs - base - chats - digital - dk_nets - eft - ethereum - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - polygon - print - remote_deposit - se_bankgirot - sepa - sg_giro - sic - solana - zengin description: An additional layer of classification for the type of payment order you are doing. This field is only used for `ach` payment orders currently. For `ach` payment orders, the `subtype` represents the SEC code. We currently support `CCD`, `PPD`, `IAT`, `CTX`, `WEB`, `CIE`, and `TEL`. payment_order_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: One of `ach`, `se_bankgirot`, `eft`, `wire`, `check`, `book`, `rtp`, `sepa`, `bacs`, `au_becs`, `neft`, `nics`, `nz_national_clearing_code`, `sic`, `zengin`. payment_order_update_request: type: object properties: accounting: "$ref": "#/components/schemas/accounting" accounting_category_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected. accounting_ledger_class_id: type: string format: uuid nullable: true deprecated: true description: The ID of one of your accounting ledger classes. Note that these will only be accessible if your accounting system has been connected. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000 (cents). For RTP, the maximum amount allowed by the network is $10,000,000. charge_bearer: type: string nullable: true enum: - shared - sender - receiver description: The party that will pay the fees for the payment order. See https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the differences between the options. counterparty_id: type: string format: uuid nullable: true description: Required when receiving_account_id is passed the ID of an external account. currency: "$ref": "#/components/schemas/currency" description: Defaults to the currency of the originating account. description: type: string nullable: true description: An optional description for internal use. direction: type: string enum: - credit - debit description: One of `credit`, `debit`. Describes the direction money is flowing in the transaction. A `credit` moves money from your account to someone else's. A `debit` pulls money from someone else's account to your own. Note that wire, rtp, and check payments will always be `credit`. effective_date: type: string format: date description: 'Date transactions are to be posted to the participants'' account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend. Format: yyyy-mm-dd.' end_to_end_id: type: string nullable: true description: A unique identifier passed through to the receiving bank. Only supported for `ach` (maximum 15 characters) and `wire` (maximum 35 characters). If not provided, Modern Treasury generates one. Some banks may truncate this value or use their own identifier instead. expires_at: type: string format: date-time nullable: true description: RFP payments require an expires_at. This value must be past the effective_date. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. fallback_type: type: string enum: - ach description: A payment type to fallback to if the original type is not valid for the receiving account. Currently, this only supports falling back from RTP to ACH (type=rtp and fallback_type=ach) foreign_exchange_contract: type: string nullable: true description: If present, indicates a specific foreign exchange contract number that has been generated by your financial institution. foreign_exchange_indicator: type: string nullable: true enum: - fixed_to_variable - variable_to_fixed description: Indicates the type of FX transfer to initiate, can be either `variable_to_fixed`, `fixed_to_variable`, or `null` if the payment order currency matches the originating account currency. line_items: type: array items: "$ref": "#/components/schemas/line_item_request" description: An array of line items that must sum up to the amount of the payment order. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury nsf_protected: type: boolean description: A boolean to determine if NSF Protection is enabled for this payment order. Note that this setting must also be turned on in your organization settings page. originating_account_id: type: string format: uuid description: The ID of one of your organization's internal accounts. originating_party_address: type: object nullable: true properties: country: type: string nullable: true description: Country code conforms to [ISO 3166-1 alpha-2] line1: type: string nullable: true line2: type: string nullable: true locality: type: string nullable: true description: Locality or City. Use the full city name rather than an abbreviation (e.g. San Francisco). postal_code: type: string nullable: true description: The postal code of the address. region: type: string nullable: true description: Region or State. This field is free-form; for US states, we recommend a two-letter code (e.g. CA). Full state names are also accepted. description: If present, this address will override the default originating party address used on the payment order. This works across all payment types. originating_party_name: type: string nullable: true description: If present, this will replace your default company name on receiver's bank statement. This field can only be used for ACH payments currently. For ACH, only the first 16 characters of this string will be used. Any additional characters will be truncated. originating_secondary_party_name: type: string nullable: true description: Secondary name for the legal entity making the payment. Can be used for e.g. check signatures where the originating party wishes to retain their company's display name but use an employee's name for the signature. maxLength: 35 priority: type: string enum: - high - normal description: Either `normal` or `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT transfer, respectively. For check payments, `high` can mean an overnight check rather than standard mail. process_after: type: string format: date-time nullable: true description: If present, Modern Treasury will not process the payment until after this time. If `process_after` is past the cutoff for `effective_date`, `process_after` will take precedence and `effective_date` will automatically update to reflect the earliest possible sending date after `process_after`. Format is ISO8601 timestamp. purpose: type: string nullable: true description: For `wire`, this is usually the purpose which is transmitted via the "InstrForDbtrAgt" field in the ISO20022 file. For `eft`, this field is the 3 digit CPA Code that will be attached to the payment. receiving_account: type: object properties: account_details: type: array items: type: object properties: account_number: type: string account_number_type: type: string enum: - arbitrum_address - au_number - avalanche_address - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - polygon_address - sg_number - solana_address required: - account_number account_type: "$ref": "#/components/schemas/external_account_type" contact_details: type: array items: "$ref": "#/components/schemas/contact_detail_create_request" external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. ledger_account: "$ref": "#/components/schemas/ledger_account_create_request" description: Specifies a ledger account object that will be created with the external account. The resulting ledger account is linked to the external account for auto-ledgering Payment objects. See https://docs.moderntreasury.com/docs/linking-to-other-modern-treasury-objects for more details. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments party_address: "$ref": "#/components/schemas/address_request" description: Required if receiving wire payments. party_identifier: type: string party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_type: type: string nullable: true enum: - business - individual description: Either `individual` or `business`. plaid_processor_token: type: string description: If you've enabled the Modern Treasury + Plaid integration in your Plaid account, you can pass the processor token in this field. routing_details: type: array items: type: object properties: payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin routing_number: type: string routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - my_branch_code - mx_bank_identifier - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code required: - routing_number - routing_number_type description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account. receiving_account_id: type: string format: uuid description: Either `receiving_account` or `receiving_account_id` must be present. When using `receiving_account_id`, you may pass the id of an external account or an internal account. reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. remittance_information: type: string nullable: true description: For `ach`, this field will be passed through on an addenda record. For `wire` payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000. send_remittance_advice: type: boolean nullable: true description: Send an email to the counterparty when the payment order is sent to the bank. If `null`, `send_remittance_advice` on the Counterparty is used. statement_descriptor: type: string nullable: true description: An optional descriptor which will appear in the receiver's statement. For `check` payments this field will be used as the memo line. For `ach` the maximum length is 10 characters. Note that for ACH payments, the name on your bank account will be included automatically by the bank, so you can use the characters for other useful information. For `eft` the maximum length is 15 characters. status: type: string enum: - approved - cancelled - completed - denied - failed - held - needs_approval - pending - processing - returned - reversed - sent - stopped description: To cancel a payment order, use `cancelled`. To redraft a returned payment order, use `approved`. To undo approval on a denied or approved payment order, use `needs_approval`. subtype: "$ref": "#/components/schemas/payment_order_subtype" type: "$ref": "#/components/schemas/payment_order_type" ultimate_originating_party_identifier: type: string nullable: true description: This represents the identifier by which the person is known to the receiver when using the CIE subtype for ACH payments. Only the first 22 characters of this string will be used. Any additional characters will be truncated. ultimate_originating_party_name: type: string nullable: true description: This represents the name of the person that the payment is on behalf of when using the CIE subtype for ACH payments. Only the first 15 characters of this string will be used. Any additional characters will be truncated. ultimate_receiving_party_identifier: type: string nullable: true description: This represents the name of the merchant that the payment is being sent to when using the CIE subtype for ACH payments. Only the first 22 characters of this string will be used. Any additional characters will be truncated. ultimate_receiving_party_name: type: string nullable: true description: This represents the identifier by which the merchant is known to the person initiating an ACH payment with CIE subtype. Only the first 15 characters of this string will be used. Any additional characters will be truncated. payment_reference: type: object properties: created_at: type: string format: date-time id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string reference_number: type: string description: The vendor reference number. reference_number_type: type: string enum: - ach_original_trace_number - ach_trace_number - bankprov_payment_activity_date - bankprov_payment_id - blockchain_transaction_hash - blockchain_transaction_index - bnk_dev_prenotification_id - bnk_dev_transfer_id - bny_mellon_transaction_reference_number - bofa_end_to_end_id - bofa_neft_clearing_reference_number - bofa_transaction_id - check_number - chips_uid - citibank_reference_number - citibank_worldlink_clearing_system_reference_number - column_fx_quote_id - column_reversal_pair_transfer_id - column_transfer_id - cross_river_card_network - cross_river_card_trace_number - cross_river_core_transaction_id - cross_river_fed_batch_id - cross_river_payment_id - cross_river_retrieval_reference_id - cross_river_service_message - cross_river_transaction_id - currencycloud_conversion_id - currencycloud_payment_id - eft_trace_number - end_to_end_identification - evolve_core_batch - evolve_core_file_key - evolve_core_seq - evolve_transaction_id - fake_vendor_payment_id - fedwire_imad - fedwire_omad - first_republic_internal_id - goldman_sachs_collection_request_id - goldman_sachs_end_to_end_id - goldman_sachs_payment_request_id - goldman_sachs_request_id - goldman_sachs_unique_payment_id - instruction_identification - jpmc_ccn - jpmc_clearing_system_reference - jpmc_customer_reference_id - jpmc_end_to_end_id - jpmc_firm_root_id - jpmc_fx_trn_id - jpmc_p3_id - jpmc_payment_batch_id - jpmc_payment_information_id - jpmc_payment_returned_datetime - jpmc_transaction_reference_number - lob_check_id - other - partial_swift_mir - paxos_crypto_withdrawal_id - paxos_fiat_withdrawal_id - paxos_group_id - paxos_orchestration_id - paxos_transfer_id - pnc_clearing_reference - pnc_instruction_id - pnc_multipayment_id - pnc_payment_trace_id - pnc_request_for_payment_id - pnc_transaction_reference_number - rbc_wire_reference_id - return_identification - rtp_instruction_id - silvergate_payment_id - svb_end_to_end_id - svb_payment_id - swift_mir - swift_uetr - transaction_identification - turnkey_activity_id - turnkey_send_transaction_status_id - uetr - umb_product_partner_account_number - usbank_payment_application_reference_id - usbank_payment_id - usbank_pending_rtp_payment_id - usbank_posted_rtp_payment_id - wells_fargo_end_to_end_id - wells_fargo_payment_id - wells_fargo_trace_number - wells_fargo_uetr - western_alliance_payment_id - western_alliance_transaction_id - western_alliance_wire_confirmation_number description: The type of the reference number. Referring to the vendor payment id. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - reference_number - reference_number_type minProperties: 7 payment_reference_object: type: object properties: created_at: type: string format: date-time id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string reference_number: type: string description: The actual reference number assigned by the bank. reference_number_type: type: string enum: - ach_original_trace_number - ach_trace_number - bankprov_payment_activity_date - bankprov_payment_id - blockchain_transaction_hash - blockchain_transaction_index - bnk_dev_prenotification_id - bnk_dev_transfer_id - bny_mellon_transaction_reference_number - bofa_end_to_end_id - bofa_neft_clearing_reference_number - bofa_transaction_id - check_number - chips_uid - citibank_reference_number - citibank_worldlink_clearing_system_reference_number - column_fx_quote_id - column_reversal_pair_transfer_id - column_transfer_id - cross_river_card_network - cross_river_card_trace_number - cross_river_core_transaction_id - cross_river_fed_batch_id - cross_river_payment_id - cross_river_retrieval_reference_id - cross_river_service_message - cross_river_transaction_id - currencycloud_conversion_id - currencycloud_payment_id - eft_trace_number - end_to_end_identification - evolve_core_batch - evolve_core_file_key - evolve_core_seq - evolve_transaction_id - fake_vendor_payment_id - fedwire_imad - fedwire_omad - first_republic_internal_id - goldman_sachs_collection_request_id - goldman_sachs_end_to_end_id - goldman_sachs_payment_request_id - goldman_sachs_request_id - goldman_sachs_unique_payment_id - instruction_identification - jpmc_ccn - jpmc_clearing_system_reference - jpmc_customer_reference_id - jpmc_end_to_end_id - jpmc_firm_root_id - jpmc_fx_trn_id - jpmc_p3_id - jpmc_payment_batch_id - jpmc_payment_information_id - jpmc_payment_returned_datetime - jpmc_transaction_reference_number - lob_check_id - other - partial_swift_mir - paxos_crypto_withdrawal_id - paxos_fiat_withdrawal_id - paxos_group_id - paxos_orchestration_id - paxos_transfer_id - pnc_clearing_reference - pnc_instruction_id - pnc_multipayment_id - pnc_payment_trace_id - pnc_request_for_payment_id - pnc_transaction_reference_number - rbc_wire_reference_id - return_identification - rtp_instruction_id - silvergate_payment_id - svb_end_to_end_id - svb_payment_id - swift_mir - swift_uetr - transaction_identification - turnkey_activity_id - turnkey_send_transaction_status_id - uetr - umb_product_partner_account_number - usbank_payment_application_reference_id - usbank_payment_id - usbank_pending_rtp_payment_id - usbank_posted_rtp_payment_id - wells_fargo_end_to_end_id - wells_fargo_payment_id - wells_fargo_trace_number - wells_fargo_uetr - western_alliance_payment_id - western_alliance_transaction_id - western_alliance_wire_confirmation_number description: The type of reference number. referenceable_id: type: string description: The id of the referenceable to search for. Must be accompanied by the referenceable_type or will return an error. referenceable_type: type: string enum: - payment_order - reversal - return - incoming_payment_detail - transaction description: One of the referenceable types. This must be accompanied by the id of the referenceable or will return an error. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - referenceable_id - referenceable_type - reference_number - reference_number_type minProperties: 9 ping_response: type: object properties: ping: type: string example: pong additionalProperties: false required: - ping minProperties: 1 reconciliation_rule_variable: type: object properties: amount_lower_bound: type: integer description: The lowest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_upper_bound: type: integer description: The highest amount this expected payment may be equal to. Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. counterparty_id: type: string format: uuid nullable: true description: The ID of the counterparty you expect for this payment currency: "$ref": "#/components/schemas/currency" description: Must conform to ISO 4217. Defaults to the currency of the internal account custom_identifiers: type: object nullable: true additionalProperties: type: string description: A hash of custom identifiers for this payment date_lower_bound: type: string format: date nullable: true description: The earliest date the payment may come in. Format is yyyy-mm-dd date_upper_bound: type: string format: date nullable: true description: The latest date the payment may come in. Format is yyyy-mm-dd direction: type: string enum: - credit - debit description: One of credit or debit. When you are receiving money, use credit. When you are being charged, use debit. internal_account_id: type: string format: uuid description: The ID of the Internal Account for the expected payment type: type: string nullable: true enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: One of ach, au_becs, bacs, book, check, eft, rtp, sepa, wire additionalProperties: false required: - amount_upper_bound - amount_lower_bound - direction - internal_account_id minProperties: 10 requested_action: type: object properties: category: type: string enum: - onboarding_articles_of_incorporation_failure - onboarding_business_registry_verification_failure - onboarding_database_failure - onboarding_proof_of_address_failure - onboarding_ssn_check_failure - onboarding_tin_check_failure description: The category of the requested action. created_at: type: string format: date-time field: type: string nullable: true enum: - articles_of_incorporation - ein_letter - legal_entity_details - proof_of_address description: The field that needs to be corrected or provided, if any. id: type: string format: uuid instructions: type: string nullable: true description: Instructions on how to resolve the requested action. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string reasons: type: array items: type: string description: The reasons the action was requested. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - category - field - instructions - reasons minProperties: 9 return: type: object properties: additional_information: type: string nullable: true description: Some returns may include additional information from the bank. In these cases, this string will be present. amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. code: type: string nullable: true enum: - '901' - '902' - '903' - '904' - '905' - '907' - '908' - '909' - '910' - '911' - '912' - '914' - C01 - C02 - C03 - C05 - C06 - C07 - C08 - C09 - C13 - C14 - R01 - R02 - R03 - R04 - R05 - R06 - R07 - R08 - R09 - R10 - R11 - R12 - R13 - R14 - R15 - R16 - R17 - R18 - R19 - R20 - R21 - R22 - R23 - R24 - R25 - R26 - R27 - R28 - R29 - R30 - R31 - R32 - R33 - R34 - R35 - R36 - R37 - R38 - R39 - R40 - R41 - R42 - R43 - R44 - R45 - R46 - R47 - R50 - R51 - R52 - R53 - R61 - R62 - R67 - R68 - R69 - R70 - R71 - R72 - R73 - R74 - R75 - R76 - R77 - R80 - R81 - R82 - R83 - R84 - R85 - currencycloud description: The return code. For ACH returns, this is the required ACH return code. corrections: type: object nullable: true properties: account_number: type: string nullable: true description: The updated account number that should replace the one originally used on the outgoing payment. company_id: type: string nullable: true description: The updated company ID that should replace the one originally used on the outgoing payment. company_name: type: string nullable: true description: The updated company name that should replace the one originally used on the outgoing payment. individual_identification_number: type: string nullable: true description: The updated individual identification number that should replace the one originally used on the outgoing payment. routing_number: type: string nullable: true description: The updated routing number that should replace the one originally used on the outgoing payment. transaction_code: type: string nullable: true description: The updated account type code that should replace the one originally used on the outgoing payment. description: Only relevant for ACH NOC returns. This is an object containing all of the new and corrected information provided by the bank that was previously incorrect on the original outgoing payment. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: Currency that this transaction is denominated in. current_return: type: object nullable: true allOf: - "$ref": "#/components/schemas/return" description: If the return's status is `returned`, this will include the return object's data that is returning this return. data: type: object nullable: true description: The raw data from the return file that we get from the bank. date_of_death: type: string format: date nullable: true description: If the return code is `R14` or `R15` this is the date the deceased counterparty passed away. discarded_at: type: string format: date-time nullable: true failure_reason: type: string nullable: true description: If an originating return failed to be processed by the bank, a description of the failure reason will be available. id: type: string format: uuid internal_account_id: type: string format: uuid nullable: true description: The ID of the relevant Internal Account. ledger_transaction_id: type: string format: uuid nullable: true description: The ID of the ledger transaction linked to the return. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string reason: type: string nullable: true description: Often the bank will provide an explanation for the return, which is a short human readable string. reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. reference_numbers: type: array items: "$ref": "#/components/schemas/payment_reference" description: An array of Payment Reference objects. returnable_id: type: string format: uuid nullable: true description: The ID of the object being returned or `null`. returnable_type: type: string nullable: true enum: - incoming_payment_detail - payment_order - return - reversal description: The type of object being returned or `null`. role: type: string enum: - originating - receiving description: The role of the return, can be `originating` or `receiving`. status: type: string enum: - cancelled - completed - failed - pending - processing - returned - sent description: The current status of the return. transaction_id: type: string format: uuid nullable: true description: The ID of the relevant Transaction or `null`. transaction_line_item_id: type: string format: uuid nullable: true description: The ID of the relevant Transaction Line Item or `null`. type: type: string enum: - ach - ach_noc - au_becs - bacs - book - check - cross_border - eft - gb_fps - manual - neft - nz_becs - rtp - sepa - stablecoin - wire - zengin description: 'The type of return. Can be one of: `ach`, `ach_noc`, `au_becs`, `bacs`, `eft`, `manual`, `paper_item`, `wire`.' updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - returnable_id - returnable_type - code - reason - date_of_death - corrections - reconciliation_status - status - transaction_line_item_id - transaction_id - internal_account_id - type - amount - currency - failure_reason - role - current_return - reference_numbers - ledger_transaction_id minProperties: 25 return_create_request: type: object properties: additional_information: type: string nullable: true description: Some returns may include additional information from the bank. In these cases, this string will be present. code: type: string nullable: true enum: - '901' - '902' - '903' - '904' - '905' - '907' - '908' - '909' - '910' - '911' - '912' - '914' - C01 - C02 - C03 - C05 - C06 - C07 - C08 - C09 - C13 - C14 - R01 - R02 - R03 - R04 - R05 - R06 - R07 - R08 - R09 - R10 - R11 - R12 - R13 - R14 - R15 - R16 - R17 - R18 - R19 - R20 - R21 - R22 - R23 - R24 - R25 - R26 - R27 - R28 - R29 - R30 - R31 - R32 - R33 - R34 - R35 - R36 - R37 - R38 - R39 - R40 - R41 - R42 - R43 - R44 - R45 - R46 - R47 - R50 - R51 - R52 - R53 - R61 - R62 - R67 - R68 - R69 - R70 - R71 - R72 - R73 - R74 - R75 - R76 - R77 - R80 - R81 - R82 - R83 - R84 - R85 - currencycloud description: The return code. For ACH returns, this is the required ACH return code. corrections: type: object nullable: true properties: account_number: type: string nullable: true description: The updated account number that should replace the one originally used on the outgoing payment. company_id: type: string nullable: true description: The updated company ID that should replace the one originally used on the outgoing payment. company_name: type: string nullable: true description: The updated company name that should replace the one originally used on the outgoing payment. individual_identification_number: type: string nullable: true description: The updated individual identification number that should replace the one originally used on the outgoing payment. routing_number: type: string nullable: true description: The updated routing number that should replace the one originally used on the outgoing payment. transaction_code: type: string nullable: true description: The updated account type code that should replace the one originally used on the outgoing payment. description: Only relevant for ACH NOC returns. This is an object containing all of the new and corrected information provided by the bank that was previously incorrect on the original outgoing payment. data: type: object nullable: true description: The raw data from the return file that we get from the bank. date_of_death: type: string format: date nullable: true description: If the return code is `R14` or `R15` this is the date the deceased counterparty passed away. ledger_transaction: "$ref": "#/components/schemas/ledger_transaction_create_request" description: Specifies a ledger transaction object that will be created with the return. If the ledger transaction cannot be created, then the return creation will fail. The resulting ledger transaction will mirror the status of the return. reason: type: string nullable: true description: An optional description of the reason for the return. This is for internal usage and will not be transmitted to the bank.” reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. returnable_id: type: string format: uuid nullable: true description: The ID of the object being returned or `null`. returnable_type: type: string enum: - incoming_payment_detail description: The type of object being returned. Currently, this may only be incoming_payment_detail. required: - returnable_id - returnable_type reversal: type: object properties: created_at: type: string format: date-time id: type: string format: uuid internal_account_id: type: string format: uuid nullable: true description: The ID of the relevant Internal Account. ledger_transaction_id: type: string format: uuid nullable: true description: The ID of the ledger transaction linked to the reversal. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string payment_order_id: type: string format: uuid nullable: true description: The ID of the relevant Payment Order. reason: type: string enum: - duplicate - incorrect_amount - incorrect_receiving_account - date_earlier_than_intended - date_later_than_intended description: The reason for the reversal. reconciliation_status: type: string enum: - unreconciled - tentatively_reconciled - reconciled description: One of `unreconciled`, `tentatively_reconciled` or `reconciled`. status: type: string enum: - cancelled - completed - failed - pending - processing - returned - sent description: The current status of the reversal. transaction_ids: type: array items: type: string format: uuid nullable: true description: The ID of the relevant Transaction or `null`. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - status - payment_order_id - transaction_ids - ledger_transaction_id - metadata - reason - internal_account_id - reconciliation_status minProperties: 13 reversal_create_request: type: object properties: ledger_transaction: "$ref": "#/components/schemas/ledger_transaction_create_request" description: Specifies a ledger transaction object that will be created with the reversal. If the ledger transaction cannot be created, then the reversal creation will fail. The resulting ledger transaction will mirror the status of the reversal. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury reason: type: string enum: - duplicate - incorrect_amount - incorrect_receiving_account - date_earlier_than_intended - date_later_than_intended description: The reason for the reversal. Must be one of `duplicate`, `incorrect_amount`, `incorrect_receiving_account`, `date_earlier_than_intended`, `date_later_than_intended`. required: - reason routing_detail: type: object properties: bank_address: "$ref": "#/components/schemas/address" bank_name: type: string description: The name of the bank. created_at: type: string format: date-time discarded_at: type: string format: date-time nullable: true id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string payment_type: type: string nullable: true enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: If the routing detail is to be used for a specific payment type this field will be populated, otherwise null. routing_number: type: string description: The routing number of the bank. routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - mx_bank_identifier - my_branch_code - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code description: The type of routing number. See https://docs.moderntreasury.com/platform/reference/routing-detail-object for more details. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - routing_number - routing_number_type - payment_type - bank_name - bank_address minProperties: 11 routing_detail_create_request: type: object properties: payment_type: type: string nullable: true enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin description: If the routing detail is to be used for a specific payment type this field will be populated, otherwise null. routing_number: type: string description: The routing number of the bank. routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - il_bank_code - in_ifsc - jp_zengin_code - mx_bank_identifier - my_branch_code - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - vasp - za_national_clearing_code description: The type of routing number. See https://docs.moderntreasury.com/platform/reference/routing-detail-object for more details. required: - routing_number - routing_number_type routing_number_lookup_request: type: object properties: bank_address: "$ref": "#/components/schemas/address_request" description: The address of the bank. bank_name: type: string description: The name of the bank. routing_number: type: string description: The routing number of the bank. routing_number_type: type: string enum: - aba - au_bsb - ca_cpa - gb_sort_code - in_ifsc - nz_national_clearing_code - se_bankgiro_clearing_code - swift - vasp - za_national_clearing_code description: The type of routing number. See https://docs.moderntreasury.com/platform/reference/routing-detail-object for more details. In sandbox mode we currently only support `aba` and `swift` with routing numbers '123456789' and 'GRINUST0XXX' respectively. sanctions: type: object additionalProperties: true description: An object containing key-value pairs, each with a sanctions list as the key and a boolean value representing whether the bank is on that particular sanctions list. Currently, this includes eu_con, uk_hmt, us_ofac, and un sanctions lists. supported_payment_types: type: array items: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin maxItems: 25 description: An array of payment types that are supported for this routing number. This can include `ach`, `wire`, `rtp`, `sepa`, `bacs`, `au_becs`, and 'fednow' currently. example: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin additionalProperties: false minProperties: 5 standalone_identification_create_request: type: object properties: documents: type: array items: type: object properties: document_type: type: string enum: - articles_of_incorporation - certificate_of_good_standing - ein_letter - generic - identification_back - identification_front - proof_of_address description: A category given to the document, can be `null`. file_data: type: string description: Base64-encoded file content for the document. filename: type: string description: The original filename of the document. required: - document_type - file_data description: A list of documents to attach to the identification. expiration_date: type: string format: date nullable: true description: The date when the Identification is no longer considered valid by the issuing authority. id_number: type: string description: The ID number of identification document. id_type: type: string enum: - ad_nrt - ae_eid - ae_trn - ag_tin - ai_tin - al_nid - al_nipt - am_tin - ao_nif - ar_cuil - ar_cuit - at_atin - at_vat - au_abn - au_tfn - aw_tin - az_pin - bb_tin - bd_tin - be_ent - be_nrn - bf_ifu - bg_egn - bh_cpr - bh_vat - bj_ifu - bo_nit - br_cnpj - br_cpf - bs_tin - bt_bin - bw_tin - bz_tin - ca_bn - ca_sin - ch_ahv - ch_uid - ci_ncc - cl_run - cl_rut - cm_niu - co_cedulas - co_nit - cr_cpf - cw_crib - cy_tin - cz_ico - cz_rc - de_stid - de_stnr - de_vat - dk_cpr - dk_cvr - dm_tin - do_cedula - do_rnc - drivers_license - ec_ruc - ee_ik - ee_rk - es_nie - es_nif - fi_hetu - fi_ytj - fj_tin - fo_ptal - fr_nif - fr_siren - fr_vat - gb_nino - gb_utr - gb_vat - gd_tin - ge_ic - ge_pn - ge_tin - generic_international - gg_sin - gh_pin - gh_tin - gi_trn - gl_cpr - gl_ger - gm_tin - gr_vat - gt_nit - hk_brn - hk_hkid - hn_id - hn_rtn - hr_oib - hu_adj - hu_anum - id_nik - id_npwp - ie_pps - ie_trn - il_cn - il_pin - im_trn - in_lei - is_knt - it_cf - it_piva - je_ssn - je_tin - jm_trn - jo_tin - jp_hb - jp_mn - ke_pin - kg_pin - kn_tin - kr_brn - kr_crn - kr_rrn - kw_cid - kz_bin - kz_iin - la_tin - lc_tin - li_peid - lk_tin - ls_tin - lt_ak - lt_jak - lu_mtc - lu_vat - lv_pk - lv_rn - md_idnp - me_jmbg - me_pib - mg_nif - mh_ssn - mo_bir - mo_tin_b - mo_tin_i - mr_nif - mt_tin - mt_vat - mu_tan - mw_tpin - mx_curp - mx_ine - mx_rfc - my_npc - my_nric - my_tin_b - mz_nuit - na_tin - national_id - nl_bsn - nl_btw - nl_rsin - no_fdn - no_mva - no_orgnr - nr_tin - nz_ird - om_cid - pa_cedula - pa_ruc - passport - pe_ruc - pg_tin - ph_tin - pl_nip - pl_pesel - pt_nif - py_ruc - qa_qid - qa_tin - ro_cnp - ro_cui - rw_tin - sa_tin - sa_vat - se_orgnr - se_pnmr - sg_fin - sg_nric - sg_uen - si_dav - si_tin - sk_ico - sk_rc - sl_tin - sm_ssi - sz_tin - tg_nif - th_jid - th_pin - tj_inn - to_tin - tr_tckn - tt_bir - tw_nric - tw_ubn - ug_tin - us_ein - us_itin - us_ssn - uy_rut - uz_inn - uz_pin - vn_tin - za_trn - za_vat - zm_tpin description: The type of ID number. issuing_country: type: string nullable: true description: The ISO 3166-1 alpha-2 country code of the country that issued the identification issuing_region: type: string nullable: true description: The region in which the identifcation was issued. legal_entity_id: type: string description: The ID of the Legal Entity the identification belongs to. required: - legal_entity_id - id_number - id_type third_party_verification: type: object properties: comment: type: string nullable: true description: An optional comment about the verification. outcome: type: string enum: - passed - failed description: The outcome of the verification. One of `passed` or `failed`. vendor: type: string enum: - persona - middesk - alloy - idology - socure - sumsub - veriff - smarty description: The vendor that performed the verification, e.g. `persona`. vendor_verification_id: type: string description: The identification of the third party verification in `vendor`'s system. verification_category: type: string enum: - legal_name - date_of_birth - address - government_id_number - tax_id - adverse_media description: The category of verification performed. verification_method: type: string description: The method used to perform the verification. verification_time: type: string format: date-time description: The timestamp when the verification was performed. additionalProperties: false required: - vendor_verification_id - vendor - verification_category - verification_method - outcome - verification_time transaction: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_string: type: string description: The amount of the transaction as a string, preserving full precision for values that may exceed safe integer limits in some languages. as_of_date: type: string format: date nullable: true description: The date on which the transaction occurred. as_of_time: type: string format: time nullable: true description: The time on which the transaction occurred. Depending on the granularity of the timestamp information received from the bank, it may be `null`. as_of_timezone: type: string nullable: true description: The timezone in which the `as_of_time` is represented. Can be `null` if the bank does not provide timezone info. created_at: type: string format: date-time currency: "$ref": "#/components/schemas/currency" description: Currency that this transaction is denominated in. custom_identifiers: type: object additionalProperties: type: string description: An object containing key-value pairs, each with a custom identifier as the key and a string value. example: foo: bar key: value modern: treasury details: type: object additionalProperties: type: string description: 'This field contains additional information that the bank provided about the transaction. This is structured data. Some of the data in here might overlap with what is in the `vendor_description`. For example, the OBI could be a part of the vendor description, and it would also be included in here. The attributes that are passed through the details field will vary based on your banking partner. Currently, the following keys may be in the details object: `originator_name`, `originator_to_beneficiary_information`.' direction: type: string description: Either `credit` or `debit`. discarded_at: type: string format: date-time nullable: true foreign_exchange_rate: type: object nullable: true allOf: - "$ref": "#/components/schemas/foreign_exchange_rate" description: Associated serialized foreign exchange rate information. id: type: string format: uuid internal_account_id: type: string format: uuid description: The ID of the relevant Internal Account. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury object: type: string posted: type: boolean description: This field will be `true` if the transaction has posted to the account. reconciled: type: boolean description: This field will be `true` if a transaction is reconciled by the Modern Treasury system. This means that it has transaction line items that sum up to the transaction's amount. type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin - other description: The type of the transaction. Examples could be `card, `ach`, `wire`, `check`, `rtp`, or `book`. updated_at: type: string format: date-time vendor_code: type: string nullable: true description: When applicable, the bank-given code that determines the transaction's category. For most banks this is the BAI2/BTRS transaction code. vendor_code_type: type: string nullable: true enum: - bai2 - banking_circle - bankprov - bnk_dev - cleartouch - coinbase_prime - column - cross_river - currencycloud - dwolla - evolve - fake_vendor - goldman_sachs - iso20022 - jpmc - modern_treasury - mx - one_money - paxos - paypal - pnc - silvergate - swift - turnkey - us_bank - user - western_alliance description: The type of `vendor_code` being reported. Can be one of `bai2`, `bankprov`, `bnk_dev`, `cleartouch`, `currencycloud`, `cross_river`, `dwolla`, `evolve`, `goldman_sachs`, `iso20022`, `jpmc`, `mx`, `silvergate`, `swift`, `us_bank`, or others. vendor_customer_id: type: string nullable: true description: An identifier given to this transaction by the bank, often `null`. vendor_description: type: string nullable: true description: The transaction detail text that often appears in on your bank statement and in your banking portal. vendor_id: type: string nullable: true description: An identifier given to this transaction by the bank. additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - amount - amount_string - currency - direction - vendor_code - vendor_code_type - vendor_id - as_of_date - as_of_time - as_of_timezone - internal_account_id - metadata - posted - vendor_customer_id - reconciled - type - foreign_exchange_rate - custom_identifiers minProperties: 24 transaction_create_request: type: object properties: amount: type: integer description: Value in specified currency's smallest unit. e.g. $10 would be represented as 1000. amount_string: type: string description: The transaction amount as a string, preserving full precision for values that may exceed safe integer limits in some languages. as_of_date: type: string format: date nullable: true description: The date on which the transaction occurred. direction: type: string description: Either `credit` or `debit`. internal_account_id: type: string format: uuid description: The ID of the relevant Internal Account. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury posted: type: boolean description: This field will be `true` if the transaction has posted to the account. type: type: string nullable: true enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - rtp - se_bankgirot - sepa - sg_giro - sic - stablecoin - wire - zengin - other description: The type of the transaction. Examples could be `card, `ach`, `wire`, `check`, `rtp`, or `book`. vendor_code: type: string nullable: true description: When applicable, the bank-given code that determines the transaction's category. For most banks this is the BAI2/BTRS transaction code. vendor_code_type: type: string nullable: true description: The type of `vendor_code` being reported. Can be one of `bai2`, `bankprov`, `bnk_dev`, `cleartouch`, `currencycloud`, `cross_river`, `dwolla`, `evolve`, `goldman_sachs`, `iso20022`, `jpmc`, `mx`, `silvergate`, `swift`, `us_bank`, or others. vendor_customer_id: type: string nullable: true description: An identifier given to this transaction by the bank, often `null`. vendor_description: type: string nullable: true description: The transaction detail text that often appears in on your bank statement and in your banking portal. required: - direction - vendor_code - vendor_code_type - as_of_date - internal_account_id description: At least one of "amount" or "amount_string" is required. transaction_line_item: type: object properties: amount: type: integer description: If a matching object exists in Modern Treasury, `amount` will be populated. Value in specified currency's smallest unit (taken from parent Transaction). counterparty_id: type: string nullable: true description: The ID for the counterparty for this transaction line item. created_at: type: string format: date-time description: type: string description: If no matching object is found, `description` will be a free-form text field describing the line item. This field may contain personally identifiable information (PII) and is not included in API responses by default. Learn more about changing your settings at https://docs.moderntreasury.com/reference/personally-identifiable-information. discarded_at: type: string format: date-time nullable: true expected_payment_id: type: string nullable: true description: The ID of the reconciled Expected Payment, otherwise `null`. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment, or false if it exists in the test environment. object: type: string reconcilable: type: boolean description: Describes whether this line item should be counted towards the corresponding transaction’s reconciliation. reconciliation_group_id: type: string nullable: true description: The ID of the reconciliation group this line item belongs to, otherwise `null`. transactable_id: type: string nullable: true description: If a matching object exists in Modern Treasury, the ID will be populated here, otherwise `null`. transactable_type: type: string nullable: true enum: - incoming_payment_detail - payment_order - payment_order_attempt - return - reversal description: If a matching object exists in Modern Treasury, the type will be populated here, otherwise `null`. transaction_id: type: string description: The ID of the parent transaction. type: type: string enum: - originating - receiving description: Indicates whether the line item is `originating` or `receiving` (see https://www.moderntreasury.com/journal/beginners-guide-to-ach for more). updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - type - transactable_type - transactable_id - amount - description - counterparty_id - expected_payment_id - transaction_id - reconciliation_group_id - reconcilable minProperties: 16 transaction_line_item_create_request: type: object properties: amount: type: integer description: If a matching object exists in Modern Treasury, `amount` will be populated. Value in specified currency's smallest unit (taken from parent Transaction). expected_payment_id: type: string format: uuid description: The ID of the reconciled Expected Payment, otherwise `null`. transaction_id: type: string format: uuid description: The ID of the parent transaction. required: - amount - transaction_id - expected_payment_id transaction_update_request: type: object properties: metadata: type: object additionalProperties: type: string description: Additional data in the form of key-value pairs. Pairs can be removed by passing an empty string or `null` as the value. virtual_account: type: object properties: account_details: type: array items: "$ref": "#/components/schemas/account_detail" description: An array of account detail objects. counterparty_id: type: string format: uuid nullable: true description: The ID of a counterparty that the virtual account belongs to. Optional. created_at: type: string format: date-time credit_ledger_account_id: type: string format: uuid nullable: true description: The ID of a credit normal ledger account. When money enters the virtual account, this ledger account will be credited. Must be accompanied by a debit_ledger_account_id if present. debit_ledger_account_id: type: string format: uuid nullable: true description: The ID of a debit normal ledger account. When money enters the virtual account, this ledger account will be debited. Must be accompanied by a credit_ledger_account_id if present. description: type: string nullable: true description: An optional free-form description for internal use. discarded_at: type: string format: date-time nullable: true external_id: type: string nullable: true description: A user-defined identifier for the virtual account. id: type: string format: uuid internal_account_id: type: string format: uuid description: The ID of the internal account that the virtual account is in. ledger_account_id: type: string format: uuid nullable: true description: If the virtual account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. example: foo: bar key: value modern: treasury name: type: string description: The name of the virtual account. object: type: string party_address: type: object nullable: true allOf: - "$ref": "#/components/schemas/address" description: The address of the owner of the virtual account, or null. routing_details: type: array items: "$ref": "#/components/schemas/routing_detail" description: An array of routing detail objects. These will be the routing details of the internal account. updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - discarded_at - name - description - external_id - party_address - counterparty_id - internal_account_id - account_details - routing_details - debit_ledger_account_id - credit_ledger_account_id - ledger_account_id - metadata minProperties: 18 virtual_account_create_request: type: object properties: account_details: type: array items: "$ref": "#/components/schemas/account_detail_create_request" description: An array of account detail objects. counterparty_id: type: string format: uuid description: The ID of the counterparty that the virtual account belongs to. credit_ledger_account_id: type: string format: uuid description: The ID of a credit normal ledger account. When money leaves the virtual account, this ledger account will be credited. Must be accompanied by a debit_ledger_account_id if present. debit_ledger_account_id: type: string format: uuid description: The ID of a debit normal ledger account. When money enters the virtual account, this ledger account will be debited. Must be accompanied by a credit_ledger_account_id if present. description: type: string description: An optional description for internal use. external_id: type: string nullable: true description: A user-defined identifier for the virtual account. internal_account_id: type: string format: uuid description: The ID of the internal account that this virtual account is associated with. ledger_account: "$ref": "#/components/schemas/ledger_account_create_request" description: Specifies a ledger account object that will be created with the virtual account. The resulting ledger account is linked to the virtual account for auto-ledgering IPDs. ledger_account_id: type: string format: uuid description: The ledger account that you'd like to link to the virtual account. metadata: type: object additionalProperties: type: string description: Additional data represented as key-value pairs. Both the key and value must be strings. name: type: string description: The name of the virtual account. party_address: "$ref": "#/components/schemas/address_request" description: The address of the owner of the virtual account. When absent, the internal account's party address is used. routing_details: type: array items: "$ref": "#/components/schemas/routing_detail_create_request" description: An array of routing detail objects. virtual_account_setting_id: type: string format: uuid description: The ID of the virtual account setting used to allocate this virtual account. required: - name - internal_account_id virtual_account_setting: type: object properties: created_at: type: string format: date-time external_id: type: string nullable: true description: A user-defined identifier for the virtual account setting. id: type: string format: uuid live_mode: type: boolean description: This field will be true if this object exists in the live environment or false if it exists in the test environment. object: type: string updated_at: type: string format: date-time additionalProperties: false required: - id - object - live_mode - created_at - updated_at - external_id minProperties: 6 virtual_account_setting_create_request: type: object properties: allocation_identifier: type: string nullable: true description: The prefix, suffix, or bank-assigned identifier for the virtual account numbers. allocation_length: type: integer nullable: true description: The total length of generated virtual account numbers. allocation_range_end: type: string nullable: true description: The inclusive end of the virtual account number range. allocation_range_start: type: string nullable: true description: The inclusive start of the virtual account number range. allocation_type: type: string description: The method used to allocate virtual account numbers. external_id: type: string nullable: true description: A user-defined identifier for the virtual account setting. generated_allocation_identifier_length: type: integer nullable: true description: The length of a generated virtual account setting prefix. internal_account_id: type: string format: uuid description: The ID of the internal account for the virtual account setting. required: - internal_account_id - allocation_type virtual_account_update_request: type: object properties: counterparty_id: type: string format: uuid ledger_account_id: type: string format: uuid description: The ledger account that you'd like to link to the virtual account. metadata: type: object additionalProperties: type: string name: type: string nullable: true party_address: type: object nullable: true allOf: - "$ref": "#/components/schemas/address_request" description: The address of the owner of the virtual account. Omit to leave it unchanged; pass `null` to clear it, after which the internal account's party address is used. securitySchemes: basic_auth: scheme: basic type: http