{ "openapi": "3.0.0", "info": { "title": "Moov API", "contact": { "name": "Moov Developer Support", "email": "help@moov.io", "url": "https://moov.io" }, "license": { "name": "Unlicensed", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "description": "Moov is a platform that enables developers to integrate all aspects of money movement with ease and speed.\nThe Moov API makes it simple for platforms to send, receive, and store money. Our API is based upon REST\nprinciples, returns JSON responses, and uses standard HTTP response codes. To learn more about how Moov\nworks at a high level, read our [concepts](https://docs.moov.io/guides/get-started/glossary/) guide.", "version": "v2025.07.00" }, "externalDocs": { "url": "https://docs.moov.io/", "description": "Moov Guides and API Documentation" }, "tags": [ { "name": "Accounts" }, { "name": "Adjustments" }, { "name": "Apple pay" }, { "name": "Authentication" }, { "name": "Bank accounts" }, { "name": "Fee plans" }, { "name": "Statements" }, { "name": "Branding" }, { "name": "Capabilities" }, { "name": "Cards" }, { "name": "Disputes" }, { "name": "End to End Encryption" }, { "name": "Enriched address" }, { "name": "Enriched profile" }, { "name": "Industries" }, { "name": "Avatars" }, { "name": "Institutions" }, { "name": "Files" }, { "name": "Images" }, { "name": "Card issuing" }, { "name": "Issuing transactions" }, { "name": "Onboarding" }, { "name": "Payment links" }, { "name": "Payment methods" }, { "name": "Ping" }, { "name": "Products" }, { "name": "Receipts" }, { "name": "Representatives" }, { "name": "Scheduling" }, { "name": "Support" }, { "name": "Terminal Applications" }, { "name": "Account Terminal Applications" }, { "name": "Transfers" }, { "name": "Underwriting" }, { "name": "Sweeps" }, { "name": "Wallet transactions" }, { "name": "Wallets" }, { "name": "Webhooks" } ], "paths": { "/accounts": { "post": { "operationId": "createAccount", "description": "You can create **business** or **individual** accounts for your users (i.e., customers, merchants) by passing the required\ninformation to Moov. Requirements differ per account type and requested [capabilities](https://docs.moov.io/guides/accounts/capabilities/requirements/).\n\nIf you're requesting the `wallet`, `send-funds`, `collect-funds`, or `card-issuing` capabilities, you'll need to:\n + Send Moov the user [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) acceptance.\n This can be done upon account creation, or by [patching](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account using the `termsOfService` field.\nIf you're creating a business account with the business type `llc`, `partnership`, or `privateCorporation`, you'll need to:\n + Provide [business representatives](https://docs.moov.io/api/moov-accounts/representatives/) after creating the account.\n + [Patch](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account to indicate that business representative ownership information is complete.\n\nVisit our documentation to read more about [creating accounts](https://docs.moov.io/guides/accounts/create-accounts/) and [verification requirements](https://docs.moov.io/guides/accounts/requirements/identity-verification/).\nNote that the `mode` field (for production or sandbox) is only required when creating a _facilitator_ account. All non-facilitator account requests will ignore the mode field and be set to the calling facilitator's mode.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \nto specify the `/accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAccountError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAccount" } } } }, "x-speakeasy-name-override": "create" }, "get": { "operationId": "listAccounts", "description": "List or search accounts to which the caller is connected.\n\nAll supported query parameters are optional. If none are provided the response will include all connected accounts.\nPagination is supported via the `skip` and `count` query parameters. Searching by name and email will overlap and \nreturn results based on relevance. Accounts with AccountType `guest` will not be included in the response.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \nto specify the `/accounts.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/AccountsQuery.name" }, { "$ref": "#/components/parameters/AccountsQuery.email" }, { "$ref": "#/components/parameters/AccountsQuery.type" }, { "$ref": "#/components/parameters/AccountsQuery.foreignID" }, { "$ref": "#/components/parameters/AccountsQuery.includeDisconnected" }, { "$ref": "#/components/parameters/AccountsQuery.capability" }, { "$ref": "#/components/parameters/AccountsQuery.capabilityStatus" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}": { "get": { "operationId": "getAccount", "description": "Retrieves details for the account with the specified ID.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \nto specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "x-speakeasy-name-override": "get" }, "patch": { "operationId": "updateAccount", "description": "When **can** profile data be updated:\n + For unverified accounts, all profile data can be edited.\n + During the verification process, missing or incomplete profile data can be edited.\n + Verified accounts can only add missing profile data.\n\n When **can't** profile data be updated:\n + Verified accounts cannot change any existing profile data.\n\nIf you need to update information in a locked state, please contact Moov support.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need\nto specify the `/accounts/{accountID}/profile.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchAccountError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchAccount" } } } }, "x-speakeasy-name-override": "updateProfile" }, "delete": { "operationId": "disconnectAccount", "description": "This will sever the connection between you and the account specified and it will no longer be listed as \nactive in the list of accounts. This also means you'll only have read-only access to the account going \nforward for reporting purposes.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.disconnect` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "x-speakeasy-name-override": "disconnect" } }, "/accounts/{accountID}/adjustments": { "get": { "operationId": "listAdjustments", "description": "List adjustments associated with a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "walletID", "in": "query", "required": false, "description": "A wallet ID to filter adjustments by.", "schema": { "type": "string" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Adjustment" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Adjustments" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/adjustments/{adjustmentID}": { "get": { "operationId": "getAdjustment", "description": "Retrieve a specific adjustment associated with a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "adjustmentID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Adjustment" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Adjustments" ], "x-speakeasy-name-override": "get" } }, "/accounts/{accountID}/apple-pay/domains": { "post": { "operationId": "registerApplePayMerchantDomains", "description": "Add domains to be registered with Apple Pay.\n\nAny domains that will be used to accept payments must first be [verified](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) \nwith Apple.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/apple-pay.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the Moov account representing the merchant.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplePayMerchantDomains" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "Apple Pay domains are already registered for this account.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "417": { "description": "The requested domains were not verified.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Apple pay" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterApplePayMerchantDomains" } } } }, "x-speakeasy-name-override": "registerDomains", "x-speakeasy-group": "applePay" }, "patch": { "operationId": "updateApplePayMerchantDomains", "description": "Add or remove domains to be registered with Apple Pay.\n\nAny domains that will be used to accept payments must first be [verified](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains)\nwith Apple.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/apple-pay.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the Moov account representing the merchant.", "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "Apple Pay domains are already registered for this account.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "417": { "description": "The requested domains were not verified.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Apple pay" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateApplePayMerchantDomains" } } } }, "x-speakeasy-name-override": "updateDomains", "x-speakeasy-group": "applePay" }, "get": { "operationId": "getApplePayMerchantDomains", "description": "Get domains registered with Apple Pay. \n\nRead our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/apple-pay.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the Moov account representing the merchant.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplePayMerchantDomains" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Apple pay" ], "x-speakeasy-name-override": "getDomains", "x-speakeasy-group": "applePay" } }, "/accounts/{accountID}/apple-pay/sessions": { "post": { "operationId": "createApplePaySession", "description": "Create a session with Apple Pay to facilitate a payment. \n\nRead our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more. \nA successful response from this endpoint should be passed through to Apple Pay unchanged. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/apple-pay.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the Moov account representing the merchant.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplePaySession" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Apple pay" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateApplePaySession" } } } }, "x-speakeasy-name-override": "createSession", "x-speakeasy-group": "applePay" } }, "/accounts/{accountID}/apple-pay/tokens": { "post": { "operationId": "linkApplePayToken", "description": "Connect an Apple Pay token to the specified account. \n\nRead our [Apple Pay tutorial](https://docs.moov.io/guides/sources/cards/apple-pay/#register-your-domains) to learn more. \nThe `token` data is defined by Apple Pay and should be passed through from Apple Pay's response unmodified.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/cards.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the Moov account representing the cardholder.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkedApplePayPaymentMethod" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkApplePayError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Apple pay" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkApplePay" } } } }, "x-speakeasy-name-override": "linkToken", "x-speakeasy-group": "applePay" } }, "/accounts/{accountID}/bank-accounts": { "post": { "operationId": "linkBankAccount", "description": "Link a bank account to an existing Moov account. Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.\n\nIt is strongly recommended that callers include the `X-Wait-For` header, set to `payment-method`, if the newly linked\nbank-account is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment\nMethods](https://docs.moov.io/api/sources/payment-methods/list/)\nendpoint to wait for the new payment methods to be available for use.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "x-wait-for", "in": "header", "required": false, "description": "Optional header to wait for certain events, such as the creation of a payment method, to occur before returning a response.\n\nWhen this header is set to `payment-method`, the response will include any payment methods that were created for the newly\nlinked card in the `paymentMethods` field. Otherwise, the `paymentMethods` field will be omitted from the response.", "schema": { "$ref": "#/components/schemas/BankAccountWaitFor" } }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccount" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkBankAccount" } } } }, "x-speakeasy-name-override": "link", "x-speakeasy-group": "bankAccounts" }, "get": { "operationId": "listBankAccounts", "description": "List all the bank accounts associated with a particular Moov account. \n\nRead our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccount" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "x-speakeasy-name-override": "list", "x-speakeasy-group": "bankAccounts" } }, "/accounts/{accountID}/bank-accounts/{bankAccountID}": { "get": { "operationId": "getBankAccount", "description": "Retrieve bank account details (i.e. routing number or account type) associated with a specific Moov account. \n\nRead our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccount" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "bankAccounts" }, "delete": { "operationId": "disableBankAccount", "description": "Discontinue using a specified bank account linked to a Moov account. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "x-speakeasy-name-override": "disable", "x-speakeasy-group": "bankAccounts" } }, "/accounts/{accountID}/bank-accounts/{bankAccountID}/micro-deposits": { "post": { "operationId": "initiateMicroDeposits", "description": "Micro-deposits help confirm bank account ownership, helping reduce fraud and the risk of unauthorized activity. \nUse this method to initiate the micro-deposit verification, sending two small credit transfers to the bank account \nyou want to confirm.\n\nIf you request micro-deposits before 4:15PM ET, they will appear that same day. If you request micro-deposits any \ntime after 4:15PM ET, they will appear the next banking day. When the two credits are initiated, Moov simultaneously\ninitiates a debit to recoup the micro-deposits. \n\nMicro-deposits initiated for a `sandbox` bank account will always be `$0.00` / `$0.00` and instantly verifiable once initiated.\n\nYou can simulate micro-deposit verification in test mode. See our [test mode](https://docs.moov.io/guides/get-started/test-mode/#micro-deposits)\nguide for more information.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "x-speakeasy-group": "bankAccounts" }, "put": { "operationId": "completeMicroDeposits", "description": "Complete the micro-deposit validation process by passing the amounts of the two transfers within three tries.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompletedMicroDeposits" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MicroDepositValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompleteMicroDeposits" } } } }, "x-speakeasy-group": "bankAccounts" } }, "/accounts/{accountID}/bank-accounts/{bankAccountID}/verify": { "get": { "operationId": "getBankAccountVerification", "description": "Retrieve the current status and details of an instant verification, including whether the verification method was instant (RTP or FedNow) or same-day\nACH. This helps track the verification process in real-time and provides details in case of exceptions.\n\nThe status will indicate the following:\n\n- `new`: Verification initiated, credit pending to the payment network\n- `sent-credit`: Credit sent, available for verification\n- `failed`: Verification failed, description provided, user needs to add a new bank account\n- `expired`: Verification expired after 14 days, initiate another verification\n- `max-attempts-exceeded`: Five incorrect code attempts exhausted, initiate another verification\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountVerification" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "x-speakeasy-name-override": "getVerification", "x-speakeasy-group": "bankAccounts" }, "post": { "operationId": "initiateBankAccountVerification", "description": "Instant micro-deposit verification offers a quick and efficient way to verify bank account ownership. \n\nSend a $0.01 credit with a unique verification code via RTP, FedNow, or same-day ACH, depending on the receiving bank's capabilities. This\nfeature provides a faster alternative to traditional methods, allowing verification in a single session.\n\nIt is recommended to use the `X-Wait-For: rail-response` header to synchronously receive the outcome of the instant credit in the\n response payload.\n\nPossible verification methods:\n - `instant`: Real-time verification credit sent via RTP or FedNow\n - `ach`: Verification credit sent via same-day ACH\n\nPossible statuses:\n - `new`: Verification initiated, credit pending\n - `sent-credit`: Credit sent, available for verification in the external bank account\n - `failed`: Verification failed due to credit rejection/return, details in `exceptionDetails`\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "x-wait-for", "in": "header", "required": false, "description": "Optional header to wait for certain events, such as the rail response, to occur before returning a response.\n\nWhen this header is set to `rail-response`, the endpoint will wait for a sent-credit or failed status from the payment rail.", "schema": { "$ref": "#/components/schemas/BankAccountWaitFor" } }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountVerificationCreated" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "x-speakeasy-name-override": "initiateVerification", "x-speakeasy-group": "bankAccounts" }, "put": { "operationId": "completeBankAccountVerification", "description": "Finalize the instant micro-deposit verification by submitting the verification code displayed in the user's bank account. \n\nUpon successful verification, the bank account status will be updated to `verified` and eligible for ACH debit transactions.\n\nThe following formats are accepted:\n- `MV0000`\n- `mv0000`\n- `0000`\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "bankAccountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountVerification" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Bank accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompleteBankAccountVerification" } } } }, "x-speakeasy-name-override": "completeVerification", "x-speakeasy-group": "bankAccounts" } }, "/accounts/{accountID}/branding": { "post": { "operationId": "createBrand", "description": "Create brand properties for the specified account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/branding.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandProperties" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Branding" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandProperties" } } } }, "x-speakeasy-name-override": "create" }, "put": { "operationId": "upsertBrand", "description": "Create or replace brand properties for the specified account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/branding.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandProperties" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Branding" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandProperties" } } } }, "x-speakeasy-name-override": "upsert" }, "get": { "operationId": "getBrand", "description": "Get brand properties for the specified account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/branding.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrandProperties" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Branding" ], "x-speakeasy-name-override": "get" } }, "/accounts/{accountID}/capabilities": { "get": { "operationId": "listCapabilities", "description": "Retrieve all the capabilities an account has requested.\n\nRead our [capabilities guide](https://docs.moov.io/guides/accounts/capabilities/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/capabilities.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Capability" } }, "example": [ { "capability": "transfers", "accountID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" }, { "capability": "collect-funds", "accountID": "01234567-89ab-cdef-0123-456789abcdef", "status": "in-review", "requirements": { "currentlyDue": [ "business.owners" ] }, "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Capabilities" ], "x-speakeasy-name-override": "list" }, "post": { "operationId": "requestCapabilities", "description": "Request capabilities for a specific account. Read our [capabilities guide](https://docs.moov.io/guides/accounts/capabilities/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/capabilities.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Capability" } }, "example": [ { "capability": "transfers", "accountID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" }, { "capability": "collect-funds", "accountID": "01234567-89ab-cdef-0123-456789abcdef", "status": "in-review", "requirements": { "currentlyDue": [ "business.owners" ] }, "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } ] } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddCapabilitiesError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Capabilities" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddCapabilities" }, "example": { "capabilities": [ "collect-funds" ] } } } }, "x-speakeasy-name-override": "request" } }, "/accounts/{accountID}/capabilities/{capabilityID}": { "get": { "operationId": "getCapability", "description": "Retrieve a specific capability that an account has requested. Read our [capabilities guide](https://docs.moov.io/guides/accounts/capabilities/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/capabilities.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "capabilityID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/CapabilityID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Capability" }, "example": { "capability": "transfers", "accountID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Capabilities" ], "x-speakeasy-name-override": "get" }, "delete": { "operationId": "disableCapability", "description": "Disable a specific capability that an account has requested. Read our [capabilities guide](https://docs.moov.io/guides/accounts/capabilities/) to learn more.\n\n To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/capabilities.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "capabilityID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/CapabilityID" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Capabilities" ], "x-speakeasy-name-override": "disable" } }, "/accounts/{accountID}/cards": { "post": { "operationId": "linkCard", "description": "Link a card to an existing Moov account. \n\nRead our [accept card payments guide](https://docs.moov.io/guides/sources/cards/accept-card-payments/#link-a-card) to learn more.\n\nOnly use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance. \n\nDuring card linking, the provided data will be verified by submitting a $0 authorization (account verification) request. \nIf `merchantAccountID` is provided, the authorization request will contain that account's statement descriptor and address. \nOtherwise, the platform account's profile will be used. If no statement descriptor has been set, the authorization will \nuse the account's name instead.\n\nIt is strongly recommended that callers include the `X-Wait-For` header, set to `payment-method`, if the newly linked \ncard is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment \nMethods](https://docs.moov.io/api/sources/payment-methods/list/)\nendpoint to wait for the new payment methods to be available for use.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/cards.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "x-wait-for", "in": "header", "required": false, "description": "Optional header to wait for certain events, such as the creation of a payment method, to occur before returning a response.\n\nWhen this header is set to `payment-method`, the response will include any payment methods that were created for the newly \nlinked card in the `paymentMethods` field. Otherwise, the `paymentMethods` field will be omitted from the response.", "schema": { "$ref": "#/components/schemas/LinkCardWaitFor" } }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Card" }, "example": { "cardID": "01234567-89ab-cdef-0123-456789abcdef", "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3", "brand": "Visa", "cardType": "credit", "cardCategory": "CLASSIC", "lastFourCardNumber": "1111", "bin": "411111", "expiration": { "month": "01", "year": "21" }, "holderName": "Jules Jackson", "billingAddress": { "addressLine1": "123 Main Street", "addressLine2": "Apt 302", "city": "Boulder", "stateOrProvince": "CO", "postalCode": "80301", "country": "US" }, "cardVerification": { "cvv": "match", "addressLine1": "match", "postalCode": "match", "accountName": { "firstName": "match", "lastName": "match", "middleName": "match", "fullName": "match" } }, "issuer": "GRINGOTTS BANK", "issuerCountry": "US", "issuerURL": "HTTPS://WWW.EXAMPLE.COM/", "issuerPhone": "8185551212", "commercial": false, "regulated": false, "cardOnFile": true, "merchantAccountID": "01234567-89ab-cdef-0123-456789abcdef", "cardAccountUpdater": { "updatedOn": "2024-05-06T12:20:38.184Z", "updateType": "number-update" }, "domesticPushToCard": "standard", "domesticPullFromCard": "supported", "paymentMethods": [ { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "paymentMethodType": "card-payment" }, { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "paymentMethodType": "push-to-card" }, { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "paymentMethodType": "pull-from-card" } ] } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "Attempted to link card that already exists on the account.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DuplicateCardError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkCardError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Cards" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkCard" }, "example": { "cardNumber": "4111111111111111", "cardCvv": "123", "expiration": { "month": "01", "year": "21" }, "holderName": "Jules Jackson", "billingAddress": { "postalCode": "80301" } } } } }, "x-speakeasy-name-override": "link" }, "get": { "operationId": "listCards", "description": "List all the active cards associated with a Moov account. \n\nRead our [accept card payments guide](https://docs.moov.io/guides/sources/cards/accept-card-payments/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Card" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Cards" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/cards/{cardID}": { "get": { "operationId": "getCard", "description": "Fetch a specific card associated with a Moov account. \n\nRead our [accept card payments guide](https://docs.moov.io/guides/sources/cards/accept-card-payments/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "cardID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/CardID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Card" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Cards" ], "x-speakeasy-name-override": "get" }, "patch": { "operationId": "updateCard", "description": "Update a linked card and/or resubmit it for verification.\n\nIf a value is provided for CVV, a new verification ($0 authorization) will be submitted for the card. Updating the expiration\ndate or\naddress will update the information stored on file for the card but will not be verified.\n\nRead our [accept card payments guide](https://docs.moov.io/guides/sources/cards/accept-card-payments/#reverify-a-card) to learn\nmore.\n\nOnly use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/cards.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "cardID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/CardID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Card" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCardError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Cards" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCard" } } } }, "x-speakeasy-name-override": "update" }, "delete": { "operationId": "disableCard", "description": "Disables a card associated with a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/cards.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "cardID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/CardID" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Cards" ], "x-speakeasy-name-override": "disable" } }, "/accounts/{accountID}/connected-accounts": { "get": { "operationId": "listConnectedAccountsForAccount", "description": "List or search accounts to which the caller is connected.\n\nAll supported query parameters are optional. If none are provided the response will include all connected accounts.\nPagination is supported via the `skip` and `count` query parameters. Searching by name and email will overlap and \nreturn results based on relevance. Accounts with AccountType `guest` will not be included in the response.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \nto specify the `/accounts.read` scope.", "parameters": [ { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/AccountsQuery.name" }, { "$ref": "#/components/parameters/AccountsQuery.email" }, { "$ref": "#/components/parameters/AccountsQuery.type" }, { "$ref": "#/components/parameters/AccountsQuery.foreignID" }, { "$ref": "#/components/parameters/AccountsQuery.includeDisconnected" }, { "$ref": "#/components/parameters/AccountsQuery.capability" }, { "$ref": "#/components/parameters/AccountsQuery.capabilityStatus" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Account" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "x-speakeasy-name-override": "listConnected" } }, "/accounts/{accountID}/connections": { "post": { "operationId": "connectAccount", "description": "Shares access scopes from the account specified to the caller, establishing a connection \nbetween the two accounts with the specified permissions.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectAccountRequestValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ShareScopes" } } } }, "x-speakeasy-name-override": "connect" } }, "/accounts/{accountID}/countries": { "get": { "operationId": "getAccountCountries", "description": "Retrieve the specified countries of operation for an account. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountCountries" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "x-speakeasy-name-override": "getCountries" }, "put": { "operationId": "assignAccountCountries", "description": "Assign the countries of operation for an account.\n\nThis endpoint will always overwrite the previously assigned values. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountCountries" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignCountriesError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountCountries" } } } }, "x-speakeasy-name-override": "assignCountries" } }, "/accounts/{accountID}/disputes": { "get": { "operationId": "listDisputes", "description": "Returns the list of disputes. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "$ref": "#/components/parameters/DisputeListFilters.startDateTime" }, { "$ref": "#/components/parameters/DisputeListFilters.endDateTime" }, { "$ref": "#/components/parameters/DisputeListFilters.respondStartDateTime" }, { "$ref": "#/components/parameters/DisputeListFilters.respondEndDateTime" }, { "$ref": "#/components/parameters/DisputeListFilters.status" }, { "$ref": "#/components/parameters/DisputeListFilters.merchantAccountID" }, { "$ref": "#/components/parameters/DisputeListFilters.cardholderAccountID" }, { "$ref": "#/components/parameters/DisputeListFilters.disputeIDs" }, { "$ref": "#/components/parameters/DisputeListFilters.transferIDs" }, { "$ref": "#/components/parameters/DisputeListFilters.orderBy" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Dispute" } }, "example": [ { "disputeID": "6e356108-fdfa-4910-bbe4-1e3c8abf5520", "merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8", "createdOn": "2024-12-23T17:55:00Z", "amount": { "currency": "USD", "value": 257753 }, "networkReasonCode": "10.4", "transfer": { "transferID": "ecac148a-917e-4ee0-b46a-c51408939fff" }, "respondBy": "2024-12-23T18:55:00Z", "status": "response-needed", "phase": "chargeback" } ] } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/disputes/{disputeID}": { "get": { "operationId": "getDispute", "description": "Get a dispute by ID. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Dispute" }, "example": { "disputeID": "6e356108-fdfa-4910-bbe4-1e3c8abf5520", "merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8", "createdOn": "2024-12-23T17:55:00Z", "amount": { "currency": "USD", "value": 257753 }, "networkReasonCode": "10.4", "transfer": { "transferID": "ecac148a-917e-4ee0-b46a-c51408939fff" }, "respondBy": "2024-12-23T18:55:00Z", "status": "response-needed", "phase": "chargeback" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "get" } }, "/accounts/{accountID}/disputes/{disputeID}/accept": { "post": { "operationId": "acceptDispute", "description": "Accepts liability for a dispute. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Dispute" }, "example": { "disputeID": "6e356108-fdfa-4910-bbe4-1e3c8abf5520", "merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8", "createdOn": "2024-12-23T17:55:00Z", "amount": { "currency": "USD", "value": 257753 }, "networkReasonCode": "10.4", "transfer": { "transferID": "ecac148a-917e-4ee0-b46a-c51408939fff" }, "respondBy": "2024-12-23T18:55:00Z", "status": "accepted", "phase": "chargeback" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "accept" } }, "/accounts/{accountID}/disputes/{disputeID}/evidence": { "get": { "operationId": "listDisputeEvidence", "description": "Returns a dispute's public evidence by its ID. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DisputeEvidenceResponse" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "listEvidence" } }, "/accounts/{accountID}/disputes/{disputeID}/evidence-file": { "post": { "operationId": "uploadDisputeEvidenceFile", "description": "Uploads a file as evidence for a dispute. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EvidenceUploadResponse" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileUploadValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/CreateEvidenceFileMultiPart" }, "encoding": { "file": { "contentType": "application/pdf, image/jpeg, image/tiff" }, "evidenceType": { "contentType": "text/plain" } } } } }, "x-speakeasy-name-override": "uploadEvidenceFile" } }, "/accounts/{accountID}/disputes/{disputeID}/evidence-text": { "post": { "operationId": "uploadDisputeEvidenceText", "description": "Uploads text as evidence for a dispute.\n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EvidenceTextResponse" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateEvidenceText" } } } }, "x-speakeasy-name-override": "uploadEvidenceText" } }, "/accounts/{accountID}/disputes/{disputeID}/evidence/submit": { "post": { "operationId": "submitDisputeEvidence", "description": "Submit the evidence associated with a dispute.\n\nEvidence items must be uploaded using the appropriate endpoint(s) prior to calling this endpoint to submit it. **Evidence can only\nbe submitted once per dispute.**\n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Dispute" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "submitEvidence" } }, "/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}": { "get": { "operationId": "getDisputeEvidence", "description": "Get dispute evidence by ID.\n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "evidenceID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisputeEvidenceResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "getEvidence" }, "patch": { "operationId": "updateDisputeEvidence", "description": "Updates dispute evidence by ID.\n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "evidenceID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisputeEvidenceResponse" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateEvidence" } } } }, "x-speakeasy-name-override": "updateEvidence" }, "delete": { "operationId": "deleteDisputeEvidenceFile", "description": "Deletes dispute evidence by ID. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "evidenceID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "deleteEvidence" } }, "/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}/data": { "get": { "operationId": "getDisputeEvidenceData", "description": "Downloads dispute evidence data by ID.\n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "disputeID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "evidenceID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } }, "image/jpeg": { "schema": { "type": "string", "format": "binary" } }, "image/tiff": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Disputes" ], "x-speakeasy-name-override": "getEvidenceData" } }, "/accounts/{accountID}/fee-plan-agreements": { "get": { "operationId": "listFeePlanAgreements", "description": "List all fee plan agreements associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "agreementID", "in": "query", "required": false, "description": "A comma-separated list of agreement IDs to filter the results by.", "schema": { "type": "array", "items": { "type": "string" } }, "explode": false }, { "name": "status", "in": "query", "required": false, "description": "A comma-separated list of statuses to filter the results by.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeePlanAgreementStatus" } }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeePlanAgreement" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ], "x-speakeasy-group": "feePlans", "x-speakeasy-name-override": "list" }, "post": { "operationId": "createFeePlanAgreements", "description": "Creates the subscription of a fee plan to a merchant account. Merchants are required to accept the fee plan terms prior to activation.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeePlanAgreement" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeePlanAgreementError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFeePlanAgreement" } } } }, "x-speakeasy-group": "feePlans", "x-speakeasy-name-override": "createAgreements" } }, "/accounts/{accountID}/fee-plans": { "get": { "operationId": "listFeePlans", "description": "List all fee plans available for use by an account. This is intended to be used by an account when \nselecting a fee plan to apply to a connected account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "planIDs", "in": "query", "required": false, "description": "A comma-separated list of plan IDs to filter the results by.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/uuid" } }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeePlan" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ], "x-speakeasy-group": "feePlans", "x-speakeasy-name-override": "listByAccount" } }, "/accounts/{accountID}/fee-revenue": { "get": { "operationId": "listFeeRevenue", "description": "Used by a partner. Retrieve revenue generated from merchant fees.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "description": "The Partner's AccountID.", "schema": { "type": "string" } }, { "name": "transferID", "in": "query", "required": false, "description": "Optional transfer ID to filter the results by.", "schema": { "type": "string" }, "explode": false }, { "name": "disputeID", "in": "query", "required": false, "description": "Optional dispute ID to filter the results by.", "schema": { "type": "string" }, "explode": false }, { "name": "residualID", "in": "query", "required": false, "description": "Optional residual ID to filter the results by.", "schema": { "type": "string" }, "explode": false }, { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time to inclusively filter all fees created after this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false }, { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time to exclusively filter all fees created before this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IncurredFee" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ] } }, "/accounts/{accountID}/fees": { "get": { "operationId": "retrieveFees", "description": "Retrieve fees assessed to an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "transferID", "in": "query", "required": false, "description": "Optional transfer ID to filter the results by.", "schema": { "type": "string" }, "explode": false }, { "name": "disputeID", "in": "query", "required": false, "description": "Optional dispute ID to filter the results by.", "schema": { "type": "string" }, "explode": false }, { "name": "residualID", "in": "query", "required": false, "description": "Optional residual ID to filter the results by.", "schema": { "type": "string" }, "explode": false }, { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time to inclusively filter all fees created after this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false }, { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time to exclusively filter all fees created before this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IncurredFee" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ], "x-speakeasy-group": "accounts", "x-speakeasy-name-override": "getFees" } }, "/accounts/{accountID}/fees/.fetch": { "post": { "operationId": "listFeesFetch", "description": "List fees associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IncurredFee" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListFeesFetchRequest" } } } }, "x-speakeasy-group": "feePlans", "x-speakeasy-name-override": "fetchFees" } }, "/accounts/{accountID}/files": { "post": { "operationId": "uploadFile", "description": "Upload a file and link it to the specified Moov account. \n\nThe maximum file size is 20MB. Each account is allowed a maximum of 50 files. Acceptable file types include csv, jpg, pdf, \nand png. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/files.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileDetails" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Files" ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/FileUploadRequestMultiPart" }, "encoding": { "file": { "contentType": "text/csv, image/png, image/jpeg, application/pdf" }, "filePurpose": { "contentType": "text/plain" } } } } }, "x-speakeasy-name-override": "upload" }, "get": { "operationId": "listFiles", "description": "List all the files associated with a particular Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/files.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileDetails" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Files" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/files/{fileID}": { "get": { "operationId": "getFileDetails", "description": "Retrieve file details associated with a specific Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/files.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "fileID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileDetails" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Files" ], "x-speakeasy-name-override": "getFile", "x-speakeasy-group": "accounts" } }, "/accounts/{accountID}/images": { "get": { "operationId": "listImageMetadata", "description": "List metadata for all images in the specified account.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "skip", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/Skip" }, "explode": false }, { "name": "count", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/Count", "maximum": 200, "default": 20 }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ImageMetadata" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "x-speakeasy-name-override": "list" }, "post": { "operationId": "uploadImage", "description": " Upload a new PNG, JPEG, or WebP image with optional metadata. \n Duplicate images, and requests larger than 16MB will be rejected.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageMetadata" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageRequestValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/ImageUploadRequestMultiPart" }, "encoding": { "image": { "contentType": "image/jpeg, image/png, image/webp" }, "metadata": { "contentType": "application/json" } } } } }, "x-speakeasy-name-override": "upload" } }, "/accounts/{accountID}/images/{imageID}": { "get": { "operationId": "getImageMetadata", "description": "Retrieve metadata for a specific image by its ID.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "imageID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageMetadata" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "x-speakeasy-name-override": "getMetadata" }, "put": { "operationId": "updateImage", "description": "Replace an existing image and, optionally, its metadata.\n\nThis endpoint replaces the existing image with the new PNG, JPEG, or WebP. Omit\nthe metadata form section to keep existing metadata. Duplicate images, and requests larger than 16MB will be rejected.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "imageID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageMetadata" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageRequestValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/ImageUploadRequestMultiPart" }, "encoding": { "image": { "contentType": "image/jpeg, image/png, image/webp" }, "metadata": { "contentType": "application/json" } } } } }, "x-speakeasy-name-override": "update" }, "delete": { "operationId": "deleteImage", "description": " Disable an image by its ID.\n \n Disabled images are still be accessible via their public URL, and cannot be assigned\n to products or line-items.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "imageID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "x-speakeasy-name-override": "delete" } }, "/accounts/{accountID}/images/{imageID}/metadata": { "put": { "operationId": "updateImageMetadata", "description": "Replace the metadata for an existing image.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "imageID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageMetadata" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageMetadataValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImageMetadataRequest" } } } }, "x-speakeasy-name-override": "updateMetadata" } }, "/accounts/{accountID}/merchant-agreement": { "get": { "operationId": "getMerchantProcessingAgreement", "description": "Retrieve a merchant account's processing agreement.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ], "x-speakeasy-name-override": "getMerchantAgreement" } }, "/accounts/{accountID}/partner-pricing-agreements": { "get": { "operationId": "listPartnerPricingAgreements", "description": "List all partner pricing agreements associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "agreementID", "in": "query", "required": false, "description": "A comma-separated list of agreement IDs to filter the results by.", "schema": { "type": "array", "items": { "type": "string" } }, "explode": false }, { "name": "status", "in": "query", "required": false, "description": "A comma-separated list of statuses to filter the results by.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FeePlanAgreementStatus" } }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PartnerPricingAgreement" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ], "x-speakeasy-group": "feePlans" } }, "/accounts/{accountID}/payment-links": { "post": { "operationId": "createPaymentLink", "description": "Create a payment link that allows an end user to make a payment on Moov's hosted payment link page.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant account ID.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentLink" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePaymentLinkError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment links" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePaymentLink" } } } }, "x-speakeasy-name-override": "create", "x-speakeasy-group": "paymentLinks" }, "get": { "operationId": "listPaymentLinks", "description": "List all the payment links created under a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "$ref": "#/components/parameters/PaymentLinkListFilters.types" }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant account ID.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentLink" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment links" ], "x-speakeasy-name-override": "list", "x-speakeasy-group": "paymentLinks" } }, "/accounts/{accountID}/payment-links/{paymentLinkCode}": { "get": { "operationId": "getPaymentLink", "description": "Retrieve a payment link by code.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant account ID.", "schema": { "type": "string" } }, { "name": "paymentLinkCode", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/PaymentLinkCode" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentLink" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment links" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "paymentLinks" }, "patch": { "operationId": "updatePaymentLink", "description": "Update a payment link.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant account ID.", "schema": { "type": "string" } }, { "name": "paymentLinkCode", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/PaymentLinkCode" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentLink" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePaymentLinkError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment links" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePaymentLink" } } } }, "x-speakeasy-name-override": "update", "x-speakeasy-group": "paymentLinks" }, "delete": { "operationId": "disablePaymentLink", "description": "Disable a payment link.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant account ID.", "schema": { "type": "string" } }, { "name": "paymentLinkCode", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/PaymentLinkCode" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment links" ], "x-speakeasy-name-override": "disable", "x-speakeasy-group": "paymentLinks" } }, "/accounts/{accountID}/payment-links/{paymentLinkCode}/qrcode": { "get": { "operationId": "getPaymentLinkQRCode", "description": "Retrieve the payment link encoded in a QR code. \n\nUse the `Accept` header to specify the format of the response. Supported formats are `application/json` and `image/png`.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant account ID.", "schema": { "type": "string" } }, { "name": "paymentLinkCode", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/PaymentLinkCode" } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QRCode" } }, "image/png": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment links" ], "x-speakeasy-name-override": "getQrCode", "x-speakeasy-group": "paymentLinks" } }, "/accounts/{accountID}/payment-methods": { "get": { "operationId": "listPaymentMethods", "description": "Retrieve a list of payment methods associated with a Moov account. Read our [payment methods \nguide](https://docs.moov.io/guides/money-movement/payment-methods/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/payment-methods.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "sourceID", "in": "query", "required": false, "description": "Optional parameter to filter the account's payment methods by source ID. \n\nA source ID can be a [walletID](https://docs.moov.io/api/sources/wallets/list/), [cardID](https://docs.moov.io/api/sources/cards/list/), \nor [bankAccountID](https://docs.moov.io/api/sources/bank-accounts/list/).", "schema": { "type": "string" }, "explode": false }, { "name": "paymentMethodType", "in": "query", "required": false, "description": "Optional parameter to filter the account's payment methods by payment method type.", "schema": { "$ref": "#/components/schemas/PaymentMethodType" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentMethod" } }, "example": [ { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "paymentMethodType": "moov-wallet", "wallet": { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917", "walletType": "general" } }, { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "paymentMethodType": "apple-pay", "applePay": { "brand": "Visa", "cardType": "credit", "cardDisplayName": "Visa 1256", "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3", "expiration": { "month": "01", "year": "21" }, "dynamicLastFour": "1256", "issuerCountry": "US" } } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment methods" ], "x-speakeasy-name-override": "list", "x-speakeasy-group": "paymentMethods" } }, "/accounts/{accountID}/payment-methods/{paymentMethodID}": { "get": { "operationId": "getPaymentMethod", "description": "Get the specified payment method associated with a Moov account. Read our [payment methods guide](https://docs.moov.io/guides/money-movement/payment-methods/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/payment-methods.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "paymentMethodID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/PaymentMethodID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentMethod" }, "example": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "paymentMethodType": "moov-wallet", "wallet": { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917", "walletType": "general" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Payment methods" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "paymentMethods" } }, "/accounts/{accountID}/products": { "get": { "operationId": "listProducts", "description": "List active (non-disabled) products for an account.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "title", "in": "query", "required": false, "description": "Allows filtering products by title. This supports partial matches and is case-insensitive", "schema": { "type": "string" }, "explode": false }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Products" ], "x-speakeasy-name-override": "list" }, "post": { "operationId": "createProduct", "description": "Creates a new product for the specified account.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Product" }, "example": { "productID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "title": "World's best lemonade", "description": "Really, the best.", "basePrice": { "valueDecimal": "4.99", "currency": "USD" }, "images": [ { "imageID": "fed91252-6f48-4b70-885e-520bf53a52ff", "altText": "A refreshing glass of lemonade", "link": "https://api.moov.io/product-images/k9FzFqsMaot1IPzufEvE0", "publicID": "q7lKWleAy9fUNhEGezQ1g" }, { "imageID": "eb466644-0a58-4b87-af1e-94d03e223ad2", "altText": "Lemonade with strawberries", "link": "https://api.moov.io/product-images/2pMcLHOeDbg85aVaRdqi9", "publicID": "2pMcLHOeDbg85aVaRdqi9" } ], "optionGroups": [ { "name": "Flavor add-ins", "description": "Choose up to 3 flavor add-ins to enhance your lemonade.", "minSelect": 0, "maxSelect": 3, "options": [ { "name": "Strawberry puree", "description": "Fresh and fruity.", "priceModifier": { "valueDecimal": "0.99", "currency": "USD" }, "images": [ { "imageID": "d359808d-9896-4414-8d17-dac43f35842d", "link": "https://api.moov.io/product-images/BGjP7ho9WgICuSQT0HA9Z", "publicID": "BGjP7ho9WgICuSQT0HA9Z" } ] }, { "name": "Passionfruit syrup", "priceModifier": { "valueDecimal": "0.49", "currency": "USD" } }, { "name": "Cherry syrup", "priceModifier": { "valueDecimal": "0.49", "currency": "USD" } } ] }, { "name": "Sweetener", "description": "Choose a sweetener for your lemonade.", "minSelect": 1, "maxSelect": 1, "options": [ { "name": "Cane Sugar" }, { "name": "Honey", "priceModifier": { "valueDecimal": "0.99", "currency": "USD" } }, { "name": "Stevia", "description": "Natural, zero-calorie sweetener." } ] } ], "createdOn": "2025-09-01T00:00:00Z", "updatedOn": "2025-09-02T00:00:00Z" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductRequestValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Products" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductRequest" }, "example": { "title": "World's best lemonade", "description": "Really, the best.", "basePrice": { "valueDecimal": "4.99", "currency": "USD" }, "images": [ { "imageID": "fed91252-6f48-4b70-885e-520bf53a52ff" }, { "imageID": "eb466644-0a58-4b87-af1e-94d03e223ad2" } ], "optionGroups": [ { "name": "Flavor add-ins", "description": "Choose up to 3 flavor add-ins to enhance your lemonade.", "minSelect": 0, "maxSelect": 3, "options": [ { "name": "Strawberry puree", "description": "Fresh and fruity.", "priceModifier": { "valueDecimal": "0.99", "currency": "USD" }, "images": [ { "imageID": "d359808d-9896-4414-8d17-dac43f35842d" } ] }, { "name": "Passionfruit syrup", "priceModifier": { "valueDecimal": "0.49", "currency": "USD" } }, { "name": "Cherry syrup", "priceModifier": { "valueDecimal": "0.49", "currency": "USD" } } ] }, { "name": "Sweetener", "description": "Choose a sweetener for your lemonade.", "minSelect": 1, "maxSelect": 1, "options": [ { "name": "Cane Sugar" }, { "name": "Honey", "priceModifier": { "valueDecimal": "0.99", "currency": "USD" } }, { "name": "Stevia", "description": "Natural, zero-calorie sweetener." } ] } ] } } } }, "x-speakeasy-name-override": "create" } }, "/accounts/{accountID}/products/{productID}": { "get": { "operationId": "getProduct", "description": "Retrieve a product by ID.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "productID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/ProductID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Products" ], "x-speakeasy-name-override": "get" }, "put": { "operationId": "updateProduct", "description": "Update a product and its options.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "productID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/ProductID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Product" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductRequestValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Products" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductRequest" } } } }, "x-speakeasy-name-override": "update" }, "delete": { "operationId": "disableProduct", "description": "Disable a product by ID.\n\nThe product will no longer be available, but will remain in the system for historical and reporting purposes.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "productID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/ProductID" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Products" ], "x-speakeasy-name-override": "disable" } }, "/accounts/{accountID}/representatives": { "post": { "operationId": "createRepresentative", "description": "Moov accounts associated with businesses require information regarding individuals who represent the business. \nYou can provide this information by creating a representative. Each account is allowed a maximum of 7 representatives. \nRead our [business representatives guide](https://docs.moov.io/guides/accounts/requirements/business-representatives/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/representatives.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the account.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Representative" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepresentativeValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Representatives" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRepresentative" } } } }, "x-speakeasy-name-override": "create" }, "get": { "operationId": "listRepresentatives", "description": "A Moov account may have multiple representatives depending on the associated business's ownership and management structure. \nYou can use this method to list all the representatives for a given Moov account. \nNote that Moov accounts associated with an individual do not have representatives. \nRead our [business representatives guide](https://docs.moov.io/guides/accounts/requirements/business-representatives/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/representatives.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the account.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Representative" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Representatives" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/representatives/{representativeID}": { "delete": { "operationId": "deleteRepresentative", "description": "Deletes a business representative associated with a Moov account. Read our [business representatives guide](https://docs.moov.io/guides/accounts/requirements/business-representatives/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/representatives.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the account.", "schema": { "type": "string" } }, { "name": "representativeID", "in": "path", "required": true, "description": "ID of the representative.", "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Representatives" ], "x-speakeasy-name-override": "delete" }, "get": { "operationId": "getRepresentative", "description": "Retrieve a specific representative associated with a given Moov account. Read our [business representatives guide](https://docs.moov.io/guides/accounts/requirements/business-representatives/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/representatives.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the account.", "schema": { "type": "string" } }, { "name": "representativeID", "in": "path", "required": true, "description": "ID of the representative.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Representative" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Representatives" ], "x-speakeasy-name-override": "get" }, "patch": { "operationId": "updateRepresentative", "description": "If a representative's information has changed you can patch the information associated with a specific representative ID.\nRead our [business representatives guide](https://docs.moov.io/guides/accounts/requirements/business-representatives/) to learn more.\n\nWhen **can** profile data be updated:\n\n- For unverified representatives, all profile data can be edited.\n- During the verification process, missing or incomplete profile data can be edited.\n- Verified representatives can only add missing profile data.\n\nWhen **can't** profile data be updated:\n\n- Verified representatives cannot change any existing profile data.\n\nIf you need to update information in a locked state, please contact Moov support.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/representatives.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "ID of the account.", "schema": { "type": "string" } }, { "name": "representativeID", "in": "path", "required": true, "description": "ID of the representative.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Representative" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Representatives" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRepresentative" } } } }, "x-speakeasy-name-override": "update" } }, "/accounts/{accountID}/residuals": { "get": { "operationId": "listResiduals", "description": "List all residuals associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time to inclusively filter all residuals with a period start after this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false }, { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time to exclusively filter all residuals with a period end before this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Residual" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ] } }, "/accounts/{accountID}/residuals/{residualID}": { "get": { "operationId": "getResidual", "description": "Get a residual associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "residualID", "in": "path", "required": true, "description": "Unique identifier for this residual payment calculation.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Residual" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ] } }, "/accounts/{accountID}/residuals/{residualID}/fees": { "get": { "operationId": "listResidualFees", "description": "List all fees associated with a residual.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "residualID", "in": "path", "required": true, "description": "Unique identifier for this residual payment calculation.", "schema": { "type": "string" } }, { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time to inclusively filter all fees created after this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false }, { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time to exclusively filter all fees created before this date-time.", "schema": { "type": "string", "format": "RFC-3339" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IncurredFee" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Fee plans" ] } }, "/accounts/{accountID}/schedules": { "post": { "operationId": "createSchedule", "description": "Describes the schedule to create or modify.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "Account ID of the account that will run the transfer.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduleResponse" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduleValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Scheduling" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertSchedule" } } } }, "x-speakeasy-name-override": "create" }, "get": { "operationId": "listSchedules", "description": "Describes a list of schedules associated with an account. Append the `hydrate=accounts` query parameter to include partial account details in the response.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "hydrate", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "accounts" ] }, "explode": false }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduleListResponse" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Scheduling" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/schedules/{scheduleID}": { "put": { "operationId": "updateSchedule", "description": "Describes the schedule to modify.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "Account ID of the account that will run the transfer.", "schema": { "type": "string" } }, { "name": "scheduleID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduleResponse" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduleValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Scheduling" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertSchedule" } } } }, "x-speakeasy-name-override": "update" }, "get": { "operationId": "getSchedules", "description": "Describes a schedule associated with an account. Requires at least 1 occurrence or recurTransfer to be specified.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "scheduleID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduleResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Scheduling" ], "x-speakeasy-name-override": "get" }, "delete": { "operationId": "cancelSchedule", "description": "Describes the schedule to cancel.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "Your Moov account ID as the partner running the transfers.", "schema": { "type": "string" } }, { "name": "scheduleID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Scheduling" ], "x-speakeasy-name-override": "cancel", "x-speakeasy-group": "schedules" } }, "/accounts/{accountID}/schedules/{scheduleID}/occurrences/{occurrenceFilter}": { "get": { "operationId": "getScheduledOccurrence", "description": "Gets a specific occurrence.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "scheduleID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "occurrenceFilter", "in": "path", "required": true, "description": " Allows the specification of additional filters beyond the string.\n\n Specifying a string returns the exact occurrence.\n Specifying a RFC 3339 timestamp returns the latest occurrence at or before that timestamp.\n Specifying `latest` returns the latest occurrence at or before now.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OccurrencesResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Scheduling" ], "x-speakeasy-name-override": "getOccurrence" } }, "/accounts/{accountID}/statements": { "get": { "operationId": "listStatements", "description": "Retrieve all statements associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/StatementListFilters.billingPeriodStartDateTime" }, { "$ref": "#/components/parameters/StatementListFilters.billingPeriodEndDateTime" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Statement" } } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Statements" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/statements/{statementID}": { "get": { "operationId": "getStatement", "description": "Retrieve a statement by its ID.\n\nUse the `Accept` header to specify the format of the response. Supported formats are `application/json` and `application/pdf`.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "statementID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Statement" } }, "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Statements" ], "x-speakeasy-name-override": "get" } }, "/accounts/{accountID}/sweep-configs": { "post": { "operationId": "createSweepConfig", "description": "Create a sweep config for a wallet.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SweepConfig" }, "example": { "sweepConfigID": "01234567-89ab-cdef-0123-456789abcdef", "walletID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "pushPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "pullPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "minimumBalance": "0.00", "statementDescriptor": "swp_012345", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSweepConfigError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Sweeps" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSweepConfig" }, "example": { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "pushPaymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "pullPaymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" } } } }, "x-speakeasy-name-override": "createConfig" }, "get": { "operationId": "listSweepConfigs", "description": "List sweep configs associated with an account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SweepConfig" } }, "example": [ { "sweepConfigID": "01234567-89ab-cdef-0123-456789abcdef", "walletID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "pushPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "pullPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "minimumBalance": "0.00", "statementDescriptor": "swp_012345", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" }, { "sweepConfigID": "01234567-89ab-cdef-0123-456789abcdef", "walletID": "01234567-89ab-cdef-0123-456789abcdef", "status": "disabled", "pushPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "pullPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "minimumBalance": "0.00", "statementDescriptor": "swp_012345", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Sweeps" ], "x-speakeasy-name-override": "listConfigs" } }, "/accounts/{accountID}/sweep-configs/{sweepConfigID}": { "get": { "operationId": "getSweepConfig", "description": "Get a sweep config associated with a wallet.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "sweepConfigID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/SweepConfigID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SweepConfig" }, "example": { "sweepConfigID": "01234567-89ab-cdef-0123-456789abcdef", "walletID": "01234567-89ab-cdef-0123-456789abcdef", "status": "enabled", "pushPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "pullPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "minimumBalance": "0.00", "statementDescriptor": "swp_012345", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Sweeps" ], "x-speakeasy-name-override": "getConfig" }, "patch": { "operationId": "updateSweepConfig", "description": "Update settings on a sweep config.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/wallets.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "sweepConfigID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/SweepConfigID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SweepConfig" }, "example": { "sweepConfigID": "01234567-89ab-cdef-0123-456789abcdef", "walletID": "01234567-89ab-cdef-0123-456789abcdef", "status": "disabled", "pushPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "pullPaymentMethod": { "paymentMethodID": "01234567-89ab-cdef-0123-456789abcdef" }, "minimumBalance": "0.00", "statementDescriptor": "swp_012345", "createdOn": "2024-05-06T12:20:38.184Z", "updatedOn": "2024-05-06T12:20:38.184Z" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchSweepConfigError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Sweeps" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchSweepConfig" }, "example": { "status": "disabled" } } } }, "x-speakeasy-name-override": "updateConfig" } }, "/accounts/{accountID}/terminal-applications": { "post": { "operationId": "linkAccountTerminalApplication", "description": "Link an account with a terminal application.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/terminal-applications.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/MerchantAccountID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountTerminalApplication" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountTerminalApplicationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Account Terminal Applications" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkAccountTerminalApplication" } } } }, "x-speakeasy-name-override": "link" }, "get": { "operationId": "listAccountTerminalApplications", "description": "Retrieve all terminal applications linked to a specific account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/terminal-applications.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/MerchantAccountID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AccountTerminalApplication" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Account Terminal Applications" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/terminal-applications/{terminalApplicationID}": { "get": { "operationId": "getAccountTerminalApplication", "description": "Verifies if a specific Terminal Application is linked to an Account. This endpoint acts as a validation check for the link's existence.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/terminal-applications.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/MerchantAccountID" } }, { "name": "terminalApplicationID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/TerminalApplicationID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountTerminalApplication" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Account Terminal Applications" ], "x-speakeasy-name-override": "get" } }, "/accounts/{accountID}/terminal-applications/{terminalApplicationID}/configuration": { "get": { "operationId": "getTerminalConfiguration", "description": "Fetch the configuration for a given Terminal Application linked to a specific Account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/terminal-configuration.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/MerchantAccountID" } }, { "name": "terminalApplicationID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/TerminalApplicationID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalConfiguration" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Account Terminal Applications" ], "x-speakeasy-name-override": "getConfiguration" } }, "/accounts/{accountID}/tickets": { "post": { "operationId": "createTicket", "description": "Create a support ticket for a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/tickets.write` scope.\n\nIf you're creating the ticket on behalf of another account, then you'll need to\nspecify the `/accounts/{partnerAccountID}/tickets.write` and `/accounts/{accountID}/profile.read` scopes.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Ticket" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTicketError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Support" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTicket" } } } } }, "get": { "operationId": "listTickets", "description": "List all the support tickets created under a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/tickets.read` scope.\n\nIf you're listing another account's tickets, then you'll need to\nspecify the `/accounts/{partnerAccountID}/tickets.read` and `/accounts/{accountID}/profile.read` scopes.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/CursorPagination.cursor" }, { "$ref": "#/components/parameters/CursorPagination.count" }, { "$ref": "#/components/parameters/TicketListFilters.status" }, { "$ref": "#/components/parameters/TicketListFilters.foreignID" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/Ticket" } }, "nextPage": { "$ref": "#/components/schemas/ItemListNextPage" } }, "description": "A paginated list of items. The `nextPage` field is omitted if there are no more pages available." } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Support" ] } }, "/accounts/{accountID}/tickets/{ticketID}": { "get": { "operationId": "getTicket", "description": "Retrieve a support ticket by ID.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/tickets.read` scope.\n\nIf you're retrieving another account's ticket, then you'll need to\nspecify the `/accounts/{partnerAccountID}/tickets.read` and `/accounts/{accountID}/profile.read` scopes.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "ticketID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Ticket" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Support" ] }, "patch": { "operationId": "updateTicket", "description": "Updates a support ticket.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/tickets.write` scope.\n\nIf you're updating the ticket on behalf of another account, then you'll need to\nspecify the `/accounts/{partnerAccountID}/tickets.write` and `/accounts/{accountID}/profile.read` scopes.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "ticketID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Ticket" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTicketError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Support" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTicket" } } } } } }, "/accounts/{accountID}/tickets/{ticketID}/messages": { "get": { "operationId": "listTicketMessages", "description": "List all the messages for a support ticket.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/tickets.read` scope.\n\nIf you're listing another account's messages, then you'll need to\nspecify the `/accounts/{partnerAccountID}/tickets.read` and `/accounts/{accountID}/profile.read` scopes.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "ticketID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TicketMessage" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Support" ] } }, "/accounts/{accountID}/transfer-options": { "post": { "operationId": "createTransferOptions", "description": "Generate available payment method options for one or multiple transfer participants depending on the accountID or paymentMethodID you \nsupply in the request body.\n\nThe accountID in the route should the partner's accountID.\n\nRead our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The partner's Moov account ID.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransferOptions" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransferOptionsValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTransferOptions" } } } }, "x-speakeasy-name-override": "generateOptions" } }, "/accounts/{accountID}/transfers": { "post": { "operationId": "createTransfer", "description": "Move money by providing the source, destination, and amount in the request body.\n\nRead our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "x-idempotency-key", "in": "header", "required": true, "description": " Identifies a unique request to create a transfer.\n In order to avoid creating duplicate transfers, the same idempotency key should be reused when retrying a request.", "schema": { "type": "string" } }, { "name": "x-wait-for", "in": "header", "required": false, "description": "Optional header that indicates whether to return a synchronous response that includes full transfer and rail-specific details or an \nasynchronous response indicating the transfer was created (this is the default response if the header is omitted). A timeout will occur after 15 seconds.", "schema": { "$ref": "#/components/schemas/TransferWaitFor" } }, { "name": "accountID", "in": "path", "required": true, "description": "Your Moov account ID.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedTransfer" }, "examples": { "Created synchronous transfer": { "summary": "Created synchronous transfer", "value": { "transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3", "source": { "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2", "paymentMethodType": "card-payment", "account": { "accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550", "email": "jules@julesjackson.com", "displayName": "Jules Jackson" }, "card": { "cardID": "aefd5563-93c6-413c-875e-1bd0ebfc116d", "fingerprint": "2f5d782ceef1c3bd31ed5...", "brand": "Visa", "cardType": "credit", "lastFourCardNumber": "2000", "bin": "400020", "expiration": { "month": "01", "year": "28" }, "holderName": "Jules Jackson", "billingAddress": { "postalCode": "80301" }, "domesticPushToCard": "standard", "domesticPullFromCard": "supported", "cardVerification": { "cvv": "unavailable", "addressLine1": "unavailable", "postalCode": "unavailable", "accountName": { "firstName": "unavailable", "lastName": "unavailable", "middleName": "unavailable", "fullName": "unavailable" } }, "issuer": "Moov Visa Sandbox", "issuerCountry": "US", "cardAccountUpdater": {} }, "cardDetails": { "status": "confirmed", "dynamicDescriptor": "WhlBdy *Yoga 11-12", "confirmedOn": "2025-01-21T21:32:16.799681237Z" } }, "destination": { "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf", "paymentMethodType": "moov-wallet", "account": { "accountID": "34233b72-780c-4a0d-8b08-cbbe23k878f8", "email": "john@wholebodyfitness.io", "displayName": "Whole Body Fitness" }, "wallet": { "walletID": "744b2e78-8cc8-4a6a-af42-611e3b844503", "partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917", "walletType": "general" } }, "status": "pending", "amount": { "currency": "USD", "value": 32945 }, "description": "Transfer from card to wallet", "createdOn": "2025-01-21T21:32:16Z" } }, "Created async transfer": { "summary": "Created async transfer", "value": { "transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3", "createdOn": "2025-01-21T21:32:16Z" } } } } } }, "201": { "description": "A transfer was successfully created but an error occurred while generating the synchronous response. The asynchronous response object will be returned.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AsyncTransfer" } } } }, "202": { "description": "The transfer was created, but rail-specific details may not be available within the 15 second timeout window.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Transfer" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "Attempted to create a transfer using a duplicate X-Idempotency-Key header.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Transfer" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransferValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTransfer" } } } }, "x-speakeasy-name-override": "create" }, "get": { "operationId": "listTransfers", "description": "List all the transfers associated with a particular Moov account. \n\nRead our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more. \n\nWhen you run this request, you retrieve 200 transfers at a time. You can advance past a results set of 200 transfers by using the `skip` parameter (for example, \nif you set `skip`= 10, you will see a results set of 200 transfers after the first 10). If you are searching a high volume of transfers, the request will likely \nprocess very slowly. To achieve faster performance, restrict the data as much as you can by using the `StartDateTime` and `EndDateTime` parameters for a limited \nperiod of time. You can run multiple requests in smaller time window increments until you've retrieved all the transfers you need.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/TransferListFilters.accountIDs" }, { "$ref": "#/components/parameters/TransferListFilters.status" }, { "$ref": "#/components/parameters/TransferListFilters.startDateTime" }, { "$ref": "#/components/parameters/TransferListFilters.endDateTime" }, { "$ref": "#/components/parameters/TransferListFilters.groupID" }, { "$ref": "#/components/parameters/TransferListFilters.scheduleID" }, { "$ref": "#/components/parameters/TransferListFilters.paymentLinkCode" }, { "$ref": "#/components/parameters/TransferListFilters.refunded" }, { "$ref": "#/components/parameters/TransferListFilters.disputed" }, { "$ref": "#/components/parameters/TransferListFilters.foreignID" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Transfer" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListTransfersValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/transfers/{transferID}": { "get": { "operationId": "getTransfer", "description": "Retrieve full transfer details for an individual transfer of a particular Moov account. \n\nPayment rail-specific details are included in the source and destination. Read our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) \nto learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "transferID", "in": "path", "required": true, "description": "Identifier for the transfer.", "schema": { "type": "string" } }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Transfer" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "x-speakeasy-name-override": "get" }, "patch": { "operationId": "updateTransfer", "description": "Update the metadata contained on a transfer.\n\nRead our [transfers overview guide](https://docs.moov.io/guides/money-movement/overview/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "transferID", "in": "path", "required": true, "description": "Identifier for the transfer.", "schema": { "type": "string" } }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Transfer" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchTransferValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchTransfer" } } } }, "x-speakeasy-name-override": "update" } }, "/accounts/{accountID}/transfers/{transferID}/cancellations": { "post": { "operationId": "createCancellation", "description": " Initiate a cancellation for a card, ACH, or queued transfer.\n \n To access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \n to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The partner's Moov account ID.", "schema": { "type": "string" } }, { "name": "transferID", "in": "path", "required": true, "description": "The transfer ID to cancel.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Cancellation" }, "examples": { "Created cancellation": { "summary": "Created cancellation", "value": { "cancellationID": "89ca7f54-13ba-4714-b9af-17163eae2057", "status": "completed", "createdOn": "2025-01-19T03:02:43.255309588Z" } } } } } }, "202": { "description": "Successfully initiated a cancellation but an error occurred while waiting for a synchronous response.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Cancellation" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ] } }, "/accounts/{accountID}/transfers/{transferID}/cancellations/{cancellationID}": { "get": { "operationId": "getCancellation", "description": " Get details of a cancellation for a transfer.\n \n To access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \n to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "Moov account ID of the partner or transfer's source or destination.", "schema": { "type": "string" } }, { "name": "transferID", "in": "path", "required": true, "description": "Identifier for the transfer.", "schema": { "type": "string" } }, { "name": "cancellationID", "in": "path", "required": true, "description": "Identifier for the cancellation.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Cancellation" }, "examples": { "Cancellation": { "summary": "Cancellation", "value": { "cancellationID": "89ca7f54-13ba-4714-b9af-17163eae2057", "status": "completed", "createdOn": "2025-01-19T03:02:43.255309588Z" } } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ] } }, "/accounts/{accountID}/transfers/{transferID}/refunds": { "post": { "operationId": "initiateRefund", "description": "Initiate a refund for a card transfer.\n\n**Use the [Cancel or refund a card transfer](https://docs.moov.io/api/money-movement/refunds/cancel/) endpoint for more comprehensive cancel and refund options.** \nSee the [reversals](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/reversals/) guide for more information. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "x-idempotency-key", "in": "header", "required": true, "description": "Prevents duplicate refunds from being created.", "schema": { "type": "string" } }, { "name": "x-wait-for", "in": "header", "required": false, "description": "Optional header that indicates whether to return a synchronous response that includes full transfer and rail-specific details or an \nasynchronous response indicating the transfer was created (this is the default response if the header is omitted). A timeout will occur after 15 seconds.", "schema": { "$ref": "#/components/schemas/TransferWaitFor" } }, { "name": "accountID", "in": "path", "required": true, "description": "The merchant's Moov account ID.", "schema": { "type": "string" } }, { "name": "transferID", "in": "path", "required": true, "description": "Identifier for the transfer.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRefundResponse" }, "examples": { "Successful async refund": { "summary": "Successful async refund", "value": { "refundID": "d4963079-5b35-4d17-981e-8f851753f786", "createdOn": "2023-09-09T14:15:22Z", "amount": { "currency": "USD", "value": 1204 } } }, "Successful sync refund": { "summary": "Successful sync refund", "value": { "refundID": "d4963079-5b35-4d17-981e-8f851753f786", "createdOn": "2023-09-09T14:15:22Z", "updatedOn": "2023-09-09T14:17:41Z", "status": "pending", "amount": { "currency": "USD", "value": 1204 }, "cardDetails": { "status": "confirmed", "initiatedOn": "2023-09-09T14:16:22Z", "confirmedOn": "2023-09-09T14:17:41Z" } } } } } } }, "202": { "description": "A refund was successfully created but an error occurred while waiting for a synchronous response.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CardAcquiringRefund" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "Attempted to create a refund using a duplicate X-Idempotency-Key header.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CardAcquiringRefund" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefundValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRefund" } } } } }, "get": { "operationId": "listRefunds", "description": "Get a list of refunds for a card transfer.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "transferID", "in": "path", "required": true, "description": "Identifier for the transfer.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CardAcquiringRefund" } }, "example": [ { "refundID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43", "amount": { "currency": "USD", "value": 1204 }, "cardDetails": { "completedOn": "2024-08-24T14:15:22Z", "confirmedOn": "2024-08-24T14:15:22Z", "initiatedOn": "2024-08-24T14:15:22Z", "settledOn": "2024-08-24T14:15:22Z", "status": "completed" }, "createdOn": "2024-08-24T14:15:22Z", "status": "completed", "updatedOn": "2024-08-24T14:15:22Z" } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ] } }, "/accounts/{accountID}/transfers/{transferID}/refunds/{refundID}": { "get": { "operationId": "getRefund", "description": "Get details of a refund for a card transfer.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "transferID", "in": "path", "required": true, "description": "Identifier for the transfer.", "schema": { "type": "string" } }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "refundID", "in": "path", "required": true, "description": "Identifier for the refund.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CardAcquiringRefund" }, "example": { "refundID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43", "amount": { "currency": "USD", "value": 1204 }, "cardDetails": { "completedOn": "2024-08-24T14:15:22Z", "confirmedOn": "2024-08-24T14:15:22Z", "initiatedOn": "2024-08-24T14:15:22Z", "settledOn": "2024-08-24T14:15:22Z", "status": "completed" }, "createdOn": "2024-08-24T14:15:22Z", "status": "completed", "updatedOn": "2024-08-24T14:15:22Z" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ] } }, "/accounts/{accountID}/transfers/{transferID}/reversals": { "post": { "operationId": "createReversal", "description": "Reverses a card transfer by initiating a cancellation or refund depending on the transaction status. \nRead our [reversals guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/reversals/) \nto learn more.\n\nTo access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need \nto specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "x-idempotency-key", "in": "header", "required": true, "description": "Prevents duplicate reversals from being created.", "schema": { "type": "string" } }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov account ID.", "schema": { "type": "string" } }, { "name": "transferID", "in": "path", "required": true, "description": "The transfer ID to reverse.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successfully initiated a reversal.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reversal" }, "examples": { "Reversed by refund": { "summary": "Reversed by refund", "value": { "refund": { "refundID": "89ca7f54-13ba-4714-b9af-17163eae2057", "createdOn": "2025-01-19T03:07:26.001024809Z", "updatedOn": "2025-01-19T03:07:26.602114307Z", "status": "pending", "amount": { "currency": "USD", "value": 1938 }, "cardDetails": { "status": "confirmed", "confirmedOn": "2025-01-19T03:07:26.602114307Z" } } } }, "Reversed by cancellation": { "summary": "Reversed by cancellation", "value": { "cancellation": { "cancellationID": "89ca7f54-13ba-4714-b9af-17163eae2057", "status": "completed", "createdOn": "2025-01-19T03:02:43.255309588Z" } } } } } } }, "202": { "description": "Successfully initiated a reversal but an error occurred while waiting for a synchronous response.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reversal" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReversalValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Transfers" ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateReversal" } } } } } }, "/accounts/{accountID}/underwriting": { "get": { "operationId": "getUnderwriting", "description": "Retrieve underwriting associated with a given Moov account. \n\nRead our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/underwriting/) to learn more. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Underwriting" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Underwriting" ], "x-speakeasy-name-override": "get" }, "post": { "operationId": "saveUnderwriting", "description": "Create or update the account's underwriting.\n\nRead our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/underwriting/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Underwriting" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertUnderwritingError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Underwriting" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertUnderwriting" } } } }, "x-speakeasy-name-override": "save" }, "put": { "operationId": "upsertUnderwriting", "description": "Create or update the account's underwriting.\n\nRead our [underwriting guide](https://docs.moov.io/guides/accounts/requirements/underwriting/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/profile.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Underwriting" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUnderwritingError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Underwriting" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUnderwriting" } } } }, "x-speakeasy-name-override": "upsert" } }, "/accounts/{accountID}/wallets": { "post": { "operationId": "createWallet", "description": "Create a new wallet for an account. You can specify optional attributes such as a display name and description to specify the intended use of the wallet. This will generate a new moov-wallet payment method.\n\nRead our [Moov wallets guide](https://docs.moov.io/guides/sources/wallets/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov account ID the wallet belongs to.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Wallet" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWalletValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Wallets" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWallet" } } } }, "x-speakeasy-name-override": "create" }, "get": { "operationId": "listWallets", "description": "List the wallets associated with a Moov account. \n\nRead our [Moov wallets guide](https://docs.moov.io/guides/sources/wallets/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/WalletListFilters.status" }, { "$ref": "#/components/parameters/WalletListFilters.walletType" }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Wallet" } }, "example": [ { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "availableBalance": { "currency": "USD", "value": 1234, "valueDecimal": "12.34" }, "partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917", "name": "My Wallet", "status": "active", "walletType": "general", "description": "For payments", "createdOn": "2025-01-21T21:32:16Z" } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListWalletsValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Wallets" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/wallets/{walletID}": { "get": { "operationId": "getWallet", "description": "Get information on a specific wallet (e.g., the available balance). \n\nRead our [Moov wallets guide](https://docs.moov.io/guides/sources/wallets/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "walletID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/WalletID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Wallet" }, "example": { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "availableBalance": { "currency": "USD", "value": 1234, "valueDecimal": "12.34" }, "partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917", "name": "My Wallet", "status": "active", "walletType": "general", "description": "For payments", "createdOn": "2025-01-21T21:32:16Z" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Wallets" ], "x-speakeasy-name-override": "get" }, "patch": { "operationId": "updateWallet", "description": "Update properties of an existing wallet such as name, description, status, or metadata.\n\nRead our [Moov wallets guide](https://docs.moov.io/guides/sources/wallets/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/wallets.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "walletID", "in": "path", "required": true, "description": "Identifier for the wallet.", "schema": { "$ref": "#/components/schemas/WalletID" } }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov account ID the wallet belongs to.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Wallet" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchWalletValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Wallets" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchWallet" } } } }, "x-speakeasy-name-override": "update" } }, "/accounts/{accountID}/wallets/{walletID}/sweeps": { "get": { "operationId": "listSweeps", "description": "List sweeps associated with a wallet.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "walletID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/WalletID" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "status", "in": "query", "required": false, "description": "Optional parameter to filter by sweep status.", "schema": { "$ref": "#/components/schemas/SweepStatus" }, "explode": false }, { "name": "statementDescriptor", "in": "query", "required": false, "description": "Optional string to filter by statement descriptor.", "schema": { "$ref": "#/components/schemas/SweepStatementDescriptor" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Sweep" } }, "example": [ { "accruedAmount": "100.00", "accrualStartedOn": "2024-05-06T12:20:38.184Z", "currency": "USD", "status": "accruing", "sweepID": "01234567-89ab-cdef-0123-456789abcdef", "subtotals": [ { "type": "moov-fee", "count": 1, "amount": { "valueDecimal": "50.00", "currency": "USD" } }, { "type": "account-funding", "count": 1, "amount": { "valueDecimal": "50.00", "currency": "USD" } } ] } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Sweeps" ], "x-speakeasy-name-override": "list" } }, "/accounts/{accountID}/wallets/{walletID}/sweeps/{sweepID}": { "get": { "operationId": "getSweep", "description": "Get details on a specific sweep.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "walletID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/WalletID" } }, { "name": "sweepID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/SweepID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Sweep" }, "examples": { "Paid sweep": { "summary": "Paid sweep", "value": { "accruedAmount": "100.00", "accrualStartedOn": "2024-05-06T12:20:38.184Z", "accrualEndedOn": "2024-05-06T12:20:38.184Z", "currency": "USD", "pushPaymentMethodID": "01234567-89ab-cdef-0123-456789abcdef", "residualBalance": "0.00", "statementDescriptor": "swp_012345", "status": "paid", "sweepID": "01234567-89ab-cdef-0123-456789abcdef", "transferAmount": "12.98", "transferID": "01234567-89ab-cdef-0123-456789abcdef", "subtotals": [ { "type": "moov-fee", "count": 1, "amount": { "valueDecimal": "50.00", "currency": "USD" } }, { "type": "account-funding", "count": 1, "amount": { "valueDecimal": "50.00", "currency": "USD" } } ] } }, "Accrued sweep": { "summary": "Accrued sweep", "value": { "accruedAmount": "100.00", "accrualStartedOn": "2024-05-06T12:20:38.184Z", "currency": "USD", "status": "accruing", "sweepID": "01234567-89ab-cdef-0123-456789abcdef", "subtotals": [ { "type": "moov-fee", "count": 1, "amount": { "valueDecimal": "50.00", "currency": "USD" } }, { "type": "account-funding", "count": 1, "amount": { "valueDecimal": "50.00", "currency": "USD" } } ] } } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Sweeps" ], "x-speakeasy-name-override": "get" } }, "/accounts/{accountID}/wallets/{walletID}/transactions": { "get": { "operationId": "listWalletTransactions", "description": "List all the transactions associated with a particular Moov wallet. \n\nRead our [wallet transactions guide](https://docs.moov.io/guides/sources/wallets/transactions/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "$ref": "#/components/parameters/ListTransactionsQuery.walletID" }, { "$ref": "#/components/parameters/ListTransactionsQuery.transactionType" }, { "$ref": "#/components/parameters/ListTransactionsQuery.transactionTypes" }, { "$ref": "#/components/parameters/ListTransactionsQuery.sourceType" }, { "$ref": "#/components/parameters/ListTransactionsQuery.sourceID" }, { "$ref": "#/components/parameters/ListTransactionsQuery.status" }, { "$ref": "#/components/parameters/ListTransactionsQuery.createdStartDateTime" }, { "$ref": "#/components/parameters/ListTransactionsQuery.createdEndDateTime" }, { "$ref": "#/components/parameters/ListTransactionsQuery.completedStartDateTime" }, { "$ref": "#/components/parameters/ListTransactionsQuery.completedEndDateTime" }, { "$ref": "#/components/parameters/ListTransactionsQuery.sweepID" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WalletTransaction" } }, "example": [ { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "transactionID": "01234567-89ab-cdef-0123-456789abcdef", "transactionType": "card-payment", "sourceType": "transfer", "sourceID": "01234567-89ab-cdef-0123-456789abcdef", "status": "completed", "memo": "An example completed card payment", "createdOn": "2024-05-06T12:20:38.184Z", "completedOn": "2024-05-06T12:20:38.184Z", "currency": "USD", "grossAmount": 2000, "grossAmountDecimal": "20.00", "fee": 30, "feeDecimal": "0.30", "netAmount": 1970, "netAmountDecimal": "19.70", "availableBalance": 10000, "availableBalanceDecimal": "100.00" }, { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "transactionID": "01234567-89ab-cdef-0123-456789abcdef", "transactionType": "card-payment", "sourceType": "transfer", "sourceID": "01234567-89ab-cdef-0123-456789abcdef", "status": "pending", "memo": "An example pending card payment", "createdOn": "2024-05-06T12:20:38.184Z", "currency": "USD", "grossAmount": 2000, "grossAmountDecimal": "20.00", "fee": 30, "feeDecimal": "0.30", "netAmount": 1970, "netAmountDecimal": "19.70" } ] } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListWalletTransactionsValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Wallet transactions" ], "x-speakeasy-name-override": "listTransactions", "x-speakeasy-group": "wallets" } }, "/accounts/{accountID}/wallets/{walletID}/transactions/{transactionID}": { "get": { "operationId": "getWalletTransaction", "description": "Get details on a specific wallet transaction. \n\nRead our [wallet transactions guide](https://docs.moov.io/guides/sources/wallets/transactions/) to learn more.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/wallets.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "walletID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/WalletID" } }, { "name": "transactionID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/WalletTransactionID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WalletTransaction" }, "example": { "walletID": "01234567-89ab-cdef-0123-456789abcdef", "transactionID": "01234567-89ab-cdef-0123-456789abcdef", "transactionType": "card-payment", "sourceType": "transfer", "sourceID": "01234567-89ab-cdef-0123-456789abcdef", "status": "completed", "memo": "An example completed card payment", "createdOn": "2024-05-06T12:20:38.184Z", "completedOn": "2024-05-06T12:20:38.184Z", "currency": "USD", "grossAmount": 2000, "grossAmountDecimal": "20.00", "fee": 30, "feeDecimal": "0.30", "netAmount": 1970, "netAmountDecimal": "19.70", "availableBalance": 10000, "availableBalanceDecimal": "100.00" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Wallet transactions" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "walletTransactions" } }, "/avatars/{uniqueID}": { "get": { "operationId": "getAvatar", "description": "Get avatar image for an account using a unique ID. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/profile-enrichment.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "uniqueID", "in": "path", "required": true, "description": "Any unique ID associated with an account such as accountID, representativeID, routing number, or userID.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "image/*": { "schema": { "type": "string", "format": "binary" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Avatars" ], "x-speakeasy-name-override": "get" } }, "/debug/end-to-end-token": { "post": { "operationId": "testEndToEndToken", "description": "Allows for testing a JWE token to ensure it's acceptable by Moov. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/ping.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "End to End Encryption" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/E2EEToken" } } } }, "x-speakeasy-name-override": "testToken", "x-speakeasy-group": "endToEndEncryption" } }, "/end-to-end-keys": { "post": { "operationId": "generateEndToEndKey", "description": "Generates a public key used to create a JWE token for passing secure authentication data through non-PCI compliant intermediaries.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JSONWebKey" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "End to End Encryption" ], "x-speakeasy-name-override": "generateKey", "x-speakeasy-group": "endToEndEncryption" } }, "/enrichment/address": { "get": { "operationId": "getEnrichmentAddress", "description": "Fetch enriched address suggestions. Requires a partial address. \n \nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/profile-enrichment.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.search" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.maxResults" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.includeCities" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.includeStates" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.includeZipcodes" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.excludeStates" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.preferCities" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.preferStates" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.preferZipcodes" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.preferRatio" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.preferGeolocation" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.selected" }, { "$ref": "#/components/parameters/EnrichedAddressFilters.source" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedAddressResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Enriched address" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "enrichment.address" } }, "/enrichment/profile": { "get": { "operationId": "getEnrichmentProfile", "description": "Fetch enriched profile data. Requires a valid email address. This service is offered in collaboration with Clearbit. \n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/profile-enrichment.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "email", "in": "query", "required": true, "schema": { "type": "string" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedBusinessResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Enriched profile" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "enrichedProfile" } }, "/event-types": { "get": { "operationId": "listEventTypes", "description": "List all available event types that can be subscribed to.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EventType" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "x-speakeasy-name-override": "listEventTypes" } }, "/images/{publicID}": { "get": { "operationId": "getPublicImage", "description": "Get an image by its public ID.", "parameters": [ { "name": "if-none-match", "in": "header", "required": false, "schema": { "type": "string" } }, { "name": "publicID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/ImagePublicID" } }, { "name": "size", "in": "query", "required": false, "description": "Optional parameter to request a resized version of the image (WxH).\n\nIf either dimension is 0, the image will be scaled proportionally based on\nthe non-zero dimension. Dimensions are capped at 2048 pixels. A default size\nof 400x400 will be used if this parameter is omitted.", "schema": { "type": "string", "default": "400x400" }, "explode": false } ], "responses": { "200": { "description": "Response body for returning the raw image bytes.", "headers": { "Cache-Control": { "required": true, "schema": { "type": "string" } }, "Etag": { "required": false, "schema": { "type": "string" } } }, "content": { "image/webp": { "schema": { "type": "string", "format": "binary" } }, "image/png": { "schema": { "type": "string", "format": "binary" } }, "image/jpeg": { "schema": { "type": "string", "format": "binary" } } } }, "304": { "description": "The resource has not changed; client may use its cached representation.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } }, "Etag": { "required": false, "schema": { "type": "string" } }, "Cache-Control": { "required": false, "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "502": { "description": "The request failed because a downstream service returned an invalid response.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "503": { "description": "The request failed because a downstream service is unavailable.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Images" ], "security": [ {} ], "x-speakeasy-name-override": "getPublic" } }, "/industries": { "get": { "operationId": "listIndustries", "description": "Returns a list of industries relevant to merchant profile enrichment. Results are ordered by industry name.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/),\nyou'll need to specify the `/profile-enrichment.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichedIndustries" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Industries" ], "x-speakeasy-name-override": "list" } }, "/institutions": { "get": { "operationId": "searchInstitutions", "description": "Search for financial institutions by name or routing number.\n\nThis endpoint returns metadata about each matched institution, including basic identifying details (such as name, routing number, and address) and information about which payment services they support (e.g., ACH, RTP, and Wire).\n\nThis can be used to validate a financial institution before initiating payment activity, or to check which payment rails are available for a given routing number.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/institutions.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/InstitutionSearchFilters.name" }, { "$ref": "#/components/parameters/InstitutionSearchFilters.routingNumber" }, { "$ref": "#/components/parameters/InstitutionSearchFilters.limit" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstitutionsSearchResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Institutions" ] } }, "/institutions/ach/search": { "get": { "operationId": "listInstitutions", "description": "This endpoint has been deprecated and will be removed in a future release. Use [/institutions](https://docs.moov.io/api/enrichment/form-shortening/institutions/get/).\n\nSearch for institutions by either their name or routing number.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/fed.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "$ref": "#/components/parameters/InstitutionsFilters.name" }, { "$ref": "#/components/parameters/InstitutionsFilters.routingNumber" }, { "$ref": "#/components/parameters/InstitutionsFilters.state" }, { "$ref": "#/components/parameters/InstitutionsFilters.limit" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FinancialInstitutions" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Institutions" ], "deprecated": true, "x-speakeasy-name-override": "search" } }, "/issuing/{accountID}/authorizations": { "get": { "operationId": "listIssuedCardAuthorizations", "description": "List issued card authorizations associated with a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which cards have been issued.", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "$ref": "#/components/parameters/ListIssuingAuthorizationsQuery.issuedCardID" }, { "$ref": "#/components/parameters/ListIssuingAuthorizationsQuery.startDateTime" }, { "$ref": "#/components/parameters/ListIssuingAuthorizationsQuery.endDateTime" }, { "$ref": "#/components/parameters/ListIssuingAuthorizationsQuery.statuses" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuedCardAuthorization" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Issuing transactions" ], "x-speakeasy-name-override": "listAuthorizations", "x-speakeasy-group": "issuingTransactions" } }, "/issuing/{accountID}/authorizations/{authorizationID}": { "get": { "operationId": "getIssuedCardAuthorization", "description": "Retrieves details of an authorization associated with a specific Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which cards have been issued.", "schema": { "type": "string" } }, { "name": "authorizationID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssuedCardAuthorization" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Issuing transactions" ], "x-speakeasy-name-override": "getAuthorization", "x-speakeasy-group": "issuingTransactions" } }, "/issuing/{accountID}/authorizations/{authorizationID}/events": { "get": { "operationId": "listIssuedCardAuthorizationEvents", "description": "List card network and Moov platform events that affect the authorization and its hold on a wallet balance.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which cards have been issued.", "schema": { "type": "string" } }, { "name": "authorizationID", "in": "path", "required": true, "schema": { "type": "string" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuedCardAuthorizationEvent" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Issuing transactions" ], "x-speakeasy-name-override": "listAuthorizationEvents", "x-speakeasy-group": "issuingTransactions" } }, "/issuing/{accountID}/card-transactions": { "get": { "operationId": "listIssuedCardTransactions", "description": "List issued card transactions associated with a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which cards have been issued.", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "$ref": "#/components/parameters/ListIssuingTransactionsQuery.issuedCardID" }, { "$ref": "#/components/parameters/ListIssuingTransactionsQuery.startDateTime" }, { "$ref": "#/components/parameters/ListIssuingTransactionsQuery.endDateTime" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuedCardTransaction" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Issuing transactions" ], "x-speakeasy-name-override": "list", "x-speakeasy-group": "issuingTransactions" } }, "/issuing/{accountID}/card-transactions/{cardTransactionID}": { "get": { "operationId": "getIssuedCardTransaction", "description": "Retrieves details of an issued card transaction associated with a specific Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which cards have been issued.", "schema": { "type": "string" } }, { "name": "cardTransactionID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssuedCardTransaction" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Issuing transactions" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "transactions" } }, "/issuing/{accountID}/issued-cards": { "post": { "operationId": "requestCard", "description": "Request a virtual card be issued.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which the card is to be issued.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssuedCard" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestCardError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Card issuing" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestCard" } } } }, "x-speakeasy-name-override": "request", "x-speakeasy-group": "cardIssuing" }, "get": { "operationId": "listIssuedCards", "description": "List Moov issued cards existing for the account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which the cards have been issued.", "schema": { "type": "string" } }, { "$ref": "#/components/parameters/Pagination.skip" }, { "$ref": "#/components/parameters/Pagination.count" }, { "name": "states", "in": "query", "required": false, "description": "Optional, comma-separated states to filter the Moov list issued cards response. For example `active,pending-verification`", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuedCardState" } }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuedCard" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Card issuing" ], "x-speakeasy-name-override": "list", "x-speakeasy-group": "issuedCards" } }, "/issuing/{accountID}/issued-cards/{issuedCardID}": { "get": { "operationId": "getIssuedCard", "description": "Retrieve a single issued card associated with a Moov account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which the card was issued.", "schema": { "type": "string" } }, { "name": "issuedCardID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssuedCard" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Card issuing" ], "x-speakeasy-name-override": "getIssuedCard", "x-speakeasy-group": "cardIssuing" }, "patch": { "operationId": "updateIssuedCard", "description": "Update a Moov issued card.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)\nyou'll need to specify the `/accounts/{accountID}/issued-cards.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which the card was issued.", "schema": { "type": "string" } }, { "name": "issuedCardID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateIssuedCardError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Card issuing" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateIssuedCard" } } } }, "x-speakeasy-name-override": "update", "x-speakeasy-group": "cardIssuing" } }, "/issuing/{accountID}/issued-cards/{issuedCardID}/details": { "get": { "operationId": "getFullIssuedCard", "description": "Get issued card with PAN, CVV, and expiration. \n\nOnly use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/issued-cards.read-secure` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "accountID", "in": "path", "required": true, "description": "The Moov business account for which the card was issued.", "schema": { "type": "string" } }, { "name": "issuedCardID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FullIssuedCard" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Card issuing" ], "x-speakeasy-name-override": "getFull", "x-speakeasy-group": "cardIssuing" } }, "/oauth2/revoke": { "post": { "operationId": "revokeAccessToken", "description": "Revoke an auth token.\n\nAllows clients to notify the authorization server that a previously obtained refresh or access token is no longer needed.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevokeTokenRequestError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Authentication" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevokeTokenRequest" } }, "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/RevokeTokenRequest" } } } }, "x-speakeasy-name-override": "revokeToken" } }, "/oauth2/token": { "post": { "operationId": "createAccessToken", "description": "Create or refresh an access token.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthToken" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenRequestError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Authentication" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenRequest" } }, "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/AuthTokenRequest" } } } }, "x-speakeasy-name-override": "createToken" } }, "/onboarding-invites": { "post": { "operationId": "createOnboardingInvite", "description": "Create an invitation containing a unique link that allows the recipient to onboard their organization with Moov.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingInvite" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingInviteError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Onboarding" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingInviteRequest" } } } }, "x-speakeasy-name-override": "create", "x-speakeasy-group": "onboardingInvites" }, "get": { "operationId": "listOnboardingInvites", "description": "List all the onboarding invites created by the caller's account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OnboardingInvite" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Onboarding" ], "x-speakeasy-name-override": "listInvites" } }, "/onboarding-invites/{code}": { "get": { "operationId": "getOnboardingInvite", "description": "Retrieve details about an onboarding invite.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "code", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/OnboardingInviteCode" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingInvite" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Onboarding" ], "x-speakeasy-name-override": "getInvite" }, "delete": { "operationId": "revokeOnboardingInvite", "description": "Revoke an onboarding invite, rendering the invitation link unusable.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "code", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/OnboardingInviteCode" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Onboarding" ], "x-speakeasy-name-override": "revokeInvite" } }, "/ping": { "get": { "operationId": "ping", "description": "A simple endpoint to check auth.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/ping.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "Successfully able to hit the ping endpoint.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Ping" ], "x-speakeasy-name-override": "get" } }, "/receipts": { "post": { "operationId": "createReceipts", "description": " Create receipts for transfers and scheduled transfers.\n\n To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \n you'll need to specify the `/accounts/{accountID}/transfers.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ReceiptResponse" } } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReceiptValidationErrorResponse" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Receipts" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ReceiptRequest" } } } } }, "x-speakeasy-name-override": "create" }, "get": { "operationId": "listReceipts", "description": "List receipts by transferID, scheduleID, or occurrenceID.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/accounts/{accountID}/transfers.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "id", "in": "query", "required": true, "description": "The transfer, schedule, or transfer occurrence ID to filter receipts by.", "schema": { "type": "string" }, "explode": false } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ReceiptResponse" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Receipts" ], "x-speakeasy-name-override": "list" } }, "/terminal-applications": { "post": { "operationId": "createTerminalApplication", "description": "Create a new terminal application.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/terminal-applications.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalApplication" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalApplicationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Terminal Applications" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTerminalApplication" } } } }, "x-speakeasy-name-override": "create", "x-speakeasy-group": "terminalApplications" }, "get": { "operationId": "listTerminalApplications", "description": "List all the terminal applications for a Moov Account.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/terminal-applications.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TerminalApplication" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Terminal Applications" ], "x-speakeasy-name-override": "list", "x-speakeasy-group": "terminalApplications" } }, "/terminal-applications/{terminalApplicationID}": { "get": { "operationId": "getTerminalApplication", "description": "Fetch a specific terminal application.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/terminal-applications.read` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "terminalApplicationID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/TerminalApplicationID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalApplication" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Terminal Applications" ], "x-speakeasy-name-override": "get", "x-speakeasy-group": "terminalApplications" }, "delete": { "operationId": "deleteTerminalApplication", "description": "Delete a specific terminal application.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/terminal-applications.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "terminalApplicationID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/TerminalApplicationID" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Terminal Applications" ], "x-speakeasy-name-override": "delete", "x-speakeasy-group": "terminalApplications" } }, "/terminal-applications/{terminalApplicationID}/versions": { "post": { "operationId": "createTerminalApplicationVersion", "description": "Register a new version of a terminal application. For Android applications, this is used to register a new version code of the application.\n\nTo access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) \nyou'll need to specify the `/terminal-applications.write` scope.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "terminalApplicationID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/TerminalApplicationID" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalApplicationVersion" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalApplicationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Terminal Applications" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalApplicationVersion" } } } }, "x-speakeasy-name-override": "createVersion" } }, "/tos-token": { "get": { "operationId": "getTermsOfServiceToken", "description": "Generates a non-expiring token that can then be used to accept Moov's terms of service. \n\nThis token can only be generated via API. Any Moov account requesting the collect funds, send funds, wallet, \nor card issuing capabilities must accept Moov's terms of service, then have the generated terms of service \ntoken patched to the account. Read more in our [documentation](https://docs.moov.io/guides/accounts/requirements/platform-agreement/).", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "origin", "in": "header", "required": false, "description": "Indicates the domain from which the request originated. Required if referer header is not present.", "schema": { "type": "string" } }, { "name": "referer", "in": "header", "required": false, "description": "Specifies the URL of the resource from which the request originated. Required if origin header is not present.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TermsOfServiceToken" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Accounts" ] } }, "/webhooks": { "get": { "operationId": "listWebhooks", "description": "List all webhooks configured for the account.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Webhook" } } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "x-speakeasy-name-override": "list" }, "post": { "operationId": "createWebhook", "description": "Create a new webhook for the account.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ], "responses": { "201": { "description": "The resource was successfully created.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Webhook" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWebhookValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWebhook" } } } }, "x-speakeasy-name-override": "create" } }, "/webhooks/{webhookID}": { "get": { "operationId": "getWebhook", "description": "Get details of a specific webhook.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "webhookID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Webhook" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "x-speakeasy-name-override": "get" }, "put": { "operationId": "updateWebhook", "description": "Update an existing webhook.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "webhookID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Webhook" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "422": { "description": "The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWebhookValidationError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWebhook" } } } }, "x-speakeasy-name-override": "update" }, "delete": { "operationId": "disableWebhook", "description": "Disable a webhook. Disabled webhooks will no longer receive events.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "webhookID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The request completed successfully, but there is no content to return.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "400": { "description": "The server could not understand the request due to invalid syntax.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "409": { "description": "The request conflicted with the current state of the target resource.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenericError" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "x-speakeasy-name-override": "disable" } }, "/webhooks/{webhookID}/ping": { "post": { "operationId": "pingWebhook", "description": "Send a test ping to a webhook to verify it is configured correctly.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "webhookID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PingResponse" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "x-speakeasy-name-override": "ping" } }, "/webhooks/{webhookID}/secret": { "get": { "operationId": "getWebhookSecret", "description": "Get the secret key for verifying webhook payloads.", "parameters": [ { "$ref": "#/components/parameters/VersionHeader" }, { "name": "webhookID", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The request completed successfully.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookSecret" } } } }, "401": { "description": "The request contained missing or expired authentication.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "403": { "description": "The user is not authorized to make the request.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "404": { "description": "The requested resource was not found.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "429": { "description": "Request was refused due to rate limiting.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "500": { "description": "The request failed due to an unexpected error.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } }, "504": { "description": "The request failed because a downstream service failed to respond.", "headers": { "x-request-id": { "required": true, "description": "A unique identifier used to trace requests.", "schema": { "type": "string" } } } } }, "tags": [ "Webhooks" ], "x-speakeasy-name-override": "getSecret" } } }, "security": [ { "BasicAuth": [] } ], "components": { "parameters": { "AccountsQuery.capability": { "name": "capability", "in": "query", "required": false, "description": " Filter connected accounts by the capability.", "schema": { "$ref": "#/components/schemas/CapabilityID" }, "explode": false }, "AccountsQuery.capabilityStatus": { "name": "capabilityStatus", "in": "query", "required": false, "description": " Filter connected accounts by the capability.", "schema": { "$ref": "#/components/schemas/CapabilityStatus" }, "explode": false }, "AccountsQuery.email": { "name": "email", "in": "query", "required": false, "description": " Filter connected accounts by email address.\n\n Provide the full email address to filter by email.", "schema": { "type": "string" }, "explode": false }, "AccountsQuery.foreignID": { "name": "foreignID", "in": "query", "required": false, "description": " Serves as an optional alias from a foreign/external system which can be used to reference this resource.", "schema": { "type": "string", "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+" }, "explode": false }, "AccountsQuery.includeDisconnected": { "name": "includeDisconnected", "in": "query", "required": false, "description": "Filter disconnected accounts.\n\nIf true, the response will include disconnected accounts.", "schema": { "type": "boolean" }, "explode": false }, "AccountsQuery.name": { "name": "name", "in": "query", "required": false, "description": "Filter connected accounts by name.\n\nIf provided, this query will attempt to find matches against the following Account and Profile fields:\n\n\nFiltering by Guest Profile `name` is not currently supported.", "schema": { "type": "string" }, "explode": false }, "AccountsQuery.type": { "name": "type", "in": "query", "required": false, "description": " Filter connected accounts by AccountType.\n\n If the `type` parameter is used in combination with `name`, only the corresponding type's name fields will\n be searched. For example, if `type=business` and `name=moov`, the search will attempt to find matches against\n the display name and Business Profile name fields (`legalBusinessName`, and `doingBusinessAs`).\n\n Filtering by `type=guest` is not currently supported.", "schema": { "$ref": "#/components/schemas/CreateAccountType" }, "explode": false }, "CursorPagination.count": { "name": "count", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/Count", "default": 200 }, "explode": false }, "CursorPagination.cursor": { "name": "cursor", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/Cursor" }, "explode": false }, "DisputeListFilters.cardholderAccountID": { "name": "cardholderAccountID", "in": "query", "required": false, "description": "Optional parameter to filter by cardholder account ID.", "schema": { "type": "string" }, "explode": false }, "DisputeListFilters.disputeIDs": { "name": "disputeIDs", "in": "query", "required": false, "description": "Optional parameter to filter by a comma separated list of dispute IDs.", "schema": { "type": "array", "items": { "type": "string" } }, "explode": false }, "DisputeListFilters.endDateTime": { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time parameter to filter all disputes created on and before the provided date and time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "DisputeListFilters.merchantAccountID": { "name": "merchantAccountID", "in": "query", "required": false, "description": "Optional parameter to filter by merchant account ID.", "schema": { "type": "string" }, "explode": false }, "DisputeListFilters.orderBy": { "name": "orderBy", "in": "query", "required": false, "schema": { "type": "string" }, "explode": false }, "DisputeListFilters.respondEndDateTime": { "name": "respondEndDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all disputes with respond by before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "DisputeListFilters.respondStartDateTime": { "name": "respondStartDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all disputes with respond by before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "DisputeListFilters.startDateTime": { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time parameter to filter all disputes created on and after the provided date and time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "DisputeListFilters.status": { "name": "status", "in": "query", "required": false, "description": "Optional dispute status by which to filter the disputes.", "schema": { "$ref": "#/components/schemas/DisputeStatus" }, "explode": false }, "DisputeListFilters.transferIDs": { "name": "transferIDs", "in": "query", "required": false, "description": "Optional parameter to filter by a comma separated list of transfer IDs.", "schema": { "type": "array", "items": { "type": "string" } }, "explode": false }, "EnrichedAddressFilters.excludeStates": { "name": "excludeStates", "in": "query", "required": false, "description": "Exclude list of states from results. No `include` pararmeters may be used with this parameter.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.includeCities": { "name": "includeCities", "in": "query", "required": false, "description": "Limits results to a list of given cities.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.includeStates": { "name": "includeStates", "in": "query", "required": false, "description": "Limits results to a list of given states.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.includeZipcodes": { "name": "includeZipcodes", "in": "query", "required": false, "description": "Limits results to a list of given zipcodes.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.maxResults": { "name": "maxResults", "in": "query", "required": false, "description": "Maximum number of results to return.", "schema": { "type": "integer" }, "explode": false }, "EnrichedAddressFilters.preferCities": { "name": "preferCities", "in": "query", "required": false, "description": "Display results with the listed cities at the top.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.preferGeolocation": { "name": "preferGeolocation", "in": "query", "required": false, "description": " If omitted or set to `city`, it uses the sender's IP address to determine location, then automatically adds the city and state \n to the preferCities value. This parameter takes precedence over other `include` or `exclude` parameters meaning that if it is \n not set to `none`, you may see addresses from areas you do not wish to see.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.preferRatio": { "name": "preferRatio", "in": "query", "required": false, "description": "Specifies the percentage of address suggestions that should be preferred and will appear at the top of the results.", "schema": { "type": "integer" }, "explode": false }, "EnrichedAddressFilters.preferStates": { "name": "preferStates", "in": "query", "required": false, "description": "Display results with the listed states at the top.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.preferZipcodes": { "name": "preferZipcodes", "in": "query", "required": false, "description": "Display results with the listed zipcodes at the top.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.search": { "name": "search", "in": "query", "required": true, "description": "Partial or complete address to search.", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.selected": { "name": "selected", "in": "query", "required": false, "description": "Useful for narrowing results with `addressLine2` suggestions such as `Apt` (denotes an apartment building with multiple residences).", "schema": { "type": "string" }, "explode": false }, "EnrichedAddressFilters.source": { "name": "source", "in": "query", "required": false, "description": "Include results from alternate data sources. Allowed values are `all` (non-postal addresses), or `postal` (postal addresses only).", "schema": { "type": "string" }, "explode": false }, "InstitutionSearchFilters.limit": { "name": "limit", "in": "query", "required": false, "description": "Maximum results returned by a search.", "schema": { "type": "integer" }, "explode": false }, "InstitutionSearchFilters.name": { "name": "name", "in": "query", "required": false, "description": "Name of the financial institution. Either `name` or `routingNumber` is required.", "schema": { "type": "string" }, "explode": false }, "InstitutionSearchFilters.routingNumber": { "name": "routingNumber", "in": "query", "required": false, "description": "Routing number for a financial institution. Either `routingNumber` or `name` is required.", "schema": { "type": "string" }, "explode": false }, "InstitutionsFilters.limit": { "name": "limit", "in": "query", "required": false, "description": "Maximum results returned by a search.", "schema": { "type": "integer" }, "explode": false }, "InstitutionsFilters.name": { "name": "name", "in": "query", "required": false, "description": "Name of the financial institution. Either `name` or `routingNumber` is required.", "schema": { "type": "string" }, "explode": false }, "InstitutionsFilters.routingNumber": { "name": "routingNumber", "in": "query", "required": false, "description": "Routing number for a financial institution. Either `routingNumber` or `name` is required.", "schema": { "type": "string" }, "explode": false }, "InstitutionsFilters.state": { "name": "state", "in": "query", "required": false, "description": "The state where a financial institution is based.", "schema": { "type": "string" }, "explode": false }, "ListIssuingAuthorizationsQuery.endDateTime": { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all authorizations created before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListIssuingAuthorizationsQuery.issuedCardID": { "name": "issuedCardID", "in": "query", "required": false, "description": "Optional ID of the issued card to filter results.", "schema": { "type": "string" }, "explode": false }, "ListIssuingAuthorizationsQuery.startDateTime": { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time which inclusively filters all authorizations created after this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListIssuingAuthorizationsQuery.statuses": { "name": "statuses", "in": "query", "required": false, "description": "Optional, comma-separated statuses of the authorization to filter results.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuingAuthorizationStatus" } }, "explode": false }, "ListIssuingTransactionsQuery.endDateTime": { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all card transactions created before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListIssuingTransactionsQuery.issuedCardID": { "name": "issuedCardID", "in": "query", "required": false, "description": "Optional ID of the issued card to filter results.", "schema": { "type": "string" }, "explode": false }, "ListIssuingTransactionsQuery.startDateTime": { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time which inclusively filters all card transactions created after this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListTransactionsQuery.completedEndDateTime": { "name": "completedEndDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all transactions completed before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListTransactionsQuery.completedStartDateTime": { "name": "completedStartDateTime", "in": "query", "required": false, "description": "Optional date-time which inclusively filters all transactions completed after this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListTransactionsQuery.createdEndDateTime": { "name": "createdEndDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all transactions created before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListTransactionsQuery.createdStartDateTime": { "name": "createdStartDateTime", "in": "query", "required": false, "description": "Optional date-time which inclusively filters all transactions created after this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "ListTransactionsQuery.sourceID": { "name": "sourceID", "in": "query", "required": false, "description": "Optional parameter to filter by source ID.", "schema": { "type": "string" }, "explode": false }, "ListTransactionsQuery.sourceType": { "name": "sourceType", "in": "query", "required": false, "description": "Optional parameter to filter by source type (i.e. transfer, dispute, issuing-transaction).", "schema": { "$ref": "#/components/schemas/WalletTransactionSourceType" }, "explode": false }, "ListTransactionsQuery.status": { "name": "status", "in": "query", "required": false, "description": "Optional parameter to filter by status (`pending` or `completed`).", "schema": { "$ref": "#/components/schemas/WalletTransactionStatus" }, "explode": false }, "ListTransactionsQuery.sweepID": { "name": "sweepID", "in": "query", "required": false, "description": "Optional ID to filter for transactions accrued in a sweep.", "schema": { "$ref": "#/components/schemas/SweepID" }, "explode": false }, "ListTransactionsQuery.transactionType": { "name": "transactionType", "in": "query", "required": false, "description": "Optional parameter to filter by transaction type.", "schema": { "$ref": "#/components/schemas/WalletTransactionType" }, "explode": false }, "ListTransactionsQuery.transactionTypes": { "name": "transactionTypes", "in": "query", "required": false, "description": "Optional, comma-separated parameter to filter by transaction types.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WalletTransactionType" } }, "explode": false }, "ListTransactionsQuery.walletID": { "name": "walletID", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/WalletID" } }, "Pagination.count": { "name": "count", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/Count", "default": 200 }, "explode": false }, "Pagination.skip": { "name": "skip", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/Skip" }, "explode": false }, "PaymentLinkListFilters.types": { "name": "types", "in": "query", "required": false, "description": "A comma-separated list of payment link types to filter results.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentLinkType" } }, "explode": false }, "StatementListFilters.billingPeriodEndDateTime": { "name": "billingPeriodEndDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all statements where billing period is before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "StatementListFilters.billingPeriodStartDateTime": { "name": "billingPeriodStartDateTime", "in": "query", "required": false, "description": "Optional date-time which inclusively filters all statements where billing period is on or after this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "TicketListFilters.foreignID": { "name": "foreignID", "in": "query", "required": false, "schema": { "type": "string" }, "explode": false }, "TicketListFilters.status": { "name": "status", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/TicketStatus" }, "explode": false }, "TransferListFilters.accountIDs": { "name": "accountIDs", "in": "query", "required": false, "description": "Optional, comma-separated account IDs by which the response is filtered based on whether the account ID is the source or destination.", "schema": { "type": "array", "items": { "type": "string" } }, "explode": false }, "TransferListFilters.disputed": { "name": "disputed", "in": "query", "required": false, "description": "Optional parameter to only return disputed transfers.", "schema": { "type": "boolean" }, "explode": false }, "TransferListFilters.endDateTime": { "name": "endDateTime", "in": "query", "required": false, "description": "Optional date-time which exclusively filters all transfers created before this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "TransferListFilters.foreignID": { "name": "foreignID", "in": "query", "required": false, "description": "Optional alias from a foreign/external system which can be used to reference this resource.", "schema": { "type": "string" }, "explode": false }, "TransferListFilters.groupID": { "name": "groupID", "in": "query", "required": false, "description": "Optional ID to filter for transfers in the same group.", "schema": { "type": "string" }, "explode": false }, "TransferListFilters.paymentLinkCode": { "name": "paymentLinkCode", "in": "query", "required": false, "description": "Optional code to filter for transfers associated with the payment link.", "schema": { "type": "string" }, "explode": false }, "TransferListFilters.refunded": { "name": "refunded", "in": "query", "required": false, "description": "Optional parameter to only return refunded transfers.", "schema": { "type": "boolean" }, "explode": false }, "TransferListFilters.scheduleID": { "name": "scheduleID", "in": "query", "required": false, "description": "Optional ID to filter for transfer occurrences belonging to the same schedule.", "schema": { "type": "string" }, "explode": false }, "TransferListFilters.startDateTime": { "name": "startDateTime", "in": "query", "required": false, "description": "Optional date-time which inclusively filters all transfers created after this date-time.", "schema": { "type": "string", "format": "date-time" }, "explode": false }, "TransferListFilters.status": { "name": "status", "in": "query", "required": false, "description": "Optional parameter for filtering transfers by status.", "schema": { "$ref": "#/components/schemas/TransferStatus" }, "explode": false }, "VersionHeader": { "name": "X-Moov-Version", "in": "header", "required": false, "description": "Specify an API version.\n\nAPI versioning follows the format `vYYYY.QQ.BB`, where \n - `YYYY` is the year\n - `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)\n - `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter. \n - For example, `v2024.01.00` is the initial release of the first quarter of 2024.\n\nThe `dev` version represents the most recent development state. It may include breaking changes and should be treated as a beta release.\nWhen no version is specified, the API defaults to `v2024.01.00`.", "schema": { "type": "string", "x-speakeasy-globals-hidden": true }, "x-speakeasy-globals-hidden": true }, "WalletListFilters.status": { "name": "status", "in": "query", "required": false, "description": "Optional parameter for filtering wallets by status.", "schema": { "$ref": "#/components/schemas/WalletStatus" }, "explode": false }, "WalletListFilters.walletType": { "name": "walletType", "in": "query", "required": false, "description": "Optional parameter for filtering wallets by type.", "schema": { "$ref": "#/components/schemas/WalletType" }, "explode": false } }, "schemas": { "ACHCompanyEntryDescription": { "type": "string", "minLength": 4, "maxLength": 10, "description": "An optional override of the default NACHA company entry description for a transfer.", "example": "Gym dues" }, "ACHException": { "type": "object", "properties": { "code": { "type": "string" }, "reason": { "type": "string" }, "description": { "type": "string" } } }, "ACHFees": { "type": "object", "required": [ "standardCredit", "sameDayCredit", "debits", "return", "unauthorizedReturn", "noticeOfChange", "bankAccountVerification", "total" ], "properties": { "standardCredit": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for standard credit transfers." }, "sameDayCredit": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for same-day credit transfers." }, "debits": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for debit transfers." }, "return": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for authorized returns." }, "unauthorizedReturn": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for unauthorized returns." }, "noticeOfChange": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for notices of change." }, "bankAccountVerification": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for successful bank account verifications via Plaid or MX." }, "total": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Total ACH fees." } }, "description": "A detailed breakdown of ACH fees." }, "ACHInstitution": { "type": "object", "required": [ "name", "routingNumber" ], "properties": { "name": { "type": "string", "description": "Name of the financial institution.", "example": "First Citizens" }, "routingNumber": { "type": "string", "maxLength": 9, "example": "123456789" }, "address": { "$ref": "#/components/schemas/Address" }, "contact": { "$ref": "#/components/schemas/Contact" } } }, "ACHOriginatingCompanyName": { "type": "string", "minLength": 4, "maxLength": 16, "description": "An optional override of the default NACHA company name for a transfer.", "example": "Whole Body Fit" }, "ACHPaymentDetails": { "type": "object", "properties": { "companyEntryDescription": { "$ref": "#/components/schemas/ACHCompanyEntryDescription" }, "originatingCompanyName": { "$ref": "#/components/schemas/ACHOriginatingCompanyName" } }, "description": "Options for payment links used to collect an ACH payment." }, "ACHPaymentDetailsError": { "type": "object", "properties": { "companyEntryDescription": { "type": "string" }, "originatingCompanyName": { "type": "string" } } }, "ACHPaymentSettings": { "type": "object", "required": [ "companyName" ], "properties": { "companyName": { "type": "string", "minLength": 1, "maxLength": 16, "pattern": "[a-zA-Z0-9- ]+", "description": "The description that shows up on ACH transactions. This will default to the account's display name on account creation.", "example": "WholeBodyFitness" } } }, "ACHReturnCode": { "type": "string", "enum": [ "R02", "R03", "R04", "R05", "R07", "R08", "R10", "R11", "R12", "R13", "R14", "R15", "R16", "R17", "R20", "R23", "R29", "R34", "R38", "R39" ], "description": "The return code of an ACH transaction that caused the bank account status to change.\n\n- R02: Account Closed\n- R03: No Account/Unable to Locate Account\n- R04: Invalid Account Number\n- R05: Improper Debit to Consumer Account\n- R07: Authorization Revoked by Customer\n- R08: Payment Stopped\n- R10: Customer Advises Originator is Not Known or Authorized to Receiver\n- R11: Customer Advises Entry Not in Accordance with the Terms of the Authorization\n- R12: Branch Sold to Another DFI\n- R13: RDFI not qualified to participate\n- R14: Representative payee deceased or unable to continue in that capacity\n- R15: Beneficiary or bank account holder\n- R16: Bank account frozen\n- R17: Entry with Invalid Account Number Initiated Under Questionable Circumstances\n- R20: Non-payment bank account\n- R23: Credit entry refused by receiver\n- R29: Corporate customer advises not authorized\n- R34: Limited participation RDFI\n- R38: Stop Payment on Source Document (Adjustment Entry)\n- R39: Improper Source Document" }, "ACHTransactionDetails": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/ACHTransactionStatus" }, "traceNumber": { "type": "string", "maxLength": 15, "example": "124782618117" }, "return": { "$ref": "#/components/schemas/ACHException" }, "correction": { "$ref": "#/components/schemas/ACHException" }, "companyEntryDescription": { "$ref": "#/components/schemas/ACHCompanyEntryDescription" }, "originatingCompanyName": { "$ref": "#/components/schemas/ACHOriginatingCompanyName" }, "secCode": { "$ref": "#/components/schemas/SECCode" }, "canceledOn": { "type": "string", "format": "date-time" }, "initiatedOn": { "type": "string", "format": "date-time" }, "originatedOn": { "type": "string", "format": "date-time" }, "correctedOn": { "type": "string", "format": "date-time" }, "returnedOn": { "type": "string", "format": "date-time" }, "failedOn": { "type": "string", "format": "date-time" }, "completedOn": { "type": "string", "format": "date-time" }, "debitHoldPeriod": { "$ref": "#/components/schemas/DebitHoldPeriod" }, "addenda": { "type": "array", "items": { "$ref": "#/components/schemas/TransferACHAddendaRecord" } } }, "description": "ACH specific details about the transaction." }, "ACHTransactionStatus": { "type": "string", "enum": [ "", "initiated", "originated", "corrected", "returned", "completed", "canceled" ], "description": "Status of a transaction within the ACH lifecycle." }, "AccentColor": { "type": "string", "description": "A CSS hex color representing an accent color.", "example": "#111111" }, "AccessToken": { "type": "string", "maxLength": 4096, "description": "A value passed to the authorization server to gain access to the system.", "example": "eyJhbGciOiJFZERTQSIsImN0eSI6IkpXVCIsImtpZCI6IkR..." }, "Account": { "type": "object", "required": [ "accountID", "mode", "accountType", "displayName", "profile", "verification", "createdOn", "updatedOn" ], "properties": { "accountID": { "type": "string", "description": "Unique identifier for this account.", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "mode": { "$ref": "#/components/schemas/Mode" }, "accountType": { "$ref": "#/components/schemas/AccountType" }, "displayName": { "type": "string", "maxLength": 64, "example": "Whole Body Fitness" }, "profile": { "$ref": "#/components/schemas/Profile" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "termsOfService": { "$ref": "#/components/schemas/TermsOfService" }, "capabilities": { "type": "array", "items": { "$ref": "#/components/schemas/AccountCapability" } }, "verification": { "$ref": "#/components/schemas/Verification" }, "foreignID": { "type": "string", "maxLength": 64, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "description": "Optional alias from a foreign/external system which can be used to reference this resource." }, "customerSupport": { "$ref": "#/components/schemas/CustomerSupport" }, "settings": { "$ref": "#/components/schemas/Settings" }, "createdOn": { "type": "string", "format": "date-time", "example": "2024-05-06T12:20:38.184Z" }, "updatedOn": { "type": "string", "format": "date-time", "example": "2024-05-06T12:20:38.184Z" }, "disconnectedOn": { "type": "string", "format": "date-time", "example": "2024-05-06T12:20:38.184Z" } }, "example": { "mode": "sandbox", "accountID": "53ca67ea-6fd3-423f-9544-ce2404159d33", "accountType": "business", "displayName": "Whole Body Fitness LLC", "profile": { "business": { "legalBusinessName": "Whole Body Fitness LLC", "ownersProvided": false } }, "verification": { "verificationStatus": "unverified", "status": "unverified" }, "settings": { "cardPayment": { "statementDescriptor": "Whole Body Fitness LLC" }, "achPayment": { "companyName": "Whole Body Fitne" } }, "createdOn": "2024-12-16T17:55:20.557151867Z", "updatedOn": "2024-12-16T17:55:20.557151867Z" } }, "AccountCapability": { "type": "object", "required": [ "capability", "status" ], "properties": { "capability": { "type": "string" }, "status": { "type": "string" } }, "description": "Describes an action or set of actions that an account is permitted to perform." }, "AccountCountries": { "type": "object", "required": [ "countries" ], "properties": { "countries": { "type": "array", "items": { "$ref": "#/components/schemas/OperatingCountry" } } }, "description": "The countries in which an account operates." }, "AccountFees": { "type": "object", "required": [ "walletFee", "merchantPCIFee", "invoicePaymentFee", "total" ], "properties": { "walletFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees associated with wallet services." }, "merchantPCIFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees for PCI compliance." }, "invoicePaymentFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees for invoice payments." }, "kybFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees for business verification." }, "kycFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees for customer verification." }, "transactionMonitoringFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees for transaction risk monitoring." }, "total": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total platform fees." } }, "description": "A detailed breakdown of account fees." }, "AccountNameVerification": { "type": "object", "properties": { "firstName": { "$ref": "#/components/schemas/CardVerificationResult" }, "lastName": { "$ref": "#/components/schemas/CardVerificationResult" }, "middleName": { "$ref": "#/components/schemas/CardVerificationResult" }, "fullName": { "$ref": "#/components/schemas/CardVerificationResult" } }, "description": "The results of submitting cardholder name to a card network for verification.", "example": { "firstName": "match", "lastName": "match", "middleName": "match", "fullName": "match" } }, "AccountTerminalApplication": { "type": "object", "required": [ "accountID", "terminalApplicationID" ], "properties": { "accountID": { "$ref": "#/components/schemas/MerchantAccountID" }, "terminalApplicationID": { "$ref": "#/components/schemas/TerminalApplicationID" } }, "description": "Describes link between an account and a terminal application." }, "AccountTerminalApplicationError": { "type": "object", "properties": { "terminalApplicationID": { "type": "string" } } }, "AccountTerminalApplicationList": { "type": "array", "items": { "$ref": "#/components/schemas/AccountTerminalApplication" }, "description": "Describes a list of account terminal applications.", "example": [ { "accountID": "76d4c8a0-1f2b-4e3b-8f5c-7a9e1b2c3d4e", "terminalApplicationID": "12345678-1234-1234-1234-123456789012" } ] }, "AccountType": { "type": "string", "enum": [ "individual", "business", "guest" ], "description": "The type of entity represented by this account.", "example": "business" }, "AccountVerificationStatus": { "type": "string", "enum": [ "unverified", "pending", "resubmit", "review", "verified", "failed" ], "description": "Possible states an account verification can be in.", "deprecated": true }, "AchCreditSameDayPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-credit-same-day" ] }, "bankAccount": { "$ref": "#/components/schemas/PaymentMethodsBankAccount" } }, "title": "ACH credit same day" }, "AchCreditSameDayTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-credit-same-day" ] }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" } }, "title": "ACH credit same day" }, "AchCreditStandardPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-credit-standard" ] }, "bankAccount": { "$ref": "#/components/schemas/PaymentMethodsBankAccount" } }, "title": "ACH credit standard" }, "AchCreditStandardTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-credit-standard" ] }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" } }, "title": "ACH credit standard" }, "AchDebitCollectPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-debit-collect" ] }, "bankAccount": { "$ref": "#/components/schemas/PaymentMethodsBankAccount" } }, "title": "ACH debit collect" }, "AchDebitCollectTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-debit-collect" ] }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" } }, "title": "ACH debit collect" }, "AchDebitFundPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-debit-fund" ] }, "bankAccount": { "$ref": "#/components/schemas/PaymentMethodsBankAccount" } }, "title": "ACH debit fund" }, "AchDebitFundTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "ach-debit-fund" ] }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" } }, "title": "ACH debit fund" }, "AchLocation": { "type": "object", "required": [ "address", "city", "postalCode", "postalCodeExtension", "state" ], "properties": { "address": { "type": "string", "maxLength": 32, "example": "123 Main Street" }, "city": { "type": "string", "maxLength": 24, "example": "Boulder" }, "postalCode": { "type": "string", "maxLength": 5, "example": "80301" }, "postalCodeExtension": { "type": "string", "maxLength": 4, "example": "0000" }, "state": { "type": "string", "maxLength": 24, "example": "Colorado" } } }, "AchParticipant": { "type": "object", "required": [ "achLocation", "customerName", "newRoutingNumber", "officeCode", "phoneNumber", "recordTypeCode", "revised", "routingNumber", "servicingFRBNumber", "statusCode", "viewCode", "cleanName", "logo" ], "properties": { "achLocation": { "$ref": "#/components/schemas/AchLocation" }, "customerName": { "type": "string", "example": "Main Street Bank" }, "newRoutingNumber": { "type": "string", "maxLength": 9, "example": "987654321" }, "officeCode": { "type": "string", "example": "0" }, "phoneNumber": { "type": "string", "example": "1234567789" }, "recordTypeCode": { "type": "string", "example": "1" }, "revised": { "type": "string", "example": "041921" }, "routingNumber": { "type": "string", "maxLength": 9, "example": "123456789" }, "servicingFRBNumber": { "type": "string", "example": "123456789" }, "statusCode": { "type": "string", "example": "1" }, "viewCode": { "type": "string", "example": "1" }, "cleanName": { "type": "string", "example": "Main Street Bank" }, "logo": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/InstitutionLogo" } ], "nullable": true, "example": { "name": "Main Street Bank", "url": "https://www.mainstreetbank.com/logo.png" } } } }, "AddCapabilities": { "type": "object", "required": [ "capabilities" ], "properties": { "capabilities": { "type": "array", "items": { "$ref": "#/components/schemas/CapabilityID" } } } }, "AddCapabilitiesError": { "type": "object", "properties": { "error": { "type": "string" }, "capabilities": { "type": "object", "additionalProperties": { "type": "string" } } } }, "Address": { "type": "object", "required": [ "addressLine1", "city", "stateOrProvince", "postalCode", "country" ], "properties": { "addressLine1": { "type": "string", "maxLength": 60, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "123 Main Street" }, "addressLine2": { "type": "string", "maxLength": 32, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "Apt 302" }, "city": { "type": "string", "maxLength": 32, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "Boulder" }, "stateOrProvince": { "type": "string", "maxLength": 2, "example": "CO" }, "postalCode": { "type": "string", "maxLength": 5, "example": "80301" }, "country": { "type": "string", "maxLength": 2, "example": "US" } } }, "AddressError": { "type": "object", "properties": { "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "stateOrProvince": { "type": "string" }, "postalCode": { "type": "string" }, "country": { "type": "string" } } }, "AddressSuggestion": { "type": "object", "properties": { "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "entries": { "type": "integer", "description": "The number of units at an address. For example the number of apartments or businesses in a building." }, "postalCode": { "type": "string" }, "stateOrProvince": { "type": "string" } } }, "AddressUpdate": { "type": "object", "properties": { "addressLine1": { "type": "string", "maxLength": 60, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "123 Main Street" }, "addressLine2": { "type": "string", "maxLength": 32, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "Apt 302" }, "city": { "type": "string", "maxLength": 32, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "Boulder" }, "stateOrProvince": { "type": "string", "maxLength": 2, "example": "CO" }, "postalCode": { "type": "string", "maxLength": 5, "example": "80301" }, "country": { "type": "string", "maxLength": 2, "example": "US" } } }, "Adjustment": { "type": "object", "required": [ "adjustmentID", "walletID", "amount", "createdOn" ], "properties": { "adjustmentID": { "type": "string" }, "walletID": { "type": "string" }, "amount": { "$ref": "#/components/schemas/AmountDecimal" }, "createdOn": { "type": "string", "format": "date-time" } }, "description": "An adjustment to a wallet." }, "Amount": { "type": "object", "required": [ "currency", "value" ], "properties": { "currency": { "$ref": "#/components/schemas/Currency" }, "value": { "type": "integer", "format": "int64", "description": "Quantity in the smallest unit of the specified currency. \n\nIn USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.", "example": 1204 } } }, "AmountDecimal": { "type": "object", "required": [ "currency", "valueDecimal" ], "properties": { "currency": { "$ref": "#/components/schemas/Currency" }, "valueDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "A decimal-formatted numerical string that represents up to 9 decimal place precision. \n\nFor example, $12.987654321 is '12.987654321'.", "example": "12.987654321" } } }, "AmountDecimalValidationError": { "type": "object", "properties": { "currency": { "type": "string" }, "valueDecimal": { "type": "string" } } }, "AmountUpdate": { "type": "object", "properties": { "currency": { "$ref": "#/components/schemas/Currency" }, "value": { "type": "integer", "format": "int64", "description": "Quantity in the smallest unit of the specified currency. \n\nIn USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.", "example": 1204 } } }, "AmountValidationError": { "type": "object", "properties": { "currency": { "type": "string" }, "value": { "type": "string" } } }, "AppleBillingContact": { "type": "object", "properties": { "addressLines": { "type": "array", "items": { "type": "string" }, "description": "Address lines 1 and 2 for the contact.", "example": [ "123 Sesame Street" ] }, "locality": { "type": "string", "description": "The contact's city.", "example": "Phoenix" }, "postalCode": { "type": "string", "description": "The contact's postal code.", "example": "30345" }, "administrativeArea": { "type": "string", "description": "The contact's two-letter state code.", "example": "AZ" }, "countryCode": { "type": "string", "description": "The contact's two-letter ISO 3166", "example": "US" } }, "description": " Billing contact information as returned from Apple Pay.\n \n Refer to [Apple's documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentcontact) \n for more information." }, "ApplePayHeader": { "type": "object", "required": [ "publicKeyHash", "transactionId" ], "properties": { "ephemeralPublicKey": { "type": "string", "description": "Base64-encoded ephemeral public key, used for ECC-encrypted payment data.", "example": "MFkwEK...Md==" }, "publicKeyHash": { "type": "string", "description": "A base64-encoded, SHA-256 hash of the merchant's public key.", "example": "l0CnXdMv...D1I=" }, "transactionId": { "type": "string", "description": "A device-generated identifier for the transaction.", "example": "32b...4f3" } }, "description": "Information needed to decrypt Apple Pay payment data.\n\nRefer to [Apple's documentation](https://developer.apple.com/documentation/passkit/payment-token-format-reference#Header-keys-and-values) \nfor more information." }, "ApplePayMerchantDomains": { "type": "object", "required": [ "accountID", "displayName", "domains", "createdOn", "updatedOn" ], "properties": { "accountID": { "type": "string" }, "displayName": { "$ref": "#/components/schemas/DomainDisplayName" }, "domains": { "type": "array", "items": { "type": "string" }, "description": "A unique list of fully-qualified, top-level or sub-domain names where you will accept Apple Pay.", "example": [ "checkout.classbooker.dev" ] }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" } } }, "ApplePayPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "applePay" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "apple-pay" ] }, "applePay": { "$ref": "#/components/schemas/ApplePayResponse" } }, "title": "Apple Pay" }, "ApplePayResponse": { "type": "object", "required": [ "brand", "cardType", "cardDisplayName", "fingerprint", "expiration", "dynamicLastFour" ], "properties": { "brand": { "$ref": "#/components/schemas/CardBrand" }, "cardType": { "$ref": "#/components/schemas/CardType" }, "cardDisplayName": { "type": "string", "description": " User-friendly name of the tokenized card returned by Apple.\n \n It usually contains the brand and the last four digits of the underlying card.\n There is no standard format.", "example": "Visa 1256" }, "fingerprint": { "$ref": "#/components/schemas/CardFingerprint" }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "dynamicLastFour": { "type": "string", "description": "The last four digits of the Apple Pay token, which may differ from the tokenized card's last four digits." }, "issuerCountry": { "type": "string", "description": "Country where the underlying card was issued.", "example": "US" } }, "description": "Describes an Apple Pay token on a Moov account." }, "ApplePaySession": { "type": "string", "description": "Stringified session object returned from Apple Pay.\n\nThe string value should be deserialized as a JSON object before passing to Apple.", "example": "{\"epochTimestamp\":1733783167685,\"expiresAt\":1733786767685...}" }, "ApplePayTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "applePay" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "apple-pay" ] }, "applePay": { "$ref": "#/components/schemas/ApplePayResponse" } }, "title": "Apple Pay" }, "ApplicationScope": { "type": "string", "enum": [ "accounts.read", "accounts.write", "analytics.read", "apple-pay-merchant.read", "apple-pay-merchant.write", "apple-pay.read", "apple-pay.write", "bank-accounts.read", "bank-accounts.write", "capabilities.read", "capabilities.write", "cards.read", "cards.write", "documents.read", "documents.write", "fed.read", "files.read", "files.write", "issued-cards.read", "issued-cards.write", "issued-cards.read-secure", "payment-methods.read", "ping.read", "profile-enrichment.read", "profile.read", "profile.write", "profile.disconnect", "representatives.read", "representatives.write", "transfers.read", "transfers.write", "wallets.read" ], "description": "A permission that the application requests on another account." }, "ArrayValidationError": { "type": "object", "additionalProperties": { "type": "string" }, "example": { "0": "first element failed validation..." } }, "AssignCountriesError": { "type": "object", "required": [ "countries" ], "properties": { "countries": { "type": "object", "additionalProperties": { "type": "string" } } } }, "AssignProductImage": { "type": "object", "required": [ "imageID" ], "properties": { "imageID": { "$ref": "#/components/schemas/ProductImageID" } } }, "AssignProductImageValidationError": { "type": "object", "properties": { "imageID": { "type": "string" } } }, "AssignProductImages": { "type": "array", "items": { "$ref": "#/components/schemas/AssignProductImage" }, "description": "Assign previously uploaded images to a product or option." }, "AssignProductImagesItem": { "type": "array", "items": { "$ref": "#/components/schemas/AssignProductImage" }, "description": "Assign previously uploaded images to a product or option." }, "AsyncCreatedRefund": { "type": "object", "required": [ "refundID", "createdOn", "amount" ], "properties": { "refundID": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" }, "amount": { "$ref": "#/components/schemas/Amount" } }, "description": "Asynchronous refund response", "title": "Async" }, "AsyncTransfer": { "type": "object", "required": [ "transferID", "createdOn" ], "properties": { "transferID": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" } }, "title": "Async" }, "AuthToken": { "type": "object", "required": [ "token_type", "access_token", "refresh_token", "expires_in", "scope" ], "properties": { "token_type": { "$ref": "#/components/schemas/TokenType" }, "access_token": { "$ref": "#/components/schemas/AccessToken" }, "refresh_token": { "$ref": "#/components/schemas/RefreshToken" }, "expires_in": { "type": "integer", "format": "int32", "description": "Unix timestamp indicating when this token expires.", "example": 1736964352 }, "scope": { "type": "string", "description": "A space-delimited list of [scopes](https://docs.moov.io/api/authentication/scopes/) that are allowed.", "example": "/accounts.read /accounts.write" } } }, "AuthTokenRequest": { "type": "object", "required": [ "grant_type" ], "properties": { "grant_type": { "$ref": "#/components/schemas/GrantType" }, "client_id": { "type": "string", "description": "Client ID can be provided here in the body, or as the Username in HTTP Basic Auth.", "example": "5clTR_MdVrrkgxw2" }, "client_secret": { "type": "string", "description": "Client secret can be provided here in the body, or as the Password in HTTP Basic Auth.", "example": "dNC-hg7sVm22jc3g_Eogtyu0_1Mqh_4-" }, "scope": { "type": "string", "description": "A space delimited list of scopes. Required when `grant_type` is `client_credentials`.", "example": "/accounts.read /accounts.write" }, "refresh_token": { "type": "string", "description": "The refresh_token returned alongside the access token being refreshed. Required when `grant_type` is `refresh_token`.", "example": "eyJhbGc0eSI6TQSIsImN0kpXVCIsImtp6IkpXVsImtpZC0a..." } } }, "AuthTokenRequestError": { "type": "object", "properties": { "scope": { "type": "string" }, "refresh_token": { "type": "string" } } }, "AuthorizedUser": { "type": "object", "required": [ "firstName", "lastName" ], "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" } }, "description": "Fields for identifying an authorized individual." }, "BankAccount": { "type": "object", "required": [ "bankAccountID", "fingerprint", "status", "holderName", "holderType", "bankName", "bankAccountType", "routingNumber", "lastFourAccountNumber", "updatedOn" ], "properties": { "bankAccountID": { "type": "string" }, "fingerprint": { "type": "string", "maxLength": 100, "description": "Once the bank account is linked, we don't reveal the full bank account number.\n\nThe fingerprint acts as a way to identify whether two linked bank accounts are the same." }, "status": { "$ref": "#/components/schemas/BankAccountStatus" }, "holderName": { "type": "string" }, "holderType": { "$ref": "#/components/schemas/BankAccountHolderType" }, "bankName": { "type": "string" }, "bankAccountType": { "$ref": "#/components/schemas/BankAccountType" }, "routingNumber": { "type": "string" }, "lastFourAccountNumber": { "type": "string" }, "updatedOn": { "type": "string", "format": "date-time" }, "statusReason": { "$ref": "#/components/schemas/BankAccountStatusReason" }, "exceptionDetails": { "$ref": "#/components/schemas/BankAccountException" }, "paymentMethods": { "type": "array", "items": { "$ref": "#/components/schemas/BasicPaymentMethod" }, "description": "Includes any payment methods generated for a newly created bank account, removing the need to\ncall the List Payment Methods endpoint following a successful Create BankAccount request.\n\n**NOTE: This field is only populated for Create BankAccount requests made with the `X-Wait-For` header.**" } }, "description": "Describes a bank account linked to a Moov account.", "example": { "bankAccountID": "833fa3ef-14d3-4c97-ba45-6af66f739832", "fingerprint": "dd4cbfe5fbaf47b392770b5b595bec604fd99394749b7d017153e2b9cfbea40e", "status": "new", "holderName": "John Doe", "holderType": "individual", "bankName": "Gringotts Bank", "bankAccountType": "checking", "routingNumber": "123456780", "lastFourAccountNumber": "6789", "updatedOn": "2024-11-26T22:37:06Z", "statusReason": "bank-account-created" } }, "BankAccountException": { "type": "object", "required": [ "description" ], "properties": { "achReturnCode": { "$ref": "#/components/schemas/ACHReturnCode" }, "rtpRejectionCode": { "$ref": "#/components/schemas/RTPRejectionCode" }, "fednowRejectionCode": { "type": "string", "description": "The rejection code of a FedNow transaction that caused the bank account status to change.\n\n- AC02: Debtor account is invalid\n- AC03: Creditor account is invalid\n- AC04: Account closed\n- AC06: Account is blocked\n- AC07: Creditor account closed\n- AC10: Debtor account currency is invalid or missing\n- AC11: Creditor account currency is invalid or missing\n- AC13: Debtor account type missing or invalid\n- AC14: Creditor account type missing or invalid\n- AG01: Transaction is forbidden on this type of account\n- AG03: Transaction type is not supported/authorized on this account\n- BE06: End customer specified is not known at associated Sort/National Bank Code or no longer exists in the books\n- DUPL: Payment is a duplicate of another payment\n- MD07: End customer is deceased\n- NOAT: Receiving customer account does not support/accept this message type\n- RC02: Bank identifier is invalid or missing\n- RC03: Debtor FI identifier is invalid or missing\n- RC04: Creditor FI identifier is invalid or missing" }, "description": { "type": "string", "description": "Details related to an `errored` or `verificationFailed` bank account status." } }, "description": "Reason for, and details related to, an `errored` or `verificationFailed` bank account status." }, "BankAccountHolderType": { "type": "string", "enum": [ "individual", "business", "guest" ], "description": "The type of holder on a funding source." }, "BankAccountIntegration": { "type": "object", "required": [ "holderName", "holderType", "accountNumber", "bankAccountType", "routingNumber" ], "properties": { "holderName": { "type": "string" }, "holderType": { "$ref": "#/components/schemas/BankAccountHolderType" }, "accountNumber": { "type": "string" }, "bankAccountType": { "$ref": "#/components/schemas/BankAccountType" }, "routingNumber": { "type": "string" } } }, "BankAccountPayload": { "type": "object", "required": [ "account" ], "properties": { "account": { "$ref": "#/components/schemas/BankAccountIntegration" } }, "description": "Describes the bank account to link to the Moov account.", "title": "Bank account" }, "BankAccountStatus": { "type": "string", "enum": [ "new", "verified", "verificationFailed", "pending", "errored" ] }, "BankAccountStatusReason": { "type": "string", "enum": [ "bank-account-created", "verification-initiated", "micro-deposit-attempts-exceeded", "micro-deposit-expired", "max-verification-failures", "verification-attempts-exceeded", "verification-expired", "verification-successful", "ach-debit-return", "ach-credit-return", "rtp-credit-failure", "fednow-credit-failure", "micro-deposit-return", "admin-action", "other" ], "description": "The reason the bank account status changed to the current value." }, "BankAccountType": { "type": "string", "enum": [ "checking", "savings", "general-ledger", "loan" ], "description": "The bank account type." }, "BankAccountValidationError": { "type": "object", "properties": { "account": { "type": "string" }, "plaid": { "type": "string" }, "plaidLink": { "type": "string" }, "mx": { "type": "string" }, "error": { "type": "string" } } }, "BankAccountVerification": { "type": "object", "required": [ "verificationMethod", "status" ], "properties": { "verificationMethod": { "$ref": "#/components/schemas/BankAccountVerificationMethod" }, "status": { "$ref": "#/components/schemas/BankAccountVerificationStatus" }, "exceptionDetails": { "$ref": "#/components/schemas/BankAccountException" } } }, "BankAccountVerificationCreated": { "type": "object", "required": [ "verificationMethod", "status" ], "properties": { "verificationMethod": { "$ref": "#/components/schemas/BankAccountVerificationMethod" }, "status": { "$ref": "#/components/schemas/BankAccountVerificationStatus" } } }, "BankAccountVerificationMethod": { "type": "string", "enum": [ "instant", "ach" ] }, "BankAccountVerificationStatus": { "type": "string", "enum": [ "new", "sent-credit", "max-attempts-exceeded", "failed", "expired", "successful" ] }, "BankAccountWaitFor": { "type": "string", "enum": [ "payment-method", "rail-response" ] }, "BaseProduct": { "type": "object", "required": [ "title", "basePrice" ], "properties": { "title": { "type": "string", "maxLength": 150 }, "description": { "type": "string", "maxLength": 5000, "description": "A detailed description of the product.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "A product's starting price, before applying modifiers." } } }, "BaseProductOption": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 100, "description": "The display name of a product option." }, "description": { "type": "string", "maxLength": 500, "description": "A detailed description of the option.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The adjustment applied to a product's base price by this option. Can be negative, positive, or zero." } } }, "BaseProductOptionGroup": { "type": "object", "required": [ "name", "minSelect", "maxSelect" ], "properties": { "name": { "type": "string", "maxLength": 100 }, "description": { "type": "string", "maxLength": 500, "description": "A detailed description of the option group.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "minSelect": { "type": "integer", "format": "int32", "description": "The minimum number of options that must be selected from this group.\n\nA value of 0 indicates that no selection from this group is required." }, "maxSelect": { "type": "integer", "format": "int32", "minimum": 1, "description": "The maximum number of options that can be selected from this group." } } }, "BasicPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "$ref": "#/components/schemas/PaymentMethodType" } } }, "BasicTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "$ref": "#/components/schemas/TransferPaymentMethodType" } } }, "BillableFee": { "type": "object", "required": [ "feeModel", "feeCategory" ], "properties": { "billableFeeID": { "type": "string" }, "billableEvent": { "type": "string", "description": "A unique code identifying a charge." }, "feeName": { "type": "string", "description": "Specifies the name of the fee that will be billed." }, "feeModel": { "$ref": "#/components/schemas/FeeModel" }, "feeCategory": { "$ref": "#/components/schemas/FeeCategory" }, "feeProperties": { "$ref": "#/components/schemas/FeeProperties" }, "feeConditions": { "$ref": "#/components/schemas/FeeConditions" } }, "example": { "billableFeeID": "9d957d33-1a9a-47aa-9460-fe1a90f003dd", "billableEvent": "card-auth-volume", "feeName": "Card decline fee", "feeModel": "fixed", "feeCategory": "card-acquiring", "feeProperties": { "fixedAmount": { "currency": "USD", "valueDecimal": "0.0195" }, "variableRate": "0.15", "minPerTransaction": { "currency": "USD", "valueDecimal": "0.0195" }, "maxPerTransaction": { "currency": "USD", "valueDecimal": "0.035" }, "volumeRanges": [ { "fromValue": 1, "toValue": 2, "flatAmount": { "currency": "USD", "valueDecimal": "1.23" }, "perUnitAmount": { "currency": "USD", "valueDecimal": "1.23" } } ] }, "feeConditions": { "transactionType": [ "decline" ] } } }, "BillingCountAndAmount": { "type": "object", "required": [ "count", "amount" ], "properties": { "count": { "type": "integer", "format": "int64", "description": "The number of items." }, "amount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total amount." } } }, "BillingInterchangeProgramFee": { "type": "object", "required": [ "programName", "count", "percentageRate", "perItemRate", "total", "transferVolume" ], "properties": { "programName": { "type": "string", "description": "The name of the interchange program." }, "count": { "type": "integer", "format": "int64", "description": "The number of transactions for this program." }, "percentageRate": { "type": "number", "format": "decimal", "description": "The percentage rate for this program." }, "perItemRate": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The per-item rate for this program." }, "total": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total fee amount for this program." }, "transferVolume": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total transfer volume for this program." } }, "description": "Details of a specific interchange program fee." }, "BillingSummary": { "type": "object", "properties": { "cardAcquiring": { "type": "object", "properties": { "volumeAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total transaction volume amount. This field is deprecated and will be removed in a future release.", "deprecated": true }, "volumeCount": { "type": "integer", "format": "int64", "description": "The total number of transactions. This field is deprecated and will be removed in a future release.", "deprecated": true }, "feeAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total fee amount." }, "merchantFeesCollected": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total fee revenue collected from merchants." }, "partnerFeesAssessed": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total fee costs incurred by the partner." }, "netIncome": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Net revenue after deducting partner fee costs." }, "interchangeFees": { "$ref": "#/components/schemas/BillingSummaryInterchange" } }, "description": "A summary of card acquiring fees." }, "ach": { "allOf": [ { "$ref": "#/components/schemas/BillingSummaryDetails" } ], "description": "A summary of ACH fees." }, "instantPayments": { "allOf": [ { "$ref": "#/components/schemas/BillingSummaryDetails" } ], "description": "A summary of instant payment fees." }, "platformFees": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total amount of platform fees. This field is deprecated and will be removed in a future release. Use summary.accountFees.", "deprecated": true }, "accountFees": { "allOf": [ { "$ref": "#/components/schemas/BillingSummaryDetails" } ], "description": "A summary of account fees." }, "adjustmentFees": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total amount of adjustment fees. This field is deprecated and will be removed in a future release.", "deprecated": true }, "otherFees": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total amount of other card fees. This field is deprecated and will be removed in a future release. Use summary.otherCardFees.", "deprecated": true }, "otherCardFees": { "allOf": [ { "$ref": "#/components/schemas/BillingSummaryDetails" } ], "description": "A summary of other card fees." }, "total": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total amount of all fees." }, "netIncomeSubtotal": { "allOf": [ { "$ref": "#/components/schemas/BillingSummaryDetails" } ], "description": "Total net revenue after deducting total partner fees." }, "revenueShare": { "type": "string", "description": "Partner’s share of the net income, expressed as a percentage." }, "residualSubtotal": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The portion of net income allocated to the partner before monthly partner costs." }, "monthlyPartnerCosts": { "$ref": "#/components/schemas/PartnerFees" }, "netPartnerPayment": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Final partner payment after deducting monthlyPartnerCosts." } }, "description": "A summary of all fees included in a statement." }, "BillingSummaryDetails": { "type": "object", "properties": { "volumeAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total transaction volume amount. This field is deprecated and will be removed in a future release.", "deprecated": true }, "volumeCount": { "type": "integer", "format": "int64", "description": "The total number of transactions. This field is deprecated and will be removed in a future release.", "deprecated": true }, "feeAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total fee amount." }, "merchantFeesCollected": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total fee revenue collected from merchants." }, "partnerFeesAssessed": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total fee costs incurred by the partner." }, "netIncome": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Net revenue after deducting partner fee costs." } } }, "BillingSummaryInterchange": { "type": "object", "required": [ "visa", "mastercard", "discover", "americanExpress" ], "properties": { "visa": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total interchange fees for Visa." }, "mastercard": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total interchange fees for Mastercard." }, "discover": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total interchange fees for Discover." }, "americanExpress": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total interchange fees for American Express." } }, "description": "A summary of interchange fees by card brand." }, "BirthDate": { "type": "object", "required": [ "day", "month", "year" ], "properties": { "day": { "type": "integer", "example": 9 }, "month": { "type": "integer", "example": 11 }, "year": { "type": "integer", "example": 1989 } } }, "BirthDateError": { "type": "object", "properties": { "day": { "type": "string" }, "month": { "type": "string" }, "year": { "type": "string" } } }, "BirthDateUpdate": { "type": "object", "properties": { "day": { "type": "integer", "example": 9 }, "month": { "type": "integer", "example": 11 }, "year": { "type": "integer", "example": 1989 } } }, "BirthDateValidationError": { "type": "object", "properties": { "day": { "type": "string" }, "month": { "type": "string" }, "year": { "type": "string" } } }, "BrandColor": { "type": "object", "required": [ "accent" ], "properties": { "accent": { "$ref": "#/components/schemas/AccentColor" } } }, "BrandColorValidationError": { "type": "object", "properties": { "accent": { "type": "string" } } }, "BrandColors": { "type": "object", "required": [ "dark", "light" ], "properties": { "dark": { "$ref": "#/components/schemas/BrandColor" }, "light": { "$ref": "#/components/schemas/BrandColor" } }, "description": "Brand colors for light and dark modes." }, "BrandProperties": { "type": "object", "required": [ "colors" ], "properties": { "colors": { "$ref": "#/components/schemas/BrandColors" } } }, "BrandValidationError": { "type": "object", "properties": { "colors": { "$ref": "#/components/schemas/ColorsValidationError" } } }, "BusinessPresence": { "type": "string", "enum": [ "commercial-office", "home-based", "mixed-presence", "mobile-business", "online-only", "retail-storefront" ] }, "BusinessProfile": { "type": "object", "required": [ "legalBusinessName", "ownersProvided" ], "properties": { "legalBusinessName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!+-]*", "description": "The legal name under which the entity is registered.", "example": "Classbooker, LLC" }, "doingBusinessAs": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!+-]*", "description": "A registered trade name under which the business operates, if different from its legal name." }, "businessType": { "$ref": "#/components/schemas/BusinessType" }, "address": { "$ref": "#/components/schemas/Address" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "website": { "type": "string", "format": "uri", "maxLength": 100 }, "description": { "type": "string", "minLength": 10, "maxLength": 100, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "Local fitness gym paying out instructors" }, "taxIDProvided": { "type": "boolean", "description": "Indicates whether a tax ID has been provided for this business." }, "representatives": { "type": "array", "items": { "$ref": "#/components/schemas/Representative" } }, "ownersProvided": { "type": "boolean" }, "industryCodes": { "$ref": "#/components/schemas/IndustryCodes" }, "industry": { "type": "string", "description": "Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.", "example": "electronics-appliances" }, "primaryRegulator": { "$ref": "#/components/schemas/PrimaryRegulator" } }, "description": "Describes a business." }, "BusinessType": { "type": "string", "enum": [ "soleProprietorship", "unincorporatedAssociation", "trust", "publicCorporation", "privateCorporation", "llc", "partnership", "unincorporatedNonProfit", "incorporatedNonProfit", "governmentEntity" ], "description": "The type of entity represented by this business.", "example": "llc" }, "CallToAction": { "type": "string", "enum": [ "pay", "book", "subscribe", "donate", "confirm", "auto" ], "description": "The text to be displayed on web form's submit button.\n\nIf set to \"auto\" the UI will automatically select between \n\"pay\" and \"confirm\" for payments and payouts respectively." }, "Cancellation": { "type": "object", "required": [ "cancellationID", "status", "createdOn" ], "properties": { "cancellationID": { "type": "string" }, "status": { "$ref": "#/components/schemas/CancellationStatus" }, "createdOn": { "type": "string", "format": "date-time" } } }, "CancellationStatus": { "type": "string", "enum": [ "pending", "completed", "failed" ] }, "CapabilitiesError": { "type": "object", "properties": { "error": { "type": "string" }, "capabilities": { "type": "object", "additionalProperties": { "type": "string" } } } }, "Capability": { "type": "object", "required": [ "capability", "accountID", "status", "createdOn", "updatedOn" ], "properties": { "capability": { "$ref": "#/components/schemas/CapabilityID" }, "accountID": { "type": "string" }, "status": { "$ref": "#/components/schemas/CapabilityStatus" }, "requirements": { "$ref": "#/components/schemas/CapabilityRequirement" }, "disabledReason": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "disabledOn": { "type": "string", "format": "date-time" } } }, "CapabilityID": { "type": "string", "enum": [ "transfers", "send-funds", "send-funds.push-to-card", "money-transfer.push-to-card", "send-funds.ach", "send-funds.rtp", "send-funds.instant-bank", "collect-funds", "collect-funds.card-payments", "money-transfer.pull-from-card", "collect-funds.ach", "wallet", "wallet.balance", "card-issuing", "production-app", "platform.production-app", "platform.wallet-transfers" ], "description": "Moov account capabilities.\n\nThe `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action." }, "CapabilityRequirement": { "type": "object", "properties": { "currentlyDue": { "type": "array", "items": { "$ref": "#/components/schemas/RequirementID" } }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/RequirementError" } } }, "description": "Represents individual and business data necessary to facilitate the enabling of a capability for an account." }, "CapabilityStatus": { "type": "string", "enum": [ "enabled", "disabled", "pending", "in-review" ], "description": "The status of the capability requested for an account." }, "Card": { "type": "object", "required": [ "cardID", "fingerprint", "brand", "cardType", "lastFourCardNumber", "bin", "expiration", "billingAddress", "cardVerification" ], "properties": { "cardID": { "$ref": "#/components/schemas/CardID" }, "fingerprint": { "$ref": "#/components/schemas/CardFingerprint" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "cardType": { "$ref": "#/components/schemas/CardType" }, "cardCategory": { "type": "string", "description": "The category or level of the card defined by the issuer.\nExamples include, but not limited to, \"REWARDS\", \"TRADITIONAL REWARDS\", \"CLASSIC\", and \"CORPORATE PURCHASING\"." }, "lastFourCardNumber": { "type": "string", "minLength": 4, "maxLength": 4, "description": "Last four digits of the card number" }, "bin": { "type": "string", "minLength": 6, "maxLength": 8, "description": "The first six to eight digits of the card number, which identifies the financial institution that issued the card." }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "holderName": { "type": "string", "description": "The name of the cardholder as it appears on the card." }, "billingAddress": { "$ref": "#/components/schemas/CardAddress" }, "cardVerification": { "$ref": "#/components/schemas/CardVerification" }, "issuer": { "type": "string", "description": "Financial institution that issued the card." }, "issuerCountry": { "type": "string", "description": "Country where the card was issued." }, "issuerURL": { "type": "string", "format": "uri", "description": "URL of the issuer." }, "issuerPhone": { "type": "string", "description": "Phone number of the issuer." }, "commercial": { "type": "boolean", "description": "If true, the card is for commercial use, or associated with a business.\nIf false, the card is associated with a general consumer." }, "regulated": { "type": "boolean", "description": "If true, the card issuing bank is regulated, and the scheme fees for debit transactions will be limited based on the Durbin Amendment.\nIf false, the card issuing bank is not regulated, and the scheme fees will not be limited." }, "cardOnFile": { "type": "boolean", "description": "Indicates cardholder has authorized card to be stored for future payments." }, "merchantAccountID": { "type": "string" }, "cardAccountUpdater": { "$ref": "#/components/schemas/CardAccountUpdater" }, "domesticPushToCard": { "$ref": "#/components/schemas/DomesticPushToCard" }, "domesticPullFromCard": { "$ref": "#/components/schemas/DomesticPullFromCard" }, "paymentMethods": { "type": "array", "items": { "$ref": "#/components/schemas/BasicPaymentMethod" }, "description": " Includes any payment methods created as a result of linking a card with the `x-wait-for` header set to `payment-method`.\n\n Only returned by the link card endpoint; not included when getting or listing cards." } }, "description": "Describes a card on a Moov account.", "example": { "cardID": "01234567-89ab-cdef-0123-456789abcdef", "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3", "brand": "Visa", "cardType": "credit", "cardCategory": "CLASSIC", "lastFourCardNumber": "1111", "bin": "411111", "expiration": { "month": "01", "year": "21" }, "holderName": "Jules Jackson", "billingAddress": { "addressLine1": "123 Main Street", "addressLine2": "Apt 302", "city": "Boulder", "stateOrProvince": "CO", "postalCode": "80301", "country": "US" }, "cardVerification": { "cvv": "match", "addressLine1": "match", "postalCode": "match", "accountName": { "firstName": "match", "lastName": "match", "middleName": "match", "fullName": "match" } }, "issuer": "GRINGOTTS BANK", "issuerCountry": "US", "issuerURL": "HTTPS://WWW.EXAMPLE.COM/", "issuerPhone": "8185551212", "commercial": false, "regulated": false, "cardOnFile": true, "merchantAccountID": "01234567-89ab-cdef-0123-456789abcdef", "cardAccountUpdater": { "updatedOn": "2024-05-06T12:20:38.184Z", "updateType": "number-update" }, "domesticPushToCard": "standard", "domesticPullFromCard": "supported" } }, "CardAcceptanceMethods": { "type": "object", "properties": { "inPersonPercentage": { "type": "integer", "format": "int32", "description": "Percentage of card transactions that are in-person payments. Minimum value is 0, maximum is 100." }, "mailOrPhonePercentage": { "type": "integer", "format": "int32", "description": "Percentage of card transactions that are mail or phone payments. Minimum value is 0, maximum is 100." }, "onlinePercentage": { "type": "integer", "format": "int32", "description": "Percentage of card transactions that are online payments. Minimum value is 0, maximum is 100." } }, "description": "Describes the distribution of card transactions by payment method." }, "CardAcceptanceMethodsError": { "type": "object", "properties": { "inPersonPercentage": { "type": "string" }, "mailOrPhonePercentage": { "type": "string" }, "onlinePercentage": { "type": "string" } } }, "CardAccountUpdater": { "type": "object", "properties": { "updatedOn": { "type": "string", "format": "date-time" }, "updateType": { "$ref": "#/components/schemas/CardUpdateReason" } }, "description": "The results of the most recent card update request.", "example": { "updatedOn": "2024-05-06T12:20:38.184Z", "updateType": "number-update" } }, "CardAcquiringDispute": { "type": "object", "required": [ "disputeID", "createdOn", "amount" ], "properties": { "disputeID": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" }, "amount": { "$ref": "#/components/schemas/Amount" } }, "description": "Details of a card dispute." }, "CardAcquiringFees": { "type": "object", "required": [ "visa", "mastercard", "discover", "americanExpress" ], "properties": { "visa": { "allOf": [ { "$ref": "#/components/schemas/CardBrandFees" } ], "description": "Fees associated with Visa transactions." }, "mastercard": { "allOf": [ { "$ref": "#/components/schemas/CardBrandFees" } ], "description": "Fees associated with Mastercard transactions." }, "discover": { "allOf": [ { "$ref": "#/components/schemas/CardBrandFees" } ], "description": "Fees associated with Discover transactions." }, "americanExpress": { "allOf": [ { "$ref": "#/components/schemas/CardBrandFees" } ], "description": "Fees associated with American Express transactions." } }, "description": "A detailed breakdown of card acquiring fees by card brand." }, "CardAcquiringModel": { "type": "string", "enum": [ "cost-plus", "flat-rate" ], "description": "Specifies the card processing pricing model" }, "CardAcquiringRefund": { "type": "object", "required": [ "refundID", "createdOn", "updatedOn", "status", "amount" ], "properties": { "refundID": { "type": "string", "description": "Identifier for the refund." }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/components/schemas/RefundStatus" }, "amount": { "$ref": "#/components/schemas/Amount" }, "cardDetails": { "$ref": "#/components/schemas/RefundCardDetails" } }, "description": "Details of a card refund.", "title": "Sync" }, "CardAddress": { "type": "object", "required": [ "postalCode" ], "properties": { "addressLine1": { "type": "string", "maxLength": 60 }, "addressLine2": { "type": "string", "maxLength": 32 }, "city": { "type": "string", "maxLength": 32 }, "stateOrProvince": { "type": "string", "maxLength": 2 }, "postalCode": { "type": "string", "maxLength": 10 }, "country": { "type": "string", "maxLength": 2 } }, "example": { "addressLine1": "123 Main Street", "addressLine2": "Apt 302", "city": "Boulder", "stateOrProvince": "CO", "postalCode": "80301", "country": "US" } }, "CardBrand": { "type": "string", "enum": [ "American Express", "Discover", "Mastercard", "Visa", "Unknown" ], "description": "The card brand.", "example": "Visa" }, "CardBrandFees": { "type": "object", "required": [ "total" ], "properties": { "interchange": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of interchange fees." }, "interchangePrograms": { "type": "array", "items": { "$ref": "#/components/schemas/BillingInterchangeProgramFee" }, "description": "A list of interchange program fees." }, "networkPassthrough": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of network passthrough fees." }, "completedDomesticOnline": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of completed domestic online transactions." }, "completedDomesticInPerson": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of completed domestic in-person transactions." }, "completedInternationalOnline": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of completed international online transactions." }, "completedInternationalInPerson": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of completed international in-person transactions." }, "declines": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of declined transactions." }, "refunds": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Details of refunded transactions." }, "total": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Total fees for this card brand." } } }, "CardDynamicDescriptor": { "type": "string", "minLength": 4, "maxLength": 22, "description": "An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.", "example": "WhlBdy *Yoga 11-12" }, "CardExpiration": { "type": "object", "required": [ "month", "year" ], "properties": { "month": { "type": "string", "minLength": 2, "maxLength": 2 }, "year": { "type": "string", "minLength": 2, "maxLength": 2 } }, "description": "The expiration date of the card or token.", "example": { "month": "01", "year": "21" } }, "CardExpirationError": { "type": "object", "properties": { "month": { "type": "string" }, "year": { "type": "string" } } }, "CardFingerprint": { "type": "string", "maxLength": 100, "description": "Uniquely identifies a linked payment card or token.\nFor Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user's device.\nThis field can be used to identify specific payment methods across multiple accounts on your platform.", "example": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3" }, "CardID": { "type": "string", "description": "ID of the card.", "example": "01234567-89ab-cdef-0123-456789abcdef" }, "CardIssuingNetwork": { "type": "string", "enum": [ "discover", "shazam", "visa" ], "description": "The name of the network a card transaction is routed through." }, "CardPaymentDetails": { "type": "object", "properties": { "dynamicDescriptor": { "$ref": "#/components/schemas/CardDynamicDescriptor" } }, "description": "Options for payment links used to collect a card payment." }, "CardPaymentDetailsError": { "type": "object", "properties": { "dynamicDescriptor": { "type": "string" } } }, "CardPaymentPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "card" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "card-payment" ] }, "card": { "$ref": "#/components/schemas/PaymentMethodsCard" } }, "title": "Card payment" }, "CardPaymentSettings": { "type": "object", "properties": { "statementDescriptor": { "type": "string", "minLength": 4, "maxLength": 22, "pattern": "[a-zA-Z0-9.!*-+_ ]+", "description": "The description that shows up on credit card transactions. This will default to the accounts display name on account creation.", "example": "Whole Body Fitness" } }, "description": "User provided settings to manage card payments. This data is only allowed on a business account." }, "CardPaymentTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "card" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "card-payment" ] }, "card": { "$ref": "#/components/schemas/TransferPaymentMethodsCard" } }, "title": "Card payment" }, "CardPresentPaymentPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "card-present-payment" ] }, "terminalCard": { "$ref": "#/components/schemas/TerminalCard" } }, "description": "A card used at point of sale terminal for a card present transaction as contained within a payment method." }, "CardPresentPaymentTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "card-present-payment" ] }, "terminalCard": { "$ref": "#/components/schemas/TransferTerminalCard" } }, "description": "A card used at point of sale terminal for a card present transaction as contained within a payment method." }, "CardTransactionDetails": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/CardTransactionStatus" }, "failureCode": { "$ref": "#/components/schemas/CardTransactionFailureCode" }, "dynamicDescriptor": { "$ref": "#/components/schemas/CardDynamicDescriptor" }, "transactionSource": { "$ref": "#/components/schemas/TransactionSource" }, "initiatedOn": { "type": "string", "format": "date-time" }, "confirmedOn": { "type": "string", "format": "date-time" }, "settledOn": { "type": "string", "format": "date-time" }, "failedOn": { "type": "string", "format": "date-time" }, "canceledOn": { "type": "string", "format": "date-time" }, "completedOn": { "type": "string", "format": "date-time" }, "interchangeQualification": { "type": "string", "description": "The program assigned by the card network that determines the interchange rate for the transfer.", "deprecated": true, "example": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1" }, "feeProgram": { "type": "string", "description": "The program assigned by the card network that determines the interchange rate for the transfer.", "example": "Visa Signature and Visa Infinite (Spend not-qualified) Product 1" }, "authorizationCode": { "type": "string", "description": "An alphanumeric code generated by the card network to demonstrate approval for the transaction." } }, "description": "Card-specific details about the transaction." }, "CardTransactionFailureCode": { "type": "string", "enum": [ "call-issuer", "do-not-honor", "processing-error", "invalid-transaction", "invalid-amount", "no-such-issuer", "reenter-transaction", "cvv-mismatch", "lost-or-stolen", "insufficient-funds", "invalid-card-number", "invalid-merchant", "expired-card", "incorrect-pin", "transaction-not-allowed", "suspected-fraud", "amount-limit-exceeded", "velocity-limit-exceeded", "revocation-of-authorization", "card-not-activated", "issuer-not-available", "could-not-route", "cardholder-account-closed", "unknown-issue", "duplicate-transaction" ] }, "CardTransactionStatus": { "type": "string", "enum": [ "initiated", "confirmed", "canceled", "settled", "failed", "completed" ], "description": "Status of a transaction within the card payment lifecycle." }, "CardType": { "type": "string", "enum": [ "debit", "credit", "prepaid", "unknown" ], "description": "The type of the card.", "example": "credit" }, "CardUpdateReason": { "type": "string", "enum": [ "unspecified", "account-closed", "contact-cardholder", "expiration-update", "no-change", "no-match", "number-update" ], "description": "The results of the card update request.", "example": "number-update" }, "CardVerification": { "type": "object", "required": [ "cvv", "addressLine1", "postalCode" ], "properties": { "cvv": { "$ref": "#/components/schemas/CardVerificationResult" }, "addressLine1": { "$ref": "#/components/schemas/CardVerificationResult" }, "postalCode": { "$ref": "#/components/schemas/CardVerificationResult" }, "accountName": { "$ref": "#/components/schemas/AccountNameVerification" } }, "description": "The results of submitting cardholder data to a card network for verification.", "example": { "cvv": "match", "addressLine1": "match", "postalCode": "match", "accountName": { "firstName": "match", "lastName": "match", "middleName": "match", "fullName": "match" } } }, "CardVerificationResult": { "type": "string", "enum": [ "noMatch", "match", "notChecked", "unavailable", "partialMatch" ], "example": "match" }, "CardVolumeDistribution": { "type": "object", "required": [ "ecommercePercentage", "cardPresentPercentage", "mailOrPhonePercentage", "debtRepaymentPercentage" ], "properties": { "ecommercePercentage": { "type": "integer", "format": "int32" }, "cardPresentPercentage": { "type": "integer", "format": "int32" }, "mailOrPhonePercentage": { "type": "integer", "format": "int32" }, "debtRepaymentPercentage": { "type": "integer", "format": "int32" } } }, "CardVolumeDistributionError": { "type": "object", "properties": { "ecommercePercentage": { "type": "string" }, "cardPresentPercentage": { "type": "string" }, "mailOrPhonePercentage": { "type": "string" }, "debtRepaymentPercentage": { "type": "string" } } }, "CollectFunds": { "type": "object", "properties": { "ach": { "$ref": "#/components/schemas/CollectFundsAch" }, "cardPayments": { "$ref": "#/components/schemas/CollectFundsCardPayments" } } }, "CollectFundsAch": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "CollectFundsAchError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "CollectFundsCardPayments": { "type": "object", "properties": { "cardAcceptanceMethods": { "$ref": "#/components/schemas/CardAcceptanceMethods" }, "currentlyAcceptsCards": { "type": "boolean" }, "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" }, "fulfillment": { "$ref": "#/components/schemas/Fulfillment" }, "refundPolicy": { "$ref": "#/components/schemas/RefundPolicy" } } }, "CollectFundsCardPaymentsError": { "type": "object", "properties": { "cardAcceptanceMethods": { "$ref": "#/components/schemas/CardAcceptanceMethodsError" }, "currentlyAcceptsCards": { "type": "string" }, "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" }, "fulfillment": { "$ref": "#/components/schemas/FulfillmentError" }, "refundPolicy": { "type": "string" } } }, "CollectFundsError": { "type": "object", "properties": { "ach": { "$ref": "#/components/schemas/CollectFundsAchError" }, "cardPayments": { "$ref": "#/components/schemas/CollectFundsCardPaymentsError" } } }, "CollectionPaymentMethodType": { "type": "string", "enum": [ "apple-pay", "card-payment", "ach-debit-collect" ], "description": "Payment methods allowed for collecting a payment." }, "ColorsValidationError": { "type": "object", "properties": { "light": { "$ref": "#/components/schemas/BrandColorValidationError" }, "dark": { "$ref": "#/components/schemas/BrandColorValidationError" } } }, "CommonRequestHeaders": { "type": "object" }, "CommonResponseHeaders": { "type": "object" }, "CompleteBankAccountVerification": { "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "Code provided by user from their bank account transactions", "example": "MV1234" } } }, "CompleteMicroDeposits": { "type": "object", "required": [ "amounts" ], "properties": { "amounts": { "type": "array", "items": { "type": "integer" }, "description": "Two positive integers, in cents, equal to the values of the micro-deposits sent to the bank account.", "example": [ 18, 21 ] } }, "description": "Request to complete the micro-deposit verification workflow." }, "CompletedMicroDeposits": { "type": "object", "required": [ "status" ], "properties": { "status": { "$ref": "#/components/schemas/MicroDepositStatus" } } }, "ConnectAccountRequestValidationError": { "type": "object", "properties": { "principalAccountID": { "type": "string" }, "allowScopes": { "$ref": "#/components/schemas/ArrayValidationError" } } }, "Contact": { "type": "object", "properties": { "phone": { "$ref": "#/components/schemas/PhoneNumber" } } }, "Count": { "type": "integer", "format": "int64", "description": "Limits the maximum number of results returned, or determines the page size when used with `skip` or `cursor` for pagination.", "example": 20 }, "CountriesErrors": { "type": "object", "required": [ "countries" ], "properties": { "countries": { "type": "object", "additionalProperties": { "type": "string" } } } }, "CreateAccount": { "type": "object", "required": [ "accountType", "profile" ], "properties": { "accountType": { "$ref": "#/components/schemas/CreateAccountType" }, "profile": { "$ref": "#/components/schemas/CreateProfile" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "termsOfService": { "$ref": "#/components/schemas/TermsOfServicePayload" }, "foreignID": { "type": "string", "maxLength": 64, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "description": "Optional alias from a foreign/external system which can be used to reference this resource." }, "customerSupport": { "$ref": "#/components/schemas/CustomerSupport" }, "settings": { "$ref": "#/components/schemas/Settings" }, "capabilities": { "type": "array", "items": { "$ref": "#/components/schemas/CapabilityID" } }, "mode": { "$ref": "#/components/schemas/Mode" } }, "example": { "accountType": "business", "profile": { "business": { "legalBusinessName": "Whole Body Fitness LLC" } } } }, "CreateAccountError": { "type": "object", "properties": { "accountType": { "type": "string" }, "profile": { "$ref": "#/components/schemas/CreateProfileError" }, "metadata": { "type": "string" }, "termsOfService": { "$ref": "#/components/schemas/TermsOfServiceError" }, "foreignID": { "type": "string" }, "customerSupport": { "$ref": "#/components/schemas/CustomerSupportError" }, "settings": { "$ref": "#/components/schemas/CreateAccountSettings" }, "capabilities": { "$ref": "#/components/schemas/ArrayValidationError" } } }, "CreateAccountSettings": { "type": "object", "properties": { "cardPayment": { "type": "object", "properties": { "statementDescriptor": { "type": "string" } } }, "achPayment": { "type": "object", "properties": { "companyName": { "type": "string" } } } } }, "CreateAccountType": { "type": "string", "enum": [ "individual", "business" ] }, "CreateApplePaySession": { "type": "object", "required": [ "domain", "displayName" ], "properties": { "domain": { "type": "string", "description": "A fully qualified top-level or sub-domain name where you will accept Apple Pay. Should not include \"https\".", "example": "checkout.classbooker.dev" }, "displayName": { "$ref": "#/components/schemas/DomainDisplayName" } } }, "CreateAuthorizedUser": { "type": "object", "required": [ "firstName", "lastName" ], "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "birthDate": { "$ref": "#/components/schemas/BirthDate" } }, "description": "Fields for identifying an authorized individual." }, "CreateAuthorizedUserError": { "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "birthDate": { "$ref": "#/components/schemas/BirthDateError" } } }, "CreateAuthorizedUserUpdate": { "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "birthDate": { "$ref": "#/components/schemas/BirthDateUpdate" } }, "description": "Fields for identifying an authorized individual." }, "CreateBusinessError": { "type": "object", "properties": { "legalBusinessName": { "type": "string" }, "doingBusinessAs": { "type": "string" }, "businessType": { "type": "string" }, "address": { "$ref": "#/components/schemas/AddressError" }, "phone": { "$ref": "#/components/schemas/PhoneNumberError" }, "email": { "type": "string" }, "website": { "type": "string" }, "description": { "type": "string" }, "taxID": { "type": "object", "properties": { "ein": { "type": "object", "properties": { "number": { "type": "string" } } } } }, "industryCodes": { "type": "object", "properties": { "naics": { "type": "string" }, "sic": { "type": "string" }, "mcc": { "type": "string" } } }, "industry": { "type": "string", "description": "Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.", "example": "electronics-appliances" }, "primaryRegulator": { "type": "string" } } }, "CreateBusinessProfile": { "type": "object", "required": [ "legalBusinessName" ], "properties": { "legalBusinessName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!+-]*", "description": "The legal name under which the entity is registered.", "example": "Classbooker, LLC" }, "doingBusinessAs": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!+-]*", "description": "A registered trade name under which the business operates, if different from its legal name." }, "businessType": { "$ref": "#/components/schemas/BusinessType" }, "address": { "$ref": "#/components/schemas/Address" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "website": { "type": "string", "format": "uri", "maxLength": 100 }, "description": { "type": "string", "minLength": 10, "maxLength": 100, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "Local fitness gym paying out instructors" }, "taxID": { "$ref": "#/components/schemas/TaxID" }, "industryCodes": { "$ref": "#/components/schemas/IndustryCodes" }, "industry": { "type": "string", "description": "Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.", "example": "electronics-appliances" }, "primaryRegulator": { "$ref": "#/components/schemas/PrimaryRegulator" } } }, "CreateEvidenceFileMultiPart": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "The file to upload as evidence. Valid types are [jpeg, tiff, pdf] with a limit of 4MB per file.\n\n The `Content-Type` header for this form part must be one of the following:\n - `image/jpeg`\n - `image/tiff`\n - `application/pdf`" }, "evidenceType": { "$ref": "#/components/schemas/EvidenceType" } }, "required": [ "file", "evidenceType" ] }, "CreateEvidenceText": { "type": "object", "required": [ "text", "evidenceType" ], "properties": { "text": { "type": "string", "maxLength": 750, "description": "The text to associate with the dispute as evidence." }, "evidenceType": { "$ref": "#/components/schemas/EvidenceType" } } }, "CreateFeePlanAgreement": { "type": "object", "required": [ "planID" ], "properties": { "planID": { "type": "string" } } }, "CreateIndividualError": { "type": "object", "properties": { "name": { "$ref": "#/components/schemas/IndividualNameError" }, "phone": { "$ref": "#/components/schemas/PhoneNumberError" }, "email": { "type": "string" }, "address": { "$ref": "#/components/schemas/AddressError" }, "birthDate": { "$ref": "#/components/schemas/BirthDateError" }, "governmentID": { "type": "object", "properties": { "ssn": { "type": "object", "properties": { "full": { "type": "string" }, "lastFour": { "type": "string" } } }, "itin": { "type": "object", "properties": { "full": { "type": "string" }, "lastFour": { "type": "string" } } } } } } }, "CreateIndividualProfile": { "type": "object", "required": [ "name" ], "properties": { "name": { "$ref": "#/components/schemas/IndividualName" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/Address" }, "birthDate": { "$ref": "#/components/schemas/BirthDate" }, "governmentID": { "$ref": "#/components/schemas/GovernmentID" } } }, "CreatePaymentLink": { "type": "object", "required": [ "partnerAccountID", "merchantPaymentMethodID", "amount", "display" ], "properties": { "partnerAccountID": { "type": "string", "description": "The partner's Moov account ID." }, "merchantPaymentMethodID": { "type": "string", "description": "The merchant's preferred payment method ID. Must be a wallet payment method." }, "amount": { "$ref": "#/components/schemas/Amount" }, "salesTaxAmount": { "$ref": "#/components/schemas/Amount" }, "maxUses": { "type": "integer", "format": "int64", "description": "An optional limit on the number of times this payment link can be used. \n\n**For payouts, `maxUses` is always 1.**" }, "expiresOn": { "type": "string", "format": "date-time", "description": "An optional expiration date for this payment link." }, "display": { "$ref": "#/components/schemas/PaymentLinkDisplayOptions" }, "customer": { "$ref": "#/components/schemas/PaymentLinkCustomerOptions" }, "payment": { "$ref": "#/components/schemas/PaymentLinkPaymentDetails" }, "payout": { "$ref": "#/components/schemas/PaymentLinkPayoutDetails" }, "lineItems": { "$ref": "#/components/schemas/CreatePaymentLinkLineItems" } }, "description": "Request to create a new payment link.\n\nA payment link must include either `payment` or `payout` details, but not both. For payout payment links,\n`maxUses` will automatically be set to 1, as these are intended for a one-time disbursement\nto a specific recipient.\n", "example": { "partnerAccountID": "d290f1ee-6c54-4b01-90e6-d701748f0851", "merchantPaymentMethodID": "4c4e7f8e-81f4-4f3d-8f6f-6f6e7f8e4c4e", "amount": { "currency": "USD", "value": 10000 }, "display": { "title": "Example Payment Link", "description": "This is an example payment link.", "callToAction": "pay" }, "customer": { "requirePhone": true }, "payment": { "allowedMethods": [ "card-payment", "ach-debit-collect" ] } } }, "CreatePaymentLinkError": { "type": "object", "properties": { "partnerAccountID": { "type": "string" }, "merchantPaymentMethodID": { "type": "string" }, "amount": { "$ref": "#/components/schemas/AmountValidationError" }, "salesTaxAmount": { "$ref": "#/components/schemas/AmountValidationError" }, "maxUses": { "type": "string" }, "expiresOn": { "type": "string" }, "display": { "$ref": "#/components/schemas/DisplayOptionsError" }, "payment": { "$ref": "#/components/schemas/PaymentDetailsError" }, "payout": { "$ref": "#/components/schemas/PayoutDetailsError" }, "lineItems": { "$ref": "#/components/schemas/CreatePaymentLinkLineItemsValidationError" } } }, "CreatePaymentLinkLineItem": { "type": "object", "required": [ "name", "basePrice", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the item." }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The base price of the item before applying option modifiers." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this item." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/CreatePaymentLinkLineItemOption" }, "description": "Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations)." }, "imageIDs": { "type": "array", "items": { "$ref": "#/components/schemas/ImageID" }, "description": " Optional list of images associated with this line item.\n This field is deprecated and will be ignored. A future release will populate images associated with the given productID.", "deprecated": true }, "productID": { "type": "string", "description": " Optional unique identifier associating the line item with a product.\n This is for reporting or tracking purposes, and does not populate other details of the line item." } }, "description": "Represents a single line item in a payment link, including optional modifiers and quantity." }, "CreatePaymentLinkLineItemOption": { "type": "object", "required": [ "name", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the option or modifier." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this option." }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Optional price modification applied by this option. Can be positive, negative, or zero." }, "imageIDs": { "type": "array", "items": { "$ref": "#/components/schemas/ImageID" }, "description": " Optional list of images associated with this line item option.\n This field is deprecated and will be ignored. A future release will populate images associated with the given productID.", "deprecated": true }, "group": { "type": "string", "maxLength": 100, "description": "Optional group identifier to categorize related options (e.g., 'toppings')." } }, "description": "Represents a modifier or option applied to a line item." }, "CreatePaymentLinkLineItemOptionValidationError": { "type": "object", "properties": { "name": { "type": "string" }, "group": { "type": "string" }, "priceModifier": { "$ref": "#/components/schemas/AmountDecimalValidationError" }, "quantity": { "type": "string" } } }, "CreatePaymentLinkLineItemValidationError": { "type": "object", "properties": { "productID": { "type": "string" }, "name": { "type": "string" }, "basePrice": { "$ref": "#/components/schemas/AmountDecimalValidationError" }, "options": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/CreatePaymentLinkLineItemOptionValidationError" } }, "quantity": { "type": "string" } } }, "CreatePaymentLinkLineItems": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CreatePaymentLinkLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "An optional collection of line items for a payment link.\nWhen line items are provided, their total plus sales tax must equal the payment link amount." }, "CreatePaymentLinkLineItemsUpdate": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CreatePaymentLinkLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "An optional collection of line items for a payment link.\nWhen line items are provided, their total plus sales tax must equal the payment link amount." }, "CreatePaymentLinkLineItemsValidationError": { "type": "object", "properties": { "items": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/CreatePaymentLinkLineItemValidationError" } } } }, "CreateProductOption": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 100, "description": "The display name of a product option." }, "description": { "type": "string", "maxLength": 500, "description": "A detailed description of the option.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The adjustment applied to a product's base price by this option. Can be negative, positive, or zero." }, "images": { "$ref": "#/components/schemas/AssignProductImagesItem" } } }, "CreateProductOptionGroup": { "type": "object", "required": [ "name", "minSelect", "maxSelect", "options" ], "properties": { "name": { "type": "string", "maxLength": 100 }, "description": { "type": "string", "maxLength": 500, "description": "A detailed description of the option group.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "minSelect": { "type": "integer", "format": "int32", "description": "The minimum number of options that must be selected from this group.\n\nA value of 0 indicates that no selection from this group is required." }, "maxSelect": { "type": "integer", "format": "int32", "minimum": 1, "description": "The maximum number of options that can be selected from this group." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/CreateProductOption" }, "description": "The options available within this group." } } }, "CreateProfile": { "type": "object", "properties": { "individual": { "$ref": "#/components/schemas/CreateIndividualProfile" }, "business": { "$ref": "#/components/schemas/CreateBusinessProfile" } } }, "CreateProfileError": { "type": "object", "properties": { "individual": { "$ref": "#/components/schemas/CreateIndividualError" }, "business": { "$ref": "#/components/schemas/CreateBusinessError" } } }, "CreateRefund": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "description": "Amount to refund in cents. If null, the original transfer's full amount will be refunded.", "example": 1000 } }, "description": "Specifies a partial amount to refund. \n\nThis request body is optional, an empty body will issue a refund for the full amount of the original transfer." }, "CreateRefundResponse": { "oneOf": [ { "$ref": "#/components/schemas/CardAcquiringRefund" }, { "$ref": "#/components/schemas/AsyncCreatedRefund" } ] }, "CreateRepresentative": { "type": "object", "properties": { "birthDate": { "$ref": "#/components/schemas/BirthDate" }, "governmentID": { "$ref": "#/components/schemas/GovernmentID" }, "responsibilities": { "$ref": "#/components/schemas/RepresentativeResponsibilities" } }, "allOf": [ { "type": "object", "required": [ "name" ], "properties": { "name": { "$ref": "#/components/schemas/IndividualName" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/Address" } }, "description": "The template for omitting properties." } ], "description": "Describes a business representative to create." }, "CreateReversal": { "type": "object", "required": [ "amount" ], "properties": { "amount": { "type": "integer", "format": "int64", "description": "Amount to reverse in cents. Partial amounts will automatically trigger a refund instead of a cancellation.", "example": 1000 } } }, "CreateRunTransfer": { "type": "object", "required": [ "amount", "destination", "partnerAccountID", "source", "description" ], "properties": { "amount": { "$ref": "#/components/schemas/Amount" }, "salesTaxAmount": { "allOf": [ { "$ref": "#/components/schemas/Amount" } ], "description": "Optional sales tax amount. This amount is included in the total transfer amount." }, "destination": { "$ref": "#/components/schemas/SchedulePaymentMethod" }, "partnerAccountID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "source": { "$ref": "#/components/schemas/SchedulePaymentMethod" }, "description": { "type": "string", "description": "Simple description to place on the transfer." }, "lineItems": { "$ref": "#/components/schemas/CreateScheduledTransferLineItems" } }, "description": "Defines the attributes of a transfer." }, "CreateScheduledTransferLineItem": { "type": "object", "required": [ "name", "basePrice", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the item." }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The base price of the item before applying option modifiers." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this item." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/CreateScheduledTransferLineItemOption" }, "description": "Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations)." }, "productID": { "type": "string", "description": " Optional unique identifier associating the line item with a product.\n This is for reporting or tracking purposes, and does not populate other details of the line item." }, "imageIDs": { "type": "array", "items": { "$ref": "#/components/schemas/ImageID" }, "description": "Optional list of images associated with this line item." } }, "description": "Represents a single item in a scheduled transfer, including optional modifiers and quantity." }, "CreateScheduledTransferLineItemOption": { "type": "object", "required": [ "name", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the option or modifier." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this option." }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Optional price modification applied by this option. Can be positive, negative, or zero." }, "group": { "type": "string", "maxLength": 100, "description": "Optional group identifier to categorize related options (e.g., 'toppings')." }, "imageIDs": { "type": "array", "items": { "$ref": "#/components/schemas/ImageID" }, "description": "Optional list of images associated with this line item." } }, "description": "Represents a modifier or option applied to a scheduled transfer line item." }, "CreateScheduledTransferLineItems": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CreateScheduledTransferLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "An optional collection of line items for a scheduled transfer.\nWhen line items are provided their total must equal `amount` minus `salesTaxAmount`." }, "CreateSweepConfig": { "type": "object", "required": [ "walletID", "status", "pushPaymentMethodID", "pullPaymentMethodID" ], "properties": { "walletID": { "$ref": "#/components/schemas/WalletID" }, "status": { "$ref": "#/components/schemas/SweepConfigStatus" }, "pushPaymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "pullPaymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "statementDescriptor": { "$ref": "#/components/schemas/SweepStatementDescriptor" }, "minimumBalance": { "type": "string", "pattern": "^\\d+\\.\\d{1,2}$" } } }, "CreateSweepConfigError": { "type": "object", "properties": { "walletID": { "type": "string" }, "status": { "type": "string" }, "pushPaymentMethodID": { "type": "string" }, "pullPaymentMethodID": { "type": "string" }, "statementDescriptor": { "type": "string" }, "minimumBalance": { "type": "string" } } }, "CreateTerminalApplication": { "type": "object", "required": [ "platform" ], "properties": { "platform": { "$ref": "#/components/schemas/TerminalApplicationPlatform" }, "appBundleID": { "type": "string", "description": "The app bundle identifier of the terminal application. Required if platform is `ios`." }, "packageName": { "type": "string", "description": "The app package name of the terminal application. Required if platform is `android`." }, "sha256Digest": { "type": "string", "description": "The SHA-256 digest of the signing key for the application. Required if platform is `android`." }, "versionCode": { "type": "string", "description": "The version code of the Android application. Required if platform is `android`." } }, "description": "Describes a create terminal application request.", "example": { "platform": "android", "packageName": "com.example.app", "sha256Digest": "AA:BB:CC:DD:EE:FF:AA:BB:CC:DD:EE:FF:AA:BB:CC:DD:AA:BB:CC:DD:EE:FF:AA:BB:CC:DD:EE:FF:AA:BB:CC:DD", "versionCode": "20332277" } }, "CreateTicket": { "type": "object", "required": [ "title", "body", "contact" ], "properties": { "title": { "type": "string" }, "body": { "type": "string", "format": "html" }, "author": { "type": "string" }, "contact": { "$ref": "#/components/schemas/TicketContact" }, "foreignID": { "type": "string" } }, "description": "Request to create a new support ticket." }, "CreateTicketContactError": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" } } }, "CreateTicketError": { "type": "object", "properties": { "title": { "type": "string" }, "body": { "type": "string" }, "author": { "type": "string" }, "contact": { "$ref": "#/components/schemas/CreateTicketContactError" }, "foreignID": { "type": "string" } } }, "CreateTransfer": { "type": "object", "required": [ "source", "destination", "amount" ], "properties": { "source": { "$ref": "#/components/schemas/CreateTransferSource" }, "destination": { "$ref": "#/components/schemas/CreateTransferDestination" }, "amount": { "$ref": "#/components/schemas/Amount" }, "facilitatorFee": { "$ref": "#/components/schemas/FacilitatorFee" }, "description": { "type": "string", "maxLength": 256, "description": "An optional description of the transfer that is used on receipts and for your own internal use.", "example": "Pay Instructor for May 15 Class" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "salesTaxAmount": { "allOf": [ { "$ref": "#/components/schemas/Amount" } ], "description": "Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged." }, "foreignID": { "type": "string", "description": "Optional alias from a foreign/external system which can be used to reference this resource." }, "lineItems": { "$ref": "#/components/schemas/CreateTransferLineItems" } }, "example": { "source": { "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2" }, "destination": { "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf" }, "amount": { "currency": "USD", "value": 32945 }, "description": "Transfer from card to wallet", "metadata": { "optional": "metadata" } } }, "CreateTransferACHAddendaRecord": { "type": "object", "required": [ "record" ], "properties": { "record": { "type": "string", "maxLength": 80, "description": "The raw ACH addenda record. Must only contain valid NACHA characters" } }, "description": "An addenda record to be added to an ACH transfer" }, "CreateTransferDestination": { "type": "object", "required": [ "paymentMethodID" ], "properties": { "paymentMethodID": { "type": "string" }, "cardDetails": { "$ref": "#/components/schemas/CreateTransferDestinationCard" }, "achDetails": { "$ref": "#/components/schemas/CreateTransferDestinationACH" } }, "description": "The final stage of a transfer and the ultimate recipient of the funds." }, "CreateTransferDestinationACH": { "type": "object", "properties": { "companyEntryDescription": { "$ref": "#/components/schemas/ACHCompanyEntryDescription" }, "originatingCompanyName": { "$ref": "#/components/schemas/ACHOriginatingCompanyName" }, "addenda": { "type": "array", "items": { "$ref": "#/components/schemas/CreateTransferACHAddendaRecord" } } } }, "CreateTransferDestinationCard": { "type": "object", "properties": { "dynamicDescriptor": { "$ref": "#/components/schemas/CardDynamicDescriptor" } } }, "CreateTransferLineItem": { "type": "object", "required": [ "name", "basePrice", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the item." }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The base price of the item before applying option modifiers." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this item." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/CreateTransferLineItemOption" }, "description": "Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations)." }, "imageIDs": { "type": "array", "items": { "$ref": "#/components/schemas/ImageID" }, "description": "Optional list of images associated with this line item." }, "productID": { "type": "string", "description": " Optional unique identifier associating the line item with a product.\n This is for reporting or tracking purposes, and does not populate other details of the line item." } }, "description": "Represents a single item in a transfer, including optional modifiers and quantity." }, "CreateTransferLineItemOption": { "type": "object", "required": [ "name", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the option or modifier." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this option." }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Optional price modification applied by this option. Can be positive, negative, or zero." }, "imageIDs": { "type": "array", "items": { "$ref": "#/components/schemas/ImageID" }, "description": "Optional list of images associated with this line item option." }, "group": { "type": "string", "maxLength": 100, "description": "Optional group identifier to categorize related options (e.g., 'toppings')." } }, "description": "Represents a modifier or option applied to a line item." }, "CreateTransferLineItemOptionValidationError": { "type": "object", "properties": { "name": { "type": "string" }, "group": { "type": "string" }, "priceModifier": { "$ref": "#/components/schemas/AmountDecimalValidationError" }, "quantity": { "type": "string" }, "imageIDs": { "type": "string" } } }, "CreateTransferLineItemValidationError": { "type": "object", "properties": { "productID": { "type": "string" }, "name": { "type": "string" }, "basePrice": { "$ref": "#/components/schemas/AmountDecimalValidationError" }, "options": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/CreateTransferLineItemOptionValidationError" } }, "quantity": { "type": "string" }, "imageIDs": { "type": "string" } } }, "CreateTransferLineItems": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CreateTransferLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "An optional collection of line items for a transfer.\nWhen line items are provided, their total plus sales tax must equal the transfer amount." }, "CreateTransferLineItemsValidationError": { "type": "object", "properties": { "items": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/CreateTransferLineItemValidationError" } } } }, "CreateTransferOptions": { "type": "object", "required": [ "source", "destination", "amount" ], "properties": { "source": { "$ref": "#/components/schemas/SourceDestinationOptions" }, "destination": { "$ref": "#/components/schemas/SourceDestinationOptions" }, "amount": { "$ref": "#/components/schemas/Amount" } } }, "CreateTransferSource": { "type": "object", "properties": { "transferID": { "type": "string", "description": "A `transferID` is used to create a [transfer group](https://docs.moov.io/guides/money-movement/transfer-groups/),\nassociating the new transfer with a parent transfer." }, "paymentMethodID": { "type": "string" }, "paymentToken": { "type": "string" }, "cardDetails": { "$ref": "#/components/schemas/CreateTransferSourceCard" }, "achDetails": { "$ref": "#/components/schemas/CreateTransferSourceACH" } }, "description": "Where funds for a transfer originate. For the source, you must include either a `paymentMethodID` or a `transferID`." }, "CreateTransferSourceACH": { "type": "object", "properties": { "companyEntryDescription": { "$ref": "#/components/schemas/ACHCompanyEntryDescription" }, "originatingCompanyName": { "$ref": "#/components/schemas/ACHOriginatingCompanyName" }, "debitHoldPeriod": { "$ref": "#/components/schemas/DebitHoldPeriod" }, "secCode": { "$ref": "#/components/schemas/SECCode" }, "addenda": { "type": "array", "items": { "$ref": "#/components/schemas/CreateTransferACHAddendaRecord" } } } }, "CreateTransferSourceCard": { "type": "object", "properties": { "dynamicDescriptor": { "$ref": "#/components/schemas/CardDynamicDescriptor" }, "transactionSource": { "$ref": "#/components/schemas/TransactionSource" } } }, "CreateWallet": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the wallet." }, "description": { "type": "string", "description": "Description of the wallet." }, "metadata": { "$ref": "#/components/schemas/Metadata" } }, "example": { "name": "My wallet", "description": "A general wallet used for my payments", "metadata": { "optional": "metadata" } } }, "CreateWalletValidationError": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "metadata": { "type": "string" } } }, "CreateWebhook": { "type": "object", "required": [ "url", "status", "eventTypes", "description" ], "properties": { "url": { "type": "string", "format": "uri", "description": "The URL where webhook events will be sent." }, "status": { "allOf": [ { "$ref": "#/components/schemas/WebhookStatus" } ], "description": "The status of the webhook." }, "eventTypes": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookEventType" }, "description": "The list of event types this webhook should subscribe to." }, "description": { "type": "string", "description": "A description of the webhook for reference. Can be an empty string." } }, "description": "Request body for creating a new webhook." }, "CreateWebhookValidationError": { "type": "object", "properties": { "url": { "type": "string", "description": "Details about the URL validation error." }, "status": { "type": "string", "description": "Details about the status validation error." }, "eventTypes": { "type": "string", "description": "Details about the event types validation error." }, "description": { "type": "string", "description": "Details about the description validation error." } } }, "CreatedTransfer": { "type": "object", "required": [ "transferID", "createdOn" ], "properties": { "transferID": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" }, "source": { "$ref": "#/components/schemas/TransferSource" }, "destination": { "$ref": "#/components/schemas/TransferDestination" }, "completedOn": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/components/schemas/TransferStatus" }, "failureReason": { "$ref": "#/components/schemas/TransferFailureReason" }, "amount": { "$ref": "#/components/schemas/Amount" }, "description": { "type": "string", "maxLength": 128, "description": "An optional description of the transfer that is used on receipts and for your own internal use.", "example": "Pay Instructor for May 15 Class" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "facilitatorFee": { "$ref": "#/components/schemas/FacilitatorFee" }, "moovFee": { "type": "integer", "format": "int64", "description": "Fees charged to your platform account for transfers." }, "moovFeeDecimal": { "type": "string", "description": "Same as `moovFee`, but a decimal-formatted numerical string that represents up to 9 decimal place precision." }, "moovFeeDetails": { "$ref": "#/components/schemas/MoovFeeDetails" }, "groupID": { "type": "string" }, "cancellations": { "type": "array", "items": { "$ref": "#/components/schemas/Cancellation" } }, "refundedAmount": { "$ref": "#/components/schemas/Amount" }, "refunds": { "type": "array", "items": { "$ref": "#/components/schemas/CardAcquiringRefund" } }, "disputedAmount": { "$ref": "#/components/schemas/Amount" }, "disputes": { "type": "array", "items": { "$ref": "#/components/schemas/CardAcquiringDispute" } }, "sweepID": { "type": "string" }, "scheduleID": { "type": "string" }, "occurrenceID": { "type": "string" }, "paymentLinkCode": { "type": "string" }, "salesTaxAmount": { "allOf": [ { "$ref": "#/components/schemas/Amount" } ], "description": "Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged." }, "foreignID": { "type": "string", "description": "Optional alias from a foreign/external system which can be used to reference this resource." }, "lineItems": { "$ref": "#/components/schemas/TransferLineItems" } } }, "Currency": { "type": "string", "pattern": "^[A-Za-z]{3}$", "description": "A 3-letter ISO 4217 currency code.", "example": "USD" }, "Cursor": { "type": "string", "description": "The value used to retrieve a page of items." }, "CustomerSupport": { "type": "object", "properties": { "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/Address" }, "website": { "type": "string", "format": "uri" } }, "description": "User-provided information that can be displayed on credit card transactions for customers to use when\ncontacting a customer support team. This data is only allowed on a business account." }, "CustomerSupportError": { "type": "object", "properties": { "phone": { "$ref": "#/components/schemas/PhoneNumberError" }, "email": { "type": "string" }, "address": { "$ref": "#/components/schemas/AddressError" }, "website": { "type": "string" } } }, "CustomerSupportUpdate": { "type": "object", "properties": { "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/AddressUpdate" }, "website": { "type": "string", "format": "uri" } }, "description": "User-provided information that can be displayed on credit card transactions for customers to use when\ncontacting a customer support team. This data is only allowed on a business account." }, "DebitHoldPeriod": { "type": "string", "enum": [ "no-hold", "1-day", "2-days" ], "description": "An optional override of your default ACH hold period in banking days. The hold period must be longer than or equal to your default setting.", "example": "2-days" }, "DisbursementPaymentMethodType": { "type": "string", "enum": [ "push-to-card", "rtp-credit", "ach-credit-same-day", "ach-credit-standard" ], "description": "Payment methods allowed for disbursing funds." }, "DisplayOptionsError": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "callToAction": { "type": "string" } } }, "Dispute": { "type": "object", "required": [ "disputeID", "merchantAccountID", "amount", "networkReasonCode", "transfer", "respondBy", "status", "phase", "createdOn" ], "properties": { "disputeID": { "type": "string" }, "merchantAccountID": { "type": "string" }, "amount": { "$ref": "#/components/schemas/Amount" }, "networkReasonCode": { "type": "string", "description": "Indicates the card network's category for the dispute. \n\nThese codes may differ between card brands. You can find more information on the code from the networkReasonDescription field." }, "networkReasonDescription": { "type": "string", "description": "Provides detail on the card network's categorization of the dispute." }, "transfer": { "$ref": "#/components/schemas/DisputeTransferDetails" }, "respondBy": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/components/schemas/DisputeStatus" }, "phase": { "$ref": "#/components/schemas/DisputePhase" }, "createdOn": { "type": "string", "format": "date-time" }, "submittedOn": { "type": "string", "format": "date-time" } }, "description": "Details of a card transaction dispute.", "example": { "disputeID": "6e356108-fdfa-4910-bbe4-1e3c8abf5520", "merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8", "createdOn": "2024-12-23T17:55:00Z", "amount": { "currency": "USD", "value": 257753 }, "networkReasonCode": "10.4", "transfer": { "transferID": "ecac148a-917e-4ee0-b46a-c51408939fff" }, "respondBy": "2024-12-23T18:55:00Z", "status": "response-needed", "phase": "chargeback" } }, "DisputeEvidenceResponse": { "type": "object", "required": [ "evidenceID", "disputeID", "evidenceType", "createdOn", "updatedOn" ], "properties": { "evidenceID": { "type": "string" }, "disputeID": { "type": "string" }, "evidenceType": { "$ref": "#/components/schemas/EvidenceType" }, "text": { "type": "string", "description": "For text evidence, the text submitted as evidence." }, "mimeType": { "type": "string", "description": "For file evidence, the MIME type of the file." }, "filename": { "type": "string", "description": "For file evidence, the name of the file." }, "size": { "type": "integer", "format": "int64", "description": "For file evidence, the size of the file." }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "submittedOn": { "type": "string", "format": "date-time", "description": "When the evidence was submitted for review." } } }, "DisputePhase": { "type": "string", "enum": [ "pre-dispute", "inquiry", "chargeback", "unknown" ], "description": "The phase of a dispute within the dispute lifecycle." }, "DisputeStatus": { "type": "string", "enum": [ "response-needed", "resolved", "under-review", "closed", "accepted", "expired", "won", "lost" ], "description": "The status of a particular dispute. \n\nRead our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/#dispute-statuses) to learn what each status means." }, "DisputeTransferDetails": { "type": "object", "required": [ "transferID" ], "properties": { "transferID": { "type": "string", "description": "The disputed transfer's ID." } } }, "Document": { "type": "object", "required": [ "documentID", "type", "contentType", "uploadedAt" ], "properties": { "documentID": { "type": "string", "example": "e07e83e8-9429-4e99-ac99-c941f719eb39" }, "type": { "$ref": "#/components/schemas/DocumentType" }, "contentType": { "type": "string", "description": "The document's MIME type.", "example": "application/pdf" }, "parseErrors": { "type": "array", "items": { "type": "string" }, "description": "Optional array of errors encountered during automated parsing." }, "uploadedAt": { "type": "string", "format": "date-time", "example": "2024-05-06T12:20:38.184Z" } } }, "DocumentType": { "type": "string", "enum": [ "driversLicense", "passport", "utilityBill", "bankStatement" ], "description": "Types of documents that can be uploaded.", "example": "bankStatement" }, "DomainDisplayName": { "type": "string", "maxLength": 64, "description": "A UTF-8 string to display in the Buy button." }, "DomesticPullFromCard": { "type": "string", "enum": [ "not-supported", "supported", "unknown" ], "description": "Indicates if the card supports domestic pull-from-card transfer.", "example": "supported" }, "DomesticPushToCard": { "type": "string", "enum": [ "not-supported", "standard", "fast-funds", "unknown" ], "description": "Indicates which level of domestic push-to-card transfer is supported by the card, if any.", "example": "standard" }, "DuplicateCardError": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string", "description": "A human-readable description of the error." }, "existingCardID": { "type": "string", "description": "The ID of the existing card that caused the conflict. \nThis field is included when attempting to link a card that already exists on the account." } } }, "E2EEToken": { "type": "object", "required": [ "token" ], "properties": { "token": { "$ref": "#/components/schemas/JSONWebEncryptionToken" } }, "description": "Wraps a compact-serialized JSON Web Encryption (JWE) token used for secure transmission of sensitive data (e.g., PCI information) through intermediaries. \nThis token is encrypted using the public key from /end-to-end-keys and wraps an AES key. For details and examples, refer to our \n[GitHub repository](https://github.com/moovfinancial/moov-go/blob/main/examples/e2ee/e2ee_test.go).", "example": { "token": "eyJhbGciOiJFQ0RILUVTK0EyNTZLVyIsImVuYyI6IkEyNTZHQ00iLCJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTUyMSIsIngiOiJBS0NYVDM1WVdvTm8wbzExNy1SU0dqUGg3alN1NjFmLUhnYkx1dW0xVG1ueTRlcW5yX2hyU0hpY0w1d3gwODRCWDBRZjVTdEtkRUoydzY2ZUJqWHprRV9OIiwieSI6IkFIMEJfT2RaYTQtbG43dGJ4M3VBdlc1NDNQRE9HUXBCTDloRFFNWjlTQXNfOW05UWN3dnhRd1hrb1VrM3VzT1FnVV9ySVFrNFRoZ1NTUzV4UlhKcm5ZaTkifSwia2lkIjoiYmRvV3pLekpKUGw0TVFIaENDa05WYTZlZ1dmYi02V1haSjZKTFZqQ0hWMD0ifQ.HalyoHsfufBJEODd2lD9ThQvvVWw3b2kgWDLHGxmHhMv8rODyLL_Ug.rpQP178t8Ed_pUU2.Sn9UFeVoegAxiMUv11q7l3M0y9YHSLYi2n_JB7n7Pc777_47-icfaxstJemT0IC81w.akkq1EBxzWkBr4vEomSpWA" } }, "E2EETokenUpdate": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/JSONWebEncryptionToken" } }, "description": "Wraps a compact-serialized JSON Web Encryption (JWE) token used for secure transmission of sensitive data (e.g., PCI information) through intermediaries. \nThis token is encrypted using the public key from /end-to-end-keys and wraps an AES key. For details and examples, refer to our \n[GitHub repository](https://github.com/moovfinancial/moov-go/blob/main/examples/e2ee/e2ee_test.go).", "example": { "token": "eyJhbGciOiJFQ0RILUVTK0EyNTZLVyIsImVuYyI6IkEyNTZHQ00iLCJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTUyMSIsIngiOiJBS0NYVDM1WVdvTm8wbzExNy1SU0dqUGg3alN1NjFmLUhnYkx1dW0xVG1ueTRlcW5yX2hyU0hpY0w1d3gwODRCWDBRZjVTdEtkRUoydzY2ZUJqWHprRV9OIiwieSI6IkFIMEJfT2RaYTQtbG43dGJ4M3VBdlc1NDNQRE9HUXBCTDloRFFNWjlTQXNfOW05UWN3dnhRd1hrb1VrM3VzT1FnVV9ySVFrNFRoZ1NTUzV4UlhKcm5ZaTkifSwia2lkIjoiYmRvV3pLekpKUGw0TVFIaENDa05WYTZlZ1dmYi02V1haSjZKTFZqQ0hWMD0ifQ.HalyoHsfufBJEODd2lD9ThQvvVWw3b2kgWDLHGxmHhMv8rODyLL_Ug.rpQP178t8Ed_pUU2.Sn9UFeVoegAxiMUv11q7l3M0y9YHSLYi2n_JB7n7Pc777_47-icfaxstJemT0IC81w.akkq1EBxzWkBr4vEomSpWA" } }, "Email": { "type": "string", "maxLength": 255, "format": "email", "example": "jordan.lee@classbooker.dev" }, "End2EndEncryptionError": { "type": "object", "properties": { "token": { "type": "string" } } }, "EnrichedAddressResponse": { "type": "object", "required": [ "suggestions" ], "properties": { "suggestions": { "type": "array", "items": { "$ref": "#/components/schemas/AddressSuggestion" } } } }, "EnrichedBusinessProfile": { "type": "object", "properties": { "address": { "$ref": "#/components/schemas/Address" }, "email": { "$ref": "#/components/schemas/Email" }, "industryCodes": { "$ref": "#/components/schemas/EnrichedIndustryCodes" }, "legalBusinessName": { "type": "string" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "website": { "type": "string" } } }, "EnrichedBusinessResponse": { "type": "object", "properties": { "business": { "$ref": "#/components/schemas/EnrichedBusinessProfile" } } }, "EnrichedIndustries": { "type": "object", "required": [ "industries" ], "properties": { "industries": { "type": "array", "items": { "$ref": "#/components/schemas/IndustryTaxonomy" } } } }, "EnrichedIndustry": { "type": "object", "required": [ "title", "naics", "sic", "mcc" ], "properties": { "title": { "type": "string", "example": "AC, Refrigeration Repair" }, "naics": { "type": "string", "maxLength": 6, "description": "North American Industry Classification System", "example": "811412" }, "sic": { "type": "string", "maxLength": 4, "description": "Standard Industrial Classification", "example": "7623" }, "mcc": { "type": "string", "maxLength": 4, "description": "Merchant Category Code", "example": "7623" } }, "description": "An industry's MCC/SIC/NAICS codes, along with descriptive title." }, "EnrichedIndustryCodes": { "type": "object", "properties": { "naics": { "type": "string", "minLength": 2, "maxLength": 6, "example": "713940" }, "sic": { "type": "string", "minLength": 4, "maxLength": 4, "example": "7991" } } }, "EntryMode": { "type": "string", "enum": [ "contactless" ], "description": "How the card information was entered into the point of sale terminal.", "example": "contactless" }, "EstimatedActivity": { "type": "object", "properties": { "averageTransactionAmount": { "type": "integer", "format": "int64" }, "maximumTransactionAmount": { "type": "integer", "format": "int64" }, "monthlyVolumeRange": { "$ref": "#/components/schemas/MonthlyVolumeRange" } } }, "EstimatedActivityError": { "type": "object", "properties": { "averageTransactionAmount": { "type": "string" }, "maximumTransactionAmount": { "type": "string" }, "monthlyVolumeRange": { "type": "string" } } }, "EventType": { "type": "object", "required": [ "eventTypeID", "type", "description" ], "properties": { "eventTypeID": { "type": "string", "description": "Unique identifier for the event type." }, "type": { "type": "string", "description": "The type identifier string." }, "description": { "type": "string", "description": "A human-readable description of the event type." } }, "description": "Describes an available event type that can be subscribed to." }, "EvidenceTextResponse": { "type": "object", "required": [ "evidenceID", "disputeID", "evidenceType", "text", "createdOn" ], "properties": { "evidenceID": { "type": "string" }, "disputeID": { "type": "string" }, "evidenceType": { "$ref": "#/components/schemas/EvidenceType" }, "text": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" } } }, "EvidenceType": { "type": "string", "enum": [ "receipt", "proof-of-delivery", "cancelation-policy", "terms-of-service", "customer-communication", "generic-evidence", "cover-letter", "other" ] }, "EvidenceTypeText": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/components/schemas/EvidenceType" } } }, "EvidenceUploadResponse": { "type": "object", "required": [ "evidenceID", "disputeID", "filename", "mimeType", "size", "evidenceType", "createdOn" ], "properties": { "evidenceID": { "type": "string", "description": "The ID of the evidence." }, "disputeID": { "type": "string", "description": "The ID of the dispute the evidence is associated with." }, "filename": { "type": "string", "description": "The name of the evidence file." }, "mimeType": { "type": "string", "description": "The MIME type of the evidence file." }, "size": { "type": "integer", "format": "int64", "description": "The size of the evidence file." }, "evidenceType": { "$ref": "#/components/schemas/EvidenceType" }, "createdOn": { "type": "string", "format": "date-time", "description": "The date and time the evidence was uploaded." } }, "description": "Details of a successfully uploaded evidence file." }, "FacilitatorFee": { "type": "object", "properties": { "total": { "type": "integer", "format": "int64", "description": "Total facilitator fee in cents. Only either `total` or `totalDecimal` can be set." }, "totalDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "Same as `total`, but a decimal-formatted numerical string that represents up to 9 decimal place precision.\n\nOnly either `total` or `totalDecimal` can be set. Set this field if you expect the fee to be in fractions of a cent.", "example": "12.987654321" }, "markup": { "type": "integer", "format": "int64", "description": "Markup facilitator fee in cents. Only either `markup` or `markupDecimal` can be set." }, "markupDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "Same as `markup`, but a decimal-formatted numerical string that represents up to 9 decimal place precision.\nOnly either `markup` or `markupDecimal` can be set. Set this field if you expect the fee to be in fractions of a cent.", "example": "0.987654321" } }, "description": "Total or markup fee." }, "FedNowInstitution": { "type": "object", "required": [ "name", "routingNumber", "services" ], "properties": { "name": { "type": "string", "description": "Name of the financial institution.", "example": "First Citizens" }, "routingNumber": { "type": "string", "maxLength": 9, "example": "123456789" }, "services": { "$ref": "#/components/schemas/FedNowServices" } } }, "FedNowServices": { "type": "object", "required": [ "receivePayments", "sendPayments", "requestForPayment" ], "properties": { "receivePayments": { "type": "boolean", "description": "Indicates if the institution can receive instant payments.", "example": true }, "sendPayments": { "type": "boolean", "description": "Indicates if the institution can send instant payments.", "example": true }, "requestForPayment": { "type": "boolean", "description": "Indicates if the institution can process request for payment messages.", "example": true } } }, "FeeCategory": { "type": "string", "enum": [ "ach", "card-acquiring", "card-other", "card-pull", "card-push", "monthly-platform", "network-passthrough", "other", "rtp" ] }, "FeeConditions": { "type": "object", "additionalProperties": {}, "description": "Defines the specific conditions that must be met for the fee to be applied.", "example": { "cardBrand": [ "visa" ] } }, "FeeModel": { "type": "string", "enum": [ "fixed", "blended", "variable" ], "description": "Specifies the pricing model used for the calculation of the final fee." }, "FeePlan": { "type": "object", "required": [ "planID", "name", "cardAcquiringModel", "billableFees", "minimumCommitment", "monthlyPlatformFee", "createdAt" ], "properties": { "planID": { "type": "string" }, "name": { "type": "string", "description": "The name of the fee plan.", "example": "Fixed Rate Merchant Plan" }, "description": { "type": "string", "description": "A description of the fee plan." }, "cardAcquiringModel": { "$ref": "#/components/schemas/CardAcquiringModel" }, "billableFees": { "type": "array", "items": { "$ref": "#/components/schemas/BillableFee" }, "description": "Additional usage-based fees for this plan." }, "minimumCommitment": { "$ref": "#/components/schemas/MinimumCommitment" }, "monthlyPlatformFee": { "$ref": "#/components/schemas/MonthlyPlatformFee" }, "createdAt": { "type": "string", "format": "date-time" } } }, "FeePlanAgreement": { "type": "object", "required": [ "agreementID", "planID", "name", "acceptedOn", "status", "cardAcquiringModel", "billableFees", "minimumCommitment", "monthlyPlatformFee" ], "properties": { "agreementID": { "type": "string" }, "planID": { "type": "string" }, "accountID": { "type": "string" }, "name": { "type": "string", "description": "The name of the agreement." }, "description": { "type": "string", "description": "The description of the agreement." }, "acceptedOn": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/components/schemas/FeePlanAgreementStatus" }, "cardAcquiringModel": { "$ref": "#/components/schemas/CardAcquiringModel" }, "billableFees": { "type": "array", "items": { "$ref": "#/components/schemas/BillableFee" } }, "minimumCommitment": { "$ref": "#/components/schemas/MinimumCommitment" }, "monthlyPlatformFee": { "$ref": "#/components/schemas/MonthlyPlatformFee" } } }, "FeePlanAgreementError": { "type": "object", "properties": { "planID": { "type": "string" } } }, "FeePlanAgreementStatus": { "type": "string", "enum": [ "active", "terminated" ] }, "FeeProperties": { "type": "object", "required": [ "volumeRanges" ], "properties": { "fixedAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "A fixed fee that is applied to the amount of each transaction in the `fixed` and `blended` fee models." }, "variableRate": { "type": "string", "pattern": "^[0-9]+.?[0-9]*$", "description": "A percentage fee that is applied to the amount of each transaction in the `blended` fee model, expressed as a decimal. \n\nFor example, 0.05% is '0.05'.", "example": "0.05" }, "minPerTransaction": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Specifies the minimum allowable spending for a single transaction, working as a transaction floor." }, "maxPerTransaction": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Specifies the maximum allowable spending for a single transaction, working as a transaction ceiling." }, "volumeRanges": { "type": "array", "items": { "$ref": "#/components/schemas/VolumeRange" }, "description": "Defines the volume ranges for tiered pricing models." } }, "description": "Defines the specific parameters used for fee calculation.", "example": { "fixedAmount": { "currency": "USD", "valueDecimal": "0.0195" }, "variableRate": "0.15", "minPerTransaction": { "currency": "USD", "valueDecimal": "0.0195" }, "maxPerTransaction": { "currency": "USD", "valueDecimal": "0.035" }, "volumeRanges": [ { "fromValue": 1, "toValue": 2, "flatAmount": { "currency": "USD", "valueDecimal": "1.23" }, "perUnitAmount": { "currency": "USD", "valueDecimal": "1.23" } } ] } }, "FileDetails": { "type": "object", "required": [ "fileID", "fileName", "accountID", "filePurpose", "fileStatus", "metadata", "fileSizeBytes", "createdOn", "updatedOn" ], "properties": { "fileID": { "type": "string" }, "fileName": { "type": "string", "maxLength": 64, "example": "logo.png" }, "accountID": { "type": "string" }, "filePurpose": { "$ref": "#/components/schemas/FilePurpose" }, "fileStatus": { "$ref": "#/components/schemas/FileStatus" }, "metadata": { "type": "string", "format": "json", "example": "{\"error_code\": \"document-name-mismatch\", \"requirement_id\": \"document.individual.verification\", \"representative_id\": \"c63ab175-251d-497e-a267-7346d087e180\", \"comment\": \"testing comment\"" }, "decisionReason": { "type": "string", "example": "not correct file" }, "fileSizeBytes": { "type": "integer" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" } }, "description": "Describes a file linked to a Moov account." }, "FilePurpose": { "type": "string", "enum": [ "business_verification", "representative_verification", "individual_verification", "merchant_underwriting", "account_requirement", "identity_verification" ], "description": "The file's purpose.", "example": "representative_verification" }, "FileStatus": { "type": "string", "enum": [ "pending", "approved", "rejected" ], "description": "The file's status.", "example": "pending" }, "FileUploadPurpose": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/components/schemas/FilePurpose" } } }, "FileUploadRequestMultiPart": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "The file to be added. Valid types are `csv`, `png`, `jpeg`, `pdf`." }, "filePurpose": { "allOf": [ { "$ref": "#/components/schemas/FilePurpose" } ], "description": "The purpose of the file being uploaded." }, "metadata": { "type": "string", "description": "Additional metadata to be stored with the file, formatted as a JSON string.\n\nValid keys are `representative_id`, `comment`, `requirement_id`, `error_code`." } }, "required": [ "file", "filePurpose" ] }, "FileUploadValidationError": { "type": "object", "properties": { "evidenceType": { "type": "string" }, "file": { "type": "object", "properties": { "filename": { "type": "string" }, "mimeType": { "type": "string" } } } } }, "FileValidationError": { "type": "object", "properties": { "error": { "type": "string" }, "file": { "type": "string" }, "FileName": { "type": "string" }, "filePurpose": { "type": "string" }, "metadata": { "type": "string" } } }, "FinancialInstitutions": { "type": "object", "required": [ "achParticipants" ], "properties": { "achParticipants": { "type": "array", "items": { "$ref": "#/components/schemas/AchParticipant" } } } }, "Fulfillment": { "type": "object", "properties": { "method": { "$ref": "#/components/schemas/FulfillmentMethod" }, "timeframe": { "$ref": "#/components/schemas/FulfillmentTimeframe" } } }, "FulfillmentDetails": { "type": "object", "required": [ "hasPhysicalGoods", "isShippingProduct", "shipmentDurationDays", "returnPolicy" ], "properties": { "hasPhysicalGoods": { "type": "boolean" }, "isShippingProduct": { "type": "boolean" }, "shipmentDurationDays": { "type": "integer", "format": "int64" }, "returnPolicy": { "$ref": "#/components/schemas/ReturnPolicyType" } } }, "FulfillmentDetailsError": { "type": "object", "properties": { "shipmentDurationDays": { "type": "string" }, "returnPolicy": { "type": "string" } } }, "FulfillmentError": { "type": "object", "properties": { "method": { "type": "string" }, "timeframe": { "type": "string" } } }, "FulfillmentMethod": { "type": "string", "enum": [ "bill-or-debt-payment", "digital-content", "donation", "in-person-service", "local-pickup-or-delivery", "other", "remote-service", "shipped-physical-goods", "subscription-or-membership" ] }, "FulfillmentTimeframe": { "type": "string", "enum": [ "immediate", "other", "over-30-days", "pre-order", "recurring-schedule", "scheduled-event", "within-30-days", "within-7-days" ] }, "FullIssuedCard": { "type": "object", "required": [ "issuedCardID", "brand", "lastFourCardNumber", "expiration", "authorizedUser", "fundingWalletID", "state", "formFactor", "createdOn", "pan", "cvv" ], "properties": { "issuedCardID": { "type": "string" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "lastFourCardNumber": { "type": "string" }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "authorizedUser": { "$ref": "#/components/schemas/AuthorizedUser" }, "memo": { "type": "string", "description": "Optional descriptor for the card." }, "fundingWalletID": { "type": "string", "description": "Unique identifier for the wallet funding the card." }, "state": { "$ref": "#/components/schemas/IssuedCardState" }, "formFactor": { "$ref": "#/components/schemas/IssuedCardFormFactor" }, "controls": { "$ref": "#/components/schemas/IssuingControls" }, "createdOn": { "type": "string", "format": "date-time" }, "pan": { "type": "string", "minLength": 16, "maxLength": 19, "description": "The issued card's Primary Account Number (PAN)" }, "cvv": { "type": "string", "minLength": 3, "maxLength": 4, "description": "The issued card's 3- or 4-digit Card Verification Value (CVV)." } }, "description": "The full details of an issued card, including PAN and CVV." }, "GeneratedBy": { "type": "object", "properties": { "transferID": { "type": "string" }, "cardID": { "type": "string" }, "disputeID": { "type": "string" }, "accountID": { "type": "string" }, "bankAccountID": { "type": "string" }, "invoiceID": { "type": "string" } }, "description": "The entity that generated the fee." }, "GenericError": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "string" } } }, "GeographicReach": { "type": "string", "enum": [ "international-only", "us-and-international", "us-only" ] }, "GovernmentID": { "type": "object", "properties": { "ssn": { "type": "object", "properties": { "full": { "type": "string", "pattern": "^\\d{3}[-]?\\d{2}[-]?\\d{4}$" }, "lastFour": { "type": "string" } } }, "itin": { "type": "object", "properties": { "full": { "type": "string", "pattern": "^\\d{3}[-]?\\d{2}[-]?\\d{4}$" }, "lastFour": { "type": "string" } } } } }, "GovernmentIDError": { "type": "object", "properties": { "ssn": { "type": "object", "properties": { "full": { "type": "string" }, "lastFour": { "type": "string" } } }, "itin": { "type": "object", "properties": { "full": { "type": "string" }, "lastFour": { "type": "string" } } } } }, "GrantType": { "type": "string", "enum": [ "client_credentials", "refresh_token" ], "description": "The type of grant being requested.\n\n - `client_credentials`: A grant type used by clients to obtain an access token\n - `refresh_token`: A grant type used by clients to obtain a new access token using a refresh token" }, "GuestProfile": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The name associated with the guest account.\nThis will default to \"Guest {accountIDfirst8}\" if no other name is provided.", "example": "Guest 75e5fbb8" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" } }, "description": "Describes a guest account profile." }, "ID": { "type": "string", "maxLength": 36, "description": "A unique identifier for a Moov resource. Supports UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) or typed format with base32-encoded UUID and type suffix (e.g., kuoaydiojf7uszaokc2ggnaaaa_xfer)." }, "ImageID": { "type": "string", "description": "Unique identifier for a image resource." }, "ImageMetadata": { "type": "object", "required": [ "imageID", "publicID", "link", "createdOn", "updatedOn" ], "properties": { "imageID": { "$ref": "#/components/schemas/ImageID" }, "publicID": { "allOf": [ { "$ref": "#/components/schemas/ImagePublicID" } ], "description": "The ID used to get an image with the public endpoint." }, "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." }, "link": { "type": "string", "format": "uri", "description": "A public URL to access the image. An optional `size={width}x{height}` \nquery parameter can be provided to resize the image.", "example": "https://api.moov.io/images/qJRAaAwwF5hmfeAFdHjIb" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "disabledOn": { "type": "string", "format": "date-time" } }, "description": "Metadata about an uploaded image." }, "ImageMetadataRequest": { "type": "object", "properties": { "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." } }, "description": "Request body for creating or updating image metadata." }, "ImageMetadataValidationError": { "type": "object", "properties": { "altText": { "type": "string" } } }, "ImagePublicID": { "type": "string", "pattern": "[A-Za-z0-9_-]{21}", "description": "A unique identifier for an image, used in public image links." }, "ImageRequestValidationError": { "type": "object", "properties": { "image": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/ImageMetadataValidationError" } } }, "ImageUploadRequestMultiPart": { "type": "object", "properties": { "image": { "type": "string", "format": "binary", "description": "A PNG, JPEG, or WebP image file to upload." }, "metadata": { "allOf": [ { "$ref": "#/components/schemas/ImageMetadataRequest" } ], "description": "Optional, json-encoded metadata to associate with the uploaded image." } }, "required": [ "image" ] }, "IncurredFee": { "type": "object", "properties": { "feeID": { "type": "string" }, "accountID": { "type": "string", "description": "Account ID the fee belongs to." }, "walletID": { "type": "string", "description": "Wallet ID associated with the fee." }, "createdOn": { "type": "string", "format": "date-time", "description": "Timestamp when the fee was created." }, "feeName": { "type": "string", "description": "Name of the fee." }, "amount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The fee amount." }, "generatedBy": { "allOf": [ { "$ref": "#/components/schemas/GeneratedBy" } ], "description": "Object indicating what generated the fee (TransferID, CardID, DisputeID, AccountID, or BankAccountID)." }, "feeGroup": { "type": "string", "description": "Describes the source of the fee, such as a Moov-set processing fee, a network pass-through fee, or an interchange or discount fee." }, "residualID": { "type": "string", "description": "Unique identifier for this residual payment calculation." } }, "description": "A fee incurred by a user." }, "IndividualName": { "type": "object", "required": [ "firstName", "lastName" ], "properties": { "firstName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The individual's first given name.", "example": "Jordan" }, "middleName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The individual's second given name, if any.", "example": "Reese" }, "lastName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The individual's family name.", "example": "Lee" }, "suffix": { "type": "string", "maxLength": 20, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "Suffix of a given name.", "example": "Jr" } } }, "IndividualNameError": { "type": "object", "properties": { "firstName": { "type": "string" }, "middleName": { "type": "string" }, "lastName": { "type": "string" }, "suffix": { "type": "string" } } }, "IndividualNameUpdate": { "type": "object", "properties": { "firstName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The individual's first given name.", "example": "Jordan" }, "middleName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The individual's second given name, if any.", "example": "Reese" }, "lastName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "The individual's family name.", "example": "Lee" }, "suffix": { "type": "string", "maxLength": 20, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!-]*", "description": "Suffix of a given name.", "example": "Jr" } } }, "IndividualProfile": { "type": "object", "required": [ "name" ], "properties": { "name": { "$ref": "#/components/schemas/IndividualName" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/Address" }, "birthDateProvided": { "type": "boolean", "description": "Indicates whether this individual's birth date has been provided." }, "governmentIDProvided": { "type": "boolean", "description": "Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this individual." } }, "description": "Describes an individual." }, "IndustryCodes": { "type": "object", "properties": { "naics": { "type": "string", "minLength": 2, "maxLength": 6, "example": "713940" }, "sic": { "type": "string", "minLength": 4, "maxLength": 4, "example": "7991" }, "mcc": { "type": "string", "minLength": 4, "maxLength": 4, "example": "7997" } } }, "IndustryTaxonomies": { "type": "object", "required": [ "industries" ], "properties": { "industries": { "type": "array", "items": { "$ref": "#/components/schemas/IndustryTaxonomy" } } }, "description": "A list of structured industries mapped to default MCC codes." }, "IndustryTaxonomy": { "type": "object", "required": [ "industry", "displayName", "category", "categoryDisplayName", "defaultMcc" ], "properties": { "industry": { "type": "string", "description": "Classification identifier for the industry.", "example": "clothing-accessories" }, "displayName": { "type": "string", "description": "Display name of the industry", "example": "Clothing & Accessories" }, "category": { "type": "string", "description": "Category slug", "example": "retail" }, "categoryDisplayName": { "type": "string", "description": "Human-readable category label", "example": "Retail" }, "defaultMcc": { "type": "string", "maxLength": 4, "description": "Default Merchant Category Code", "example": "5651" } }, "description": "A structured industry taxonomy entry with category and mapped to a default MCC code." }, "InstantPaymentFees": { "type": "object", "required": [ "rtpCreditTransaction", "pushToCardTransaction", "pullFromCardTransaction", "instantVerification", "total" ], "properties": { "rtpCreditTransaction": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for RTP credit transactions." }, "rtpDecline": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for RTP declines." }, "pushToCardTransaction": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for push-to-card transactions." }, "pushToCardDecline": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for push-to-card declines." }, "pullFromCardTransaction": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for pull-from-card transactions." }, "pullFromCardDecline": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for pull-from-card declines." }, "pullFromCardRefund": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for pull-from-card refunds." }, "instantVerification": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for instant payment verifications." }, "total": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Total instant payment fees." } }, "description": "A detailed breakdown of instant payment fees." }, "InstitutionLogo": { "type": "object", "required": [ "name", "url" ], "properties": { "name": { "type": "string" }, "url": { "type": "string" } } }, "InstitutionsSearchResponse": { "type": "object", "required": [ "ach", "rtp", "wire", "fednow" ], "properties": { "ach": { "type": "array", "items": { "$ref": "#/components/schemas/ACHInstitution" }, "nullable": true }, "rtp": { "type": "array", "items": { "$ref": "#/components/schemas/RTPInstitution" }, "nullable": true }, "wire": { "type": "array", "items": { "$ref": "#/components/schemas/WireInstitution" }, "nullable": true }, "fednow": { "type": "array", "items": { "$ref": "#/components/schemas/FedNowInstitution" }, "nullable": true } } }, "InvoiceLineItemImageMetadata": { "type": "object", "required": [ "imageID", "link", "publicID" ], "properties": { "imageID": { "$ref": "#/components/schemas/ID" }, "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." }, "link": { "type": "string", "format": "uri", "description": "The image's public URL.", "example": "https://api.moov.io/images/q7lKWleAy9fUNhEGezQ1g" }, "publicID": { "$ref": "#/components/schemas/ImagePublicID" } } }, "InvoiceStatus": { "type": "string", "enum": [ "draft", "unpaid", "payment-pending", "paid", "overdue", "canceled" ] }, "IssuedCard": { "type": "object", "required": [ "issuedCardID", "brand", "lastFourCardNumber", "expiration", "authorizedUser", "fundingWalletID", "state", "formFactor", "createdOn" ], "properties": { "issuedCardID": { "type": "string" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "lastFourCardNumber": { "type": "string" }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "authorizedUser": { "$ref": "#/components/schemas/AuthorizedUser" }, "memo": { "type": "string", "description": "Optional descriptor for the card." }, "fundingWalletID": { "type": "string", "description": "Unique identifier for the wallet funding the card." }, "state": { "$ref": "#/components/schemas/IssuedCardState" }, "formFactor": { "$ref": "#/components/schemas/IssuedCardFormFactor" }, "controls": { "$ref": "#/components/schemas/IssuingControls" }, "createdOn": { "type": "string", "format": "date-time" } } }, "IssuedCardAuthorization": { "type": "object", "required": [ "authorizationID", "issuedCardID", "fundingWalletID", "network", "authorizedAmount", "status", "merchantData", "createdOn" ], "properties": { "authorizationID": { "type": "string" }, "issuedCardID": { "type": "string" }, "fundingWalletID": { "type": "string" }, "network": { "$ref": "#/components/schemas/CardIssuingNetwork" }, "authorizedAmount": { "$ref": "#/components/schemas/SignedDecimalString" }, "status": { "$ref": "#/components/schemas/IssuingAuthorizationStatus" }, "merchantData": { "$ref": "#/components/schemas/IssuingMerchantData" }, "createdOn": { "type": "string", "format": "date-time" }, "cardTransactions": { "type": "array", "items": { "type": "string" }, "description": "List of card transaction IDs associated with this authorization." } } }, "IssuedCardAuthorizationEvent": { "type": "object", "required": [ "eventID", "eventType", "amount", "result", "createdOn" ], "properties": { "eventID": { "type": "string", "description": "The identifier for this event. Use the `eventType` field to determine what resource is identified by this ID (`authorization`, `reversal`, etc.)." }, "eventType": { "$ref": "#/components/schemas/IssuedCardEventType" }, "amount": { "$ref": "#/components/schemas/SignedDecimalString" }, "result": { "$ref": "#/components/schemas/IssuedCardAuthorizationEventResult" }, "createdOn": { "type": "string", "format": "date-time" } } }, "IssuedCardAuthorizationEventResult": { "type": "string", "enum": [ "approved", "declined", "processed" ], "description": "The result of an event." }, "IssuedCardEventType": { "type": "string", "enum": [ "authorization", "reversal", "authorization-advice", "authorization-expiration", "authorization-incremental", "clearing" ], "description": "The type of event that occurred on the card." }, "IssuedCardFormFactor": { "type": "string", "enum": [ "virtual" ], "description": "Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card." }, "IssuedCardState": { "type": "string", "enum": [ "active", "inactive", "pending-verification", "closed" ], "description": "The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.\n\n- `active`: The card is operational and approves authorizations. Generally becomes active shortly after card creation.\n- `inactive`: The card cannot approve authorizations. This is currently a temporary state assigned post-creation during the activation process.\n- `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.\n- `pending-verification`: Awaiting additional authorized user verification before the card can be activated." }, "IssuedCardTransaction": { "type": "object", "required": [ "cardTransactionID", "issuedCardID", "fundingWalletID", "amount", "authorizedOn", "merchantData", "createdOn" ], "properties": { "cardTransactionID": { "type": "string" }, "issuedCardID": { "type": "string" }, "fundingWalletID": { "type": "string" }, "amount": { "$ref": "#/components/schemas/SignedDecimalString" }, "authorizationID": { "type": "string" }, "authorizedOn": { "type": "string", "format": "date-time" }, "merchantData": { "$ref": "#/components/schemas/IssuingMerchantData" }, "createdOn": { "type": "string", "format": "date-time" } } }, "IssuingAuthorizationStatus": { "type": "string", "enum": [ "pending", "declined", "canceled", "cleared", "expired" ], "description": "Status of a card issuing authorization." }, "IssuingControls": { "type": "object", "properties": { "singleUse": { "type": "boolean", "description": "Indicates if the card is single-use. If true, the card closes after the first authorization." }, "velocityLimits": { "type": "array", "items": { "$ref": "#/components/schemas/IssuingVelocityLimit" }, "description": "Sets the spending limit per time interval. Only one limit per interval is supported." } } }, "IssuingControlsError": { "type": "object", "properties": { "velocityLimits": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/IssuingVelocityLimitError" } } }, "example": { "velocityLimits": { "0": { "amount": "must be no less than 1", "interval": "must be a valid value" } } } }, "IssuingIntervalLimit": { "type": "string", "enum": [ "per-transaction" ], "description": "Specifies the time frame for the velocity limit. Currently supports only per-transaction limits." }, "IssuingMerchantData": { "type": "object", "required": [ "networkID", "country", "mcc" ], "properties": { "networkID": { "type": "string", "description": "External identifier used to identify the merchant with the card brand." }, "name": { "type": "string", "description": "Name of the merchant.", "example": "Whole Body Fitness" }, "city": { "type": "string", "description": "The merchant's location.", "example": "San Francisco" }, "country": { "type": "string", "description": "Two-letter country code.", "example": "US" }, "postalCode": { "type": "string", "description": "The merchant's five-digit postal code.", "example": "94107" }, "state": { "type": "string", "description": "The merchant's two-letter state abbreviation.", "example": "CA" }, "mcc": { "type": "string", "description": "The Merchant Category Code.", "example": "7298" } } }, "IssuingVelocityLimit": { "type": "object", "required": [ "amount", "interval" ], "properties": { "amount": { "type": "integer", "format": "int64", "description": "The maximum amount in cents that can be spent in a given interval.", "example": 10000 }, "interval": { "$ref": "#/components/schemas/IssuingIntervalLimit" } } }, "IssuingVelocityLimitError": { "type": "object", "properties": { "amount": { "type": "string" }, "interval": { "type": "string" } } }, "ItemListNextPage": { "type": "object", "required": [ "cursor" ], "properties": { "cursor": { "type": "string", "description": "The cursor value to use for the next page of items." } } }, "JSONWebEncryptionToken": { "type": "string", "format": "jwe", "description": "An [RFC](https://datatracker.ietf.org/doc/html/rfc7516) compact-serialized JSON Web Encryption (JWE) token." }, "JSONWebKey": { "type": "object", "required": [ "kty" ], "properties": { "kty": { "type": "string", "description": "The cryptographic algorithm family used with the key (e.g., 'RSA', 'EC', 'oct')." }, "use": { "type": "string", "enum": [ "sig", "enc" ], "description": "The intended use of the key. 'sig' for signature, 'enc' for encryption." }, "key_ops": { "type": "array", "items": { "type": "string" }, "description": "The permitted operations for the key, e.g., 'sign', 'verify', 'encrypt', 'decrypt'." }, "alg": { "type": "string", "description": "The algorithm intended for use with the key, e.g., 'RS256' or 'ES256'." }, "kid": { "type": "string", "description": "A unique identifier for the key." }, "crv": { "type": "string", "description": "The curve for Elliptic Curve keys, e.g., 'P-256', 'P-384', or 'P-521'.\n\nThis field is required when `kty` is 'EC'." }, "x": { "type": "string", "description": "The x coordinate for Elliptic Curve keys.\n\nThis field is required when `kty` is 'EC'." }, "y": { "type": "string", "description": "The y coordinate for Elliptic Curve keys.\n\nThis field is required when `kty` is 'EC'." }, "n": { "type": "string", "description": "The modulus value for RSA keys.\n\nThis field is required when `kty` is 'RSA'." }, "e": { "type": "string", "description": "The exponent value for RSA keys.\n\nThis field is required when `kty` is 'RSA'." } }, "description": "Describes an [RFC7517](https://datatracker.ietf.org/doc/html/rfc7517) web key.", "example": { "use": "enc", "kty": "EC", "kid": "bOaoOIgm-7dI_gBIvsr0jQrPyYp6H_od0Ok-hSYZQ-g=", "crv": "P-521", "alg": "ECDH-ES+A256KW", "x": "ABcm3wzKpPzYYwjDC0HSrxxVM3ULbuMDUuzkR5wNciaMHkZvQ02gLFdqTL65evV7EWaQyC7zRc28eW20p5MVDdQr", "y": "AVa-eQsoiltOcQYy1QEcrQ9NbWktl_D4ewfg8diOZ2_svLEgEu4T1PqNcLbBGozP_VqPkXOMwNCUNI7pxajVGiIP" } }, "LinkAccountTerminalApplication": { "type": "object", "required": [ "terminalApplicationID" ], "properties": { "terminalApplicationID": { "$ref": "#/components/schemas/TerminalApplicationID" } }, "description": "Describes a request to link an account with a terminal application." }, "LinkApplePay": { "type": "object", "required": [ "token" ], "properties": { "token": { "$ref": "#/components/schemas/LinkApplePayToken" }, "billingContact": { "$ref": "#/components/schemas/AppleBillingContact" } }, "description": " The JSON structure returned from Apple Pay when authorizing a payment session.\n\n Refer to [Apple's documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment) \n for more information." }, "LinkApplePayError": { "type": "object", "properties": { "error": { "type": "string", "description": "Describes an error that wasn't attributable to a single request field." }, "paymentData": { "type": "string", "description": "Describes an error within the `token.paymentData` request field." }, "paymentMethod": { "type": "string", "description": "Describes an error within the `token.paymentMethod` request field." }, "transactionIdentifier": { "type": "string", "description": "Describes an error within the `token.transactionIdentifier` request field." } } }, "LinkApplePayToken": { "type": "object", "required": [ "paymentData", "paymentMethod", "transactionIdentifier" ], "properties": { "paymentData": { "$ref": "#/components/schemas/LinkApplePaymentData" }, "paymentMethod": { "$ref": "#/components/schemas/LinkApplePaymentMethod" }, "transactionIdentifier": { "type": "string", "description": "A unique identifier provided by Apple Pay for this payment.", "example": "32b...4f3" } }, "description": " Contains the user's payment information as returned from Apple Pay.\n\n Refer to [Apple's documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymenttoken) \n for more information." }, "LinkApplePaymentData": { "type": "object", "required": [ "version", "data", "signature", "header" ], "properties": { "version": { "type": "string", "description": "Specifies the encryption used for the payment token (\"EC_v1\" or \"RSA_v1\").", "example": "EC_v1" }, "data": { "type": "string", "description": "The encrypted, base64-encoded payment data.", "example": "3+f4oOTwPa6f1UZ6tG...CE=" }, "signature": { "type": "string", "description": "A base64 encoded signature of the payment and header data.", "example": "MIAGCSqGSIb3DQ.AAAA==" }, "header": { "$ref": "#/components/schemas/ApplePayHeader" } }, "description": " Contains the encrypted payment data.\n\n Refer to [Apple's documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymenttoken/1916115-paymentdata) \n for more information." }, "LinkApplePaymentMethod": { "type": "object", "required": [ "displayName", "network", "type" ], "properties": { "displayName": { "type": "string", "description": "A display-friendly discription of the card.", "example": "Visa 1234" }, "network": { "type": "string", "description": "The card's payment network.", "example": "Visa" }, "type": { "type": "string", "description": "The type of card.", "example": "debit" } }, "description": " Provides information about the underlying card.\n\n Refer to [Apple's documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymenttoken/1916113-paymentmethod) \n for more information." }, "LinkBankAccount": { "oneOf": [ { "$ref": "#/components/schemas/BankAccountPayload" }, { "$ref": "#/components/schemas/PlaidPayload" }, { "$ref": "#/components/schemas/PlaidLinkPayload" }, { "$ref": "#/components/schemas/MxPayload" } ] }, "LinkCard": { "type": "object", "required": [ "cardNumber", "cardCvv", "expiration", "billingAddress" ], "properties": { "e2ee": { "$ref": "#/components/schemas/E2EEToken" }, "cardNumber": { "type": "string" }, "cardCvv": { "type": "string" }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "holderName": { "type": "string" }, "billingAddress": { "$ref": "#/components/schemas/CardAddress" }, "cardOnFile": { "type": "boolean" }, "merchantAccountID": { "type": "string" }, "verifyName": { "type": "boolean" } }, "example": { "cardNumber": "4111111111111111", "cardCvv": "123", "expiration": { "month": "01", "year": "21" }, "holderName": "Jules Jackson", "billingAddress": { "postalCode": "80301" } } }, "LinkCardError": { "type": "object", "properties": { "error": { "type": "string" }, "e2ee": { "$ref": "#/components/schemas/End2EndEncryptionError" }, "cardNumber": { "type": "string" }, "cardCvv": { "type": "string" }, "expiration": { "type": "string" }, "holderName": { "type": "string" }, "billingAddress": { "type": "string" }, "cardOnFile": { "type": "string" }, "merchantAccountID": { "type": "string" }, "verifyName": { "type": "string" } } }, "LinkCardWaitFor": { "type": "string", "enum": [ "payment-method" ], "example": "payment-method" }, "LinkedApplePayPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "applePay" ], "properties": { "paymentMethodID": { "type": "string", "description": "The new payment method's ID." }, "paymentMethodType": { "$ref": "#/components/schemas/PaymentMethodType" }, "applePay": { "$ref": "#/components/schemas/ApplePayResponse" } } }, "ListFeesFetchRequest": { "type": "object", "properties": { "feeIDs": { "type": "array", "items": { "$ref": "#/components/schemas/uuid" } } }, "description": "Array of fee IDs to fetch." }, "ListTransfersValidationError": { "type": "object", "properties": { "accountIDs": { "type": "string" }, "status": { "type": "string" }, "startDateTime": { "type": "string" }, "endDateTime": { "type": "string" }, "skip": { "type": "string" }, "count": { "type": "string" }, "groupID": { "type": "string" }, "foreignID": { "type": "string" }, "scheduleID": { "type": "string" }, "paymentLinkCode": { "type": "string" }, "refunded": { "type": "string" }, "disputed": { "type": "string" } } }, "ListWalletTransactionsValidationError": { "type": "object", "properties": { "transactionType": { "type": "string" }, "transactionTypes": { "type": "string" }, "sourceType": { "type": "string" }, "sourceID": { "type": "string" }, "status": { "type": "string" }, "sweepID": { "type": "string" }, "createdStartDateTime": { "type": "string" }, "createdEndDateTime": { "type": "string" }, "completedStartDateTime": { "type": "string" }, "completedEndDateTime": { "type": "string" }, "statementDescriptor": { "type": "string" }, "skip": { "type": "string" }, "count": { "type": "string" } } }, "ListWalletsValidationError": { "type": "object", "properties": { "status": { "type": "string" }, "walletType": { "type": "string" }, "skip": { "type": "string" }, "count": { "type": "string" } } }, "MXAuthorizationCode": { "type": "object", "required": [ "authorizationCode" ], "properties": { "authorizationCode": { "type": "string" } }, "description": "The authorization code of a MX account which allows a processor to retrieve a linked payment account. \n\n`sandbox` - When linking a bank account to a `sandbox` account using a MX authorization code it will utilize MX's sandbox environment. \nThe MX authorization code provided must be generated from MX's sandbox environment." }, "ManualTermsOfService": { "type": "object", "required": [ "acceptedDate", "acceptedIP", "acceptedUserAgent", "acceptedDomain" ], "properties": { "acceptedDate": { "type": "string", "format": "date-time", "description": "The date and time the terms of service were accepted." }, "acceptedIP": { "type": "string", "format": "ipv4", "description": "The IP address from which the terms of service were accepted.", "example": "172.217.2.46" }, "acceptedUserAgent": { "type": "string", "maxLength": 255, "description": "The user-agent of the user making the request.", "example": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36" }, "acceptedDomain": { "type": "string", "format": "uri" } }, "description": "Describes the acceptance of the Terms of Service. All data is required, and must be from the user.", "title": "Manual" }, "ManualTermsOfServiceUpdate": { "type": "object", "properties": { "acceptedDate": { "type": "string", "format": "date-time", "description": "The date and time the terms of service were accepted." }, "acceptedIP": { "type": "string", "format": "ipv4", "description": "The IP address from which the terms of service were accepted.", "example": "172.217.2.46" }, "acceptedUserAgent": { "type": "string", "maxLength": 255, "description": "The user-agent of the user making the request.", "example": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36" }, "acceptedDomain": { "type": "string", "format": "uri" } }, "description": "Describes the acceptance of the Terms of Service. All data is required, and must be from the user.", "title": "Manual" }, "ManualToSError": { "type": "object", "properties": { "acceptedDate": { "type": "string" }, "acceptedDomain": { "type": "string" }, "acceptedIP": { "type": "string" }, "acceptedUserAgent": { "type": "string" } } }, "MerchantAccountID": { "type": "string", "description": "ID of the merchant account.", "example": "76d4c8a0-1f2b-4e3b-8f5c-7a9e1b2c3d4e" }, "Metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Free-form key-value pair list. Useful for storing information that is not captured elsewhere.", "example": { "optional": "metadata" } }, "MicroDepositStatus": { "type": "string", "enum": [ "verified" ] }, "MicroDepositValidationError": { "type": "object", "properties": { "amounts": { "type": "string" } } }, "MinimumCommitment": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The minimum spending amount that must be met in the billing period. If actual usage is below the minimum amount, account is charged the difference." }, "Mode": { "type": "string", "enum": [ "sandbox", "production" ], "description": "The operating mode for an account.", "example": "production" }, "MoneyTransfer": { "type": "object", "properties": { "pullFromCard": { "$ref": "#/components/schemas/MoneyTransferPullFromCard" }, "pushToCard": { "$ref": "#/components/schemas/MoneyTransferPushToCard" } } }, "MoneyTransferError": { "type": "object", "properties": { "pullFromCard": { "$ref": "#/components/schemas/MoneyTransferPullFromCardError" }, "pushToCard": { "$ref": "#/components/schemas/MoneyTransferPushToCardError" } } }, "MoneyTransferPullFromCard": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "MoneyTransferPullFromCardError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "MoneyTransferPushToCard": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "MoneyTransferPushToCardError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "MonthlyPlatformFee": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fixed recurring amount paid in the billing period regardless of usage." }, "MonthlyVolumeRange": { "type": "string", "enum": [ "under-10k", "10k-50k", "50k-100k", "100k-250k", "250k-500k", "500k-1m", "1m-5m", "over-5m" ], "description": "The low value in each range is included. The high value in each range is excluded." }, "MoovFee": { "type": "object", "required": [ "accountID", "transferParty", "totalAmount", "feeIDs" ], "properties": { "accountID": { "type": "string", "description": "ID of the account that fees were charged to." }, "transferParty": { "allOf": [ { "$ref": "#/components/schemas/TransferParty" } ], "description": "Indicates whether the account charged was the partner, source, or destination of the transfer." }, "totalAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The total amount of fees charged to the account." }, "feeIDs": { "type": "array", "items": { "type": "string" }, "description": "List of fee IDs that sum to the totalAmount." } }, "description": "Moov fee charged to an account involved in a transfer." }, "MoovFeeDetails": { "type": "object", "required": [ "moovProcessing" ], "properties": { "cardScheme": { "type": "string", "description": "Card scheme fees accrued during authorization and settlement. String type represents dollars with up to 9 decimal place precision." }, "interchange": { "type": "string", "description": "Network interchange fee for Visa, Mastercard, or Discover. String type represents dollars with up to 9 decimal place precision." }, "discount": { "type": "string", "description": "Network discount fee for American Express. String type represents dollars with up to 9 decimal place precision." }, "moovProcessing": { "type": "string", "description": "Moov processing fee. String type represents dollars with up to 9 decimal place precision." } }, "description": "Processing and pass-through costs that add up to the moovFee." }, "MoovWalletPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "wallet" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "moov-wallet" ] }, "wallet": { "$ref": "#/components/schemas/PaymentMethodsWallet" } }, "title": "Moov wallet" }, "MoovWalletTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "wallet" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "moov-wallet" ] }, "wallet": { "$ref": "#/components/schemas/TransferPaymentMethodsWallet" } }, "title": "Moov wallet" }, "MxPayload": { "type": "object", "required": [ "mx" ], "properties": { "mx": { "$ref": "#/components/schemas/MXAuthorizationCode" } }, "description": "Describes the account to link to the Moov account using a MX processor token. \n\n`sandbox` - When linking a bank account to a `sandbox` account using an MX authorization token a default bank account routing number will\nbe used. The following default data will be used to generate the bank account in this flow:\n\n```\n RoutingNumber: \"123456780\",\n BankName: \"Gringotts Bank\"\n```", "title": "MX" }, "Occurrence": { "type": "object", "properties": { "canceled": { "type": "boolean", "description": "If set to true, will cancel the occurrence. If set false will resume the occurrence. If unset leaves the value unchanged." }, "occurrenceID": { "type": "string", "description": " If set this defines what occurrence to modify, if invalid will fail the request. \n If null or \"\" it defines to add a new occurrence.", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "runOn": { "type": "string", "format": "date-time", "description": "Timestamp to run the transfer after. Value must be into the future.", "example": "2009-11-10T23:00:00Z" }, "runTransfer": { "$ref": "#/components/schemas/CreateRunTransfer" } }, "description": "Occurrences to either create or modify." }, "OccurrenceStatus": { "type": "string", "enum": [ "pending", "failed", "completed" ], "description": "Status of the completed occurrence." }, "OccurrencesResponse": { "type": "object", "required": [ "runOn", "runTransfer" ], "properties": { "scheduleID": { "type": "string" }, "occurrenceID": { "type": "string" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/Mode" } ], "description": "Sandbox or production account mode of this schedule." }, "generated": { "type": "boolean", "description": "True if this was generated by a RRule." }, "indefinite": { "type": "boolean", "description": "True if the RRule set runs indefinitely." }, "canceledOn": { "type": "string", "format": "date-time" }, "runOn": { "type": "string", "format": "date-time" }, "runTransfer": { "$ref": "#/components/schemas/RunTransfer" }, "ranOn": { "type": "string", "format": "date-time" }, "ranTransferID": { "type": "string" }, "status": { "$ref": "#/components/schemas/OccurrenceStatus" }, "error": { "type": "object", "properties": { "message": { "type": "string" } }, "description": "Contains details on why the occurrence errored." } } }, "OnboardingInvite": { "type": "object", "required": [ "code", "link", "scopes", "capabilities", "feePlanCodes", "createdOn" ], "properties": { "code": { "$ref": "#/components/schemas/OnboardingInviteCode" }, "link": { "type": "string", "format": "uri", "description": "A unique URL, including the invite code, that the recipient can follow to redeem the invitation." }, "returnURL": { "type": "string", "description": "The scopes requested by the inviter." }, "termsOfServiceURL": { "type": "string", "description": "The terms of service URL set by the inviter." }, "scopes": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationScope" }, "minItems": 1, "description": "List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this\naccount. These values are used to determine what can be done with the account onboarded.", "example": [ "accounts.read" ] }, "grantScopes": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationScope" }, "minItems": 0, "description": " List of [scopes](https://docs.moov.io/api/authentication/scopes/) you grant to allow being used \n by the new account on yourself. These values are used to determine what the account onboarded can do.", "example": [ "transfers.write" ] }, "capabilities": { "type": "array", "items": { "$ref": "#/components/schemas/CapabilityID" }, "minItems": 1, "description": " List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this\n account. These values are used to determine what information to collect from the user during onboarding.", "example": [ "transfers" ] }, "feePlanCodes": { "type": "array", "items": { "type": "string" }, "minItems": 1, "description": "List of fee plan codes to assign the account created by the invitee.", "example": [ "merchant-direct" ] }, "redeemedAccountID": { "type": "string", "description": "The account ID of the account that redeemed the invite." }, "prefill": { "$ref": "#/components/schemas/CreateAccount" }, "partner": { "$ref": "#/components/schemas/OnboardingPartnerAccount" }, "createdOn": { "type": "string", "format": "date-time" }, "revokedOn": { "type": "string", "format": "date-time" }, "redeemedOn": { "type": "string", "format": "date-time" } } }, "OnboardingInviteCode": { "type": "string", "description": "A unique code that identifies an onboarding invite.", "example": "N1IA5eWYNh" }, "OnboardingInviteError": { "type": "object", "properties": { "returnURL": { "type": "string" }, "termsOfServiceURL": { "type": "string" }, "scopes": { "$ref": "#/components/schemas/ArrayValidationError" }, "capabilities": { "$ref": "#/components/schemas/ArrayValidationError" }, "feePlanCodes": { "$ref": "#/components/schemas/ArrayValidationError" } } }, "OnboardingInviteRequest": { "type": "object", "required": [ "scopes", "capabilities", "feePlanCodes" ], "properties": { "returnURL": { "type": "string", "format": "uri", "description": "Optional URL to redirect the user to after they complete the onboarding process." }, "termsOfServiceURL": { "type": "string", "format": "uri", "description": "Optional URL to your organization's terms of service." }, "scopes": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationScope" }, "minItems": 1, "description": " List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this\n account. These values are used to determine what can be done with the account onboarded.", "example": [ "accounts.read" ] }, "grantScopes": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationScope" }, "minItems": 0, "description": " List of [scopes](https://docs.moov.io/api/authentication/scopes/) you grant to allow being used \n by the new account on yourself. These values are used to determine what the account onboarded can do.", "example": [ "transfers.write" ] }, "capabilities": { "type": "array", "items": { "$ref": "#/components/schemas/CapabilityID" }, "minItems": 1, "description": " List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this\n account. These values are used to determine what information to collect from the user during onboarding.", "example": [ "transfers" ] }, "feePlanCodes": { "type": "array", "items": { "type": "string" }, "minItems": 1, "description": "List of fee plan codes to assign the account created by the invitee.", "example": [ "merchant-direct" ] }, "prefill": { "$ref": "#/components/schemas/CreateAccount" } }, "description": "Request to create an onboarding invite." }, "OnboardingPartnerAccount": { "type": "object", "required": [ "accountID", "accountMode", "displayName" ], "properties": { "accountID": { "type": "string", "description": "The account ID of the partner that created the invite." }, "accountMode": { "$ref": "#/components/schemas/Mode" }, "displayName": { "type": "string", "description": "The name of the Moov account used to create the onboarding invite.", "example": "Bob's Widgets" } }, "description": "The account that created the onboarding invite." }, "OperatingCountry": { "type": "string", "maxLength": 64, "example": "United States" }, "OrderBy": { "type": "string", "description": "Optional parameter to order the results in the query.", "example": "created-at:desc" }, "OtherCardFees": { "type": "object", "required": [ "disputes", "cardAccountUpdater", "cardVerification", "nameVerification", "total" ], "properties": { "disputes": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for disputes." }, "cardAccountUpdater": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for card account updater services." }, "cardVerification": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for card verification." }, "nameVerification": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Fees for name verification." }, "total": { "allOf": [ { "$ref": "#/components/schemas/BillingCountAndAmount" } ], "description": "Total other card fees." } }, "description": "A detailed breakdown of other card-related fees." }, "PartialScheduleAccount": { "type": "object", "required": [ "accountID", "displayName" ], "properties": { "accountID": { "type": "string" }, "displayName": { "type": "string" }, "email": { "type": "string" } } }, "PartnerFees": { "type": "object", "required": [ "minimumCommitment", "monthlyPlatform", "total" ], "properties": { "minimumCommitment": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The minimum spending amount that must be met in the billing period. If actual usage is below the minimum amount, account is charged the difference." }, "monthlyPlatform": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fixed recurring fee for the billing period regardless of usage." }, "total": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total partner fees." } }, "description": "Monthly partner costs that are charged separately and not included in residual subtotal (e.g. platform fees, minimums)." }, "PartnerPricingAgreement": { "type": "object", "required": [ "revenueShare" ], "properties": { "revenueShare": { "type": "string", "description": " The decimal-formatted numerical string of the revenue split for partner.\n \n For example, 2.25% is '2.25'.", "example": "2.25" } }, "allOf": [ { "$ref": "#/components/schemas/FeePlanAgreement" } ] }, "PatchAccount": { "type": "object", "properties": { "profile": { "$ref": "#/components/schemas/PatchProfile" }, "metadata": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/Metadata" } ], "nullable": true }, "termsOfService": { "$ref": "#/components/schemas/TermsOfServicePayloadUpdate" }, "foreignID": { "type": "string" }, "customerSupport": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/CustomerSupportUpdate" } ], "nullable": true }, "settings": { "$ref": "#/components/schemas/CreateAccountSettings" } }, "description": "Describes the fields available when patching a Moov account." }, "PatchAccountError": { "type": "object", "properties": { "profile": { "$ref": "#/components/schemas/CreateProfileError" }, "metadata": { "type": "string" }, "termsOfService": { "$ref": "#/components/schemas/TermsOfServiceError" }, "foreignID": { "type": "string" }, "customerSupport": { "$ref": "#/components/schemas/CustomerSupportError" }, "settings": { "$ref": "#/components/schemas/CreateAccountSettings" }, "error": { "type": "string" } } }, "PatchBusiness": { "type": "object", "properties": { "legalBusinessName": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!+-]*" }, "doingBusinessAs": { "type": "string", "maxLength": 64, "pattern": "[À-ÖØ-öø-ÿ\"'(),.0-9A-Za-z~ &!+-]*" }, "businessType": { "$ref": "#/components/schemas/BusinessType" }, "address": { "$ref": "#/components/schemas/AddressUpdate" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "website": { "type": "string", "maxLength": 100 }, "description": { "type": "string", "minLength": 10, "maxLength": 100, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+" }, "taxID": { "$ref": "#/components/schemas/TaxIDUpdate" }, "ownersProvided": { "type": "boolean" }, "industryCodes": { "$ref": "#/components/schemas/IndustryCodes" }, "industry": { "type": "string", "description": "Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.", "example": "electronics-appliances" }, "primaryRegulator": { "$ref": "#/components/schemas/PrimaryRegulator" } } }, "PatchIndividual": { "type": "object", "properties": { "name": { "$ref": "#/components/schemas/IndividualNameUpdate" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/AddressUpdate" }, "birthDate": { "$ref": "#/components/schemas/BirthDateUpdate" }, "governmentID": { "$ref": "#/components/schemas/GovernmentID" } }, "description": "Describes the fields available when patching an individual." }, "PatchProfile": { "type": "object", "properties": { "individual": { "$ref": "#/components/schemas/PatchIndividual" }, "business": { "$ref": "#/components/schemas/PatchBusiness" } }, "description": "Describes the fields available when patching a profile.\nEach object can be patched independent of patching the other fields." }, "PatchSweepConfig": { "type": "object", "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/SweepConfigStatus" } ], "nullable": true }, "pushPaymentMethodID": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/PaymentMethodID" } ], "nullable": true }, "pullPaymentMethodID": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/PaymentMethodID" } ], "nullable": true }, "statementDescriptor": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/SweepStatementDescriptor" } ], "nullable": true }, "minimumBalance": { "type": "string", "nullable": true, "pattern": "^\\d+\\.\\d{1,2}$" } } }, "PatchSweepConfigError": { "type": "object", "properties": { "status": { "type": "string" }, "pushPaymentMethodID": { "type": "string" }, "pullPaymentMethodID": { "type": "string" }, "statementDescriptor": { "type": "string" }, "minimumBalance": { "type": "string" } } }, "PatchTransfer": { "type": "object", "properties": { "metadata": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/Metadata" } ], "nullable": true }, "foreignID": { "type": "string", "description": "Optional alias from a foreign/external system which can be used to reference this resource." } } }, "PatchTransferValidationError": { "type": "object", "properties": { "metadata": { "type": "string" }, "foreignID": { "type": "string" } } }, "PatchWallet": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "$ref": "#/components/schemas/WalletStatus" }, "description": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/Metadata" } }, "example": { "name": "My second wallet", "description": "My new description", "metadata": { "optional": "metadata" } } }, "PatchWalletValidationError": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "type": "string" }, "description": { "type": "string" }, "metadata": { "type": "string" } } }, "PaymentDetailsError": { "type": "object", "properties": { "allowedMethods": { "type": "string" }, "cardDetails": { "$ref": "#/components/schemas/CardPaymentDetailsError" }, "achDetails": { "$ref": "#/components/schemas/ACHPaymentDetailsError" }, "metadata": { "type": "string" } } }, "PaymentLink": { "type": "object", "required": [ "code", "paymentLinkType", "mode", "status", "partnerAccountID", "merchantAccountID", "ownerAccountID", "merchantPaymentMethodID", "link", "amount", "uses", "display", "customer", "createdOn", "updatedOn" ], "properties": { "code": { "$ref": "#/components/schemas/PaymentLinkCode" }, "paymentLinkType": { "$ref": "#/components/schemas/PaymentLinkType" }, "mode": { "$ref": "#/components/schemas/Mode" }, "status": { "$ref": "#/components/schemas/PaymentLinkStatus" }, "partnerAccountID": { "type": "string", "description": "The partner's Moov account ID." }, "merchantAccountID": { "type": "string", "description": "The merchant's Moov account ID." }, "ownerAccountID": { "type": "string", "description": "The payment link's owner's Moov account ID." }, "merchantPaymentMethodID": { "type": "string", "description": "The merchant's preferred payment method ID. Must be a wallet payment method." }, "link": { "type": "string", "format": "uri", "description": "Link to the payment landing page for this payment link." }, "amount": { "$ref": "#/components/schemas/Amount" }, "salesTaxAmount": { "allOf": [ { "$ref": "#/components/schemas/Amount" } ], "description": "Optional sales tax amount." }, "uses": { "type": "integer", "format": "int64", "description": "The number of times this payment link has been used." }, "maxUses": { "type": "integer", "format": "int64", "description": "An optional limit on the number of times this payment link can be used. \n\n**For payouts, `maxUses` is always 1.**" }, "lastUsedOn": { "type": "string", "format": "date-time", "description": "The timestamp when this payment link was last used." }, "expiresOn": { "type": "string", "format": "date-time", "description": "An optional expiration date for this payment link." }, "display": { "$ref": "#/components/schemas/PaymentLinkDisplayOptions" }, "customer": { "$ref": "#/components/schemas/PaymentLinkCustomerOptions" }, "payment": { "$ref": "#/components/schemas/PaymentLinkPaymentDetails" }, "payout": { "$ref": "#/components/schemas/PaymentLinkPayoutDetails" }, "lineItems": { "$ref": "#/components/schemas/PaymentLinkLineItems" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "disabledOn": { "type": "string", "format": "date-time" } }, "example": { "code": "3QLHtONjd5", "paymentLinkType": "payment", "mode": "sandbox", "status": "active", "partnerAccountID": "d290f1ee-6c54-4b01-90e6-d701748f0851", "merchantAccountID": "34233b72-780c-4e0e-8b08-cbbe1bc878f8", "ownerAccountID": "d290f1ee-6c54-4b01-90e6-d701748f0851", "merchantPaymentMethodID": "4c4e7f8e-81f4-4f3d-8f6f-6f6e7f8e4c4e", "link": "https://moov.link/p/3QLHtONjd5", "amount": { "currency": "USD", "value": 10000 }, "uses": 0, "display": { "title": "Example Payment Link", "description": "This is an example payment link.", "callToAction": "pay" }, "customer": { "requirePhone": true }, "payment": { "allowedMethods": [ "card-payment", "ach-debit-collect" ] }, "updatedOn": "2025-01-09T17:09:13.33Z", "createdOn": "2025-01-09T17:09:13.33Z" } }, "PaymentLinkCode": { "type": "string", "description": "Unique code identifying this payment link.", "example": "uc7ZYKrMhi" }, "PaymentLinkCustomerOptions": { "type": "object", "properties": { "requireAddress": { "type": "boolean", "description": "If true, a billing address is required when completing the payment form." }, "requirePhone": { "type": "boolean", "description": "If true, a phone number is required when completing the payment form." }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional free-form metadata for the Moov account that will represent this customer." } } }, "PaymentLinkDisplayOptions": { "type": "object", "required": [ "title", "description", "callToAction" ], "properties": { "title": { "type": "string", "description": "The payment page title displayed to the user." }, "description": { "type": "string", "description": "A payment description displayed to the user." }, "callToAction": { "$ref": "#/components/schemas/CallToAction" } }, "description": "Customizable display options for a payment link." }, "PaymentLinkDisplayOptionsUpdate": { "type": "object", "properties": { "title": { "type": "string", "description": "The payment page title displayed to the user." }, "description": { "type": "string", "description": "A payment description displayed to the user." }, "callToAction": { "$ref": "#/components/schemas/CallToAction" } }, "description": "Customizable display options for a payment link." }, "PaymentLinkLineItem": { "type": "object", "required": [ "name", "basePrice", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the item." }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The base price of the item before applying option modifiers." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this item." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentLinkLineItemOption" }, "description": "Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations)." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentLinkLineItemImageMetadata" }, "description": "Optional list of images associated with this line item." }, "productID": { "type": "string", "description": "Optional unique identifier associating the line item with a product." } }, "description": "Represents a single line item in a payment link, including optional modifiers and quantity." }, "PaymentLinkLineItemImageMetadata": { "type": "object", "required": [ "imageID", "link", "publicID" ], "properties": { "imageID": { "$ref": "#/components/schemas/ImageID" }, "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." }, "link": { "type": "string", "format": "uri", "description": "The image's public URL.", "example": "https://api.moov.io/images/q7lKWleAy9fUNhEGezQ1g" }, "publicID": { "$ref": "#/components/schemas/ImagePublicID" } } }, "PaymentLinkLineItemOption": { "type": "object", "required": [ "name", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the option or modifier." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this option." }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Optional price modification applied by this option. Can be positive, negative, or zero." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentLinkLineItemImageMetadata" }, "description": "Optional list of images associated with this line item option." }, "group": { "type": "string", "maxLength": 100, "description": "Optional group identifier to categorize related options (e.g., 'toppings')." } }, "description": "Represents a modifier or option applied to a line item." }, "PaymentLinkLineItems": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentLinkLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "An optional collection of line items for a payment link.\nWhen line items are provided, their total plus sales tax must equal the payment link amount." }, "PaymentLinkPaymentDetails": { "type": "object", "required": [ "allowedMethods" ], "properties": { "allowedMethods": { "type": "array", "items": { "$ref": "#/components/schemas/CollectionPaymentMethodType" }, "minItems": 1, "description": "A list of payment methods that should be supported for this payment link." }, "cardDetails": { "$ref": "#/components/schemas/CardPaymentDetails" }, "achDetails": { "$ref": "#/components/schemas/ACHPaymentDetails" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional free-form metadata for the transfer." } }, "description": "Options for payment links used to collect payment." }, "PaymentLinkPaymentDetailsUpdate": { "type": "object", "properties": { "allowedMethods": { "type": "array", "items": { "$ref": "#/components/schemas/CollectionPaymentMethodType" }, "minItems": 1, "description": "A list of payment methods that should be supported for this payment link." }, "cardDetails": { "$ref": "#/components/schemas/CardPaymentDetails" }, "achDetails": { "$ref": "#/components/schemas/ACHPaymentDetails" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional free-form metadata for the transfer." } }, "description": "Options for payment links used to collect payment." }, "PaymentLinkPayoutDetails": { "type": "object", "required": [ "allowedMethods", "recipient" ], "properties": { "allowedMethods": { "type": "array", "items": { "$ref": "#/components/schemas/DisbursementPaymentMethodType" }, "minItems": 1, "description": "A list of payment methods that should be supported for this payment link." }, "recipient": { "$ref": "#/components/schemas/PayoutRecipient" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional free-form metadata for the transfer." } } }, "PaymentLinkPayoutDetailsUpdate": { "type": "object", "properties": { "allowedMethods": { "type": "array", "items": { "$ref": "#/components/schemas/DisbursementPaymentMethodType" }, "minItems": 1, "description": "A list of payment methods that should be supported for this payment link." }, "recipient": { "$ref": "#/components/schemas/PayoutRecipient" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional free-form metadata for the transfer." } } }, "PaymentLinkStatus": { "type": "string", "enum": [ "active", "used", "disabled", "expired" ] }, "PaymentLinkType": { "type": "string", "enum": [ "payment", "payout", "invoice-payment" ] }, "PaymentMethod": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/MoovWalletPaymentMethod" }, { "$ref": "#/components/schemas/AchDebitFundPaymentMethod" }, { "$ref": "#/components/schemas/AchDebitCollectPaymentMethod" }, { "$ref": "#/components/schemas/AchCreditStandardPaymentMethod" }, { "$ref": "#/components/schemas/AchCreditSameDayPaymentMethod" }, { "$ref": "#/components/schemas/RtpCreditPaymentMethod" }, { "$ref": "#/components/schemas/CardPaymentPaymentMethod" }, { "$ref": "#/components/schemas/PushToCardPaymentMethod" }, { "$ref": "#/components/schemas/PullFromCardPaymentMethod" }, { "$ref": "#/components/schemas/ApplePayPaymentMethod" }, { "$ref": "#/components/schemas/CardPresentPaymentPaymentMethod" } ], "discriminator": { "propertyName": "paymentMethodType", "mapping": { "moov-wallet": "#/components/schemas/MoovWalletPaymentMethod", "ach-debit-fund": "#/components/schemas/AchDebitFundPaymentMethod", "ach-debit-collect": "#/components/schemas/AchDebitCollectPaymentMethod", "ach-credit-standard": "#/components/schemas/AchCreditStandardPaymentMethod", "ach-credit-same-day": "#/components/schemas/AchCreditSameDayPaymentMethod", "rtp-credit": "#/components/schemas/RtpCreditPaymentMethod", "card-payment": "#/components/schemas/CardPaymentPaymentMethod", "push-to-card": "#/components/schemas/PushToCardPaymentMethod", "pull-from-card": "#/components/schemas/PullFromCardPaymentMethod", "apple-pay": "#/components/schemas/ApplePayPaymentMethod", "card-present-payment": "#/components/schemas/CardPresentPaymentPaymentMethod" } }, "description": "A method of moving money" }, "PaymentMethodID": { "type": "string", "description": "ID of the payment method." }, "PaymentMethodType": { "type": "string", "enum": [ "moov-wallet", "ach-debit-fund", "ach-debit-collect", "ach-credit-standard", "ach-credit-same-day", "rtp-credit", "card-payment", "push-to-card", "pull-from-card", "apple-pay", "card-present-payment" ], "description": "The payment method type that represents a payment rail and directionality" }, "PaymentMethodsBankAccount": { "type": "object", "required": [ "bankAccountID", "fingerprint", "status", "holderName", "holderType", "bankName", "bankAccountType", "routingNumber", "lastFourAccountNumber", "updatedOn" ], "properties": { "bankAccountID": { "type": "string" }, "fingerprint": { "type": "string", "maxLength": 100, "description": "Once the bank account is linked, we don't reveal the full bank account number.\n\nThe fingerprint acts as a way to identify whether two linked bank accounts are the same." }, "status": { "$ref": "#/components/schemas/BankAccountStatus" }, "holderName": { "type": "string" }, "holderType": { "$ref": "#/components/schemas/BankAccountHolderType" }, "bankName": { "type": "string" }, "bankAccountType": { "$ref": "#/components/schemas/BankAccountType" }, "routingNumber": { "type": "string" }, "lastFourAccountNumber": { "type": "string" }, "updatedOn": { "type": "string", "format": "date-time" } }, "description": "A bank account as contained within a payment method." }, "PaymentMethodsCard": { "type": "object", "required": [ "cardID", "fingerprint", "brand", "cardType", "lastFourCardNumber", "bin", "expiration", "billingAddress", "cardVerification" ], "properties": { "cardID": { "$ref": "#/components/schemas/CardID" }, "fingerprint": { "$ref": "#/components/schemas/CardFingerprint" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "cardType": { "$ref": "#/components/schemas/CardType" }, "lastFourCardNumber": { "type": "string", "minLength": 4, "maxLength": 4, "description": "Last four digits of the card number" }, "bin": { "type": "string", "minLength": 6, "maxLength": 8, "description": "The first six to eight digits of the card number, which identifies the financial institution that issued the card." }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "holderName": { "type": "string", "description": "The name of the cardholder as it appears on the card." }, "billingAddress": { "$ref": "#/components/schemas/CardAddress" }, "cardVerification": { "$ref": "#/components/schemas/CardVerification" }, "issuer": { "type": "string", "description": "Financial institution that issued the card." }, "issuerCountry": { "type": "string", "description": "Country where the card was issued." }, "cardOnFile": { "type": "boolean", "description": "Indicates cardholder has authorized card to be stored for future payments." }, "merchantAccountID": { "type": "string" }, "cardAccountUpdater": { "$ref": "#/components/schemas/CardAccountUpdater" }, "domesticPushToCard": { "$ref": "#/components/schemas/DomesticPushToCard" }, "domesticPullFromCard": { "$ref": "#/components/schemas/DomesticPullFromCard" } }, "description": "A card as contained within a payment method." }, "PaymentMethodsWallet": { "type": "object", "required": [ "walletID", "partnerAccountID", "walletType" ], "properties": { "walletID": { "$ref": "#/components/schemas/WalletID" }, "partnerAccountID": { "type": "string" }, "walletType": { "$ref": "#/components/schemas/WalletType" } } }, "PayoutDetailsError": { "type": "object", "properties": { "allowedMethods": { "type": "string" }, "recipient": { "$ref": "#/components/schemas/PayoutRecipientError" }, "metadata": { "type": "string" } } }, "PayoutRecipient": { "type": "object", "properties": { "email": { "$ref": "#/components/schemas/Email" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" } }, "description": "Specify the intended recipient of the payout.\nEither `email` or `phone` must be specified, but not both.\n\nThis information will be used to authenticate the end user when they follow the payment link." }, "PayoutRecipientError": { "type": "object", "properties": { "email": { "type": "string" }, "phone": { "$ref": "#/components/schemas/PhoneNumberError" } } }, "PendingLitigation": { "type": "string", "enum": [ "bankruptcy-or-insolvency", "consumer-protection-or-class-action", "data-breach-or-privacy", "employment-or-workplace-disputes", "fraud-or-financial-crime", "government-enforcement-or-investigation", "intellectual-property", "none", "other", "personal-injury-or-medical" ] }, "PhoneNumber": { "type": "object", "properties": { "number": { "type": "string", "maxLength": 10, "example": "8185551212" }, "countryCode": { "type": "string", "maxLength": 1, "example": "1" } } }, "PhoneNumberError": { "type": "object", "properties": { "number": { "type": "string" }, "countryCode": { "type": "string" } } }, "PingResponse": { "type": "object", "required": [ "webhook", "requestBodySent", "responseStatusCode" ], "properties": { "webhook": { "allOf": [ { "$ref": "#/components/schemas/Webhook" } ], "description": "The webhook that was pinged." }, "requestBodySent": { "type": "object", "additionalProperties": {}, "description": "The request body sent to the target URL. It will contain an event type of `event.test` and an empty (null) data payload." }, "responseStatusCode": { "type": "integer", "format": "int32", "description": "The response status code after sending a ping event to the URL." } }, "description": "Response from pinging a webhook." }, "PlaidIntegration": { "type": "object", "required": [ "token" ], "properties": { "token": { "type": "string" } }, "description": "The details of a Plaid processor integration for a linked funding source. \n\n`sandbox` - When linking a bank account to a `sandbox` account using a Plaid processor token a default bank account\nresponse will be used. The following default data will be used to generate the bank account in this flow:\n\n```\n RoutingNumber: \"011401533\",\n AccountNumber: \"1111222233330000\",\n AccountType: \"checking\",\n Mask: \"0000\"\n```" }, "PlaidLinkIntegration": { "type": "object", "required": [ "publicToken" ], "properties": { "publicToken": { "type": "string" } }, "description": "This is used by Moov.js with a Plaid reseller relationship. The details of a Plaid link integration for a linked funding source.\n\nYou can simulate linking bank accounts with Plaid in test mode. See our [test mode](https://docs.moov.io/guides/get-started/test-mode/#plaid)\nguide for more information.\n\nPlaid's `sandbox` environment - (requires Plaid reseller setup with Moov). When linking a bank account to a `sandbox` account using a Plaid \npublic token it will utilize Plaid's sandbox environment. The Plaid public token provided must be generated from Plaid's sandbox environment. \nPlease see Plaid's sandbox documentation for more \ndetails." }, "PlaidLinkPayload": { "type": "object", "required": [ "plaidLink" ], "properties": { "plaidLink": { "$ref": "#/components/schemas/PlaidLinkIntegration" } }, "description": "This is used by Moov.js with a Plaid reseller relationship. \n\nDescribes the account to link to the Moov account using a Plaid using a Plaid public token.", "title": "Plaid Link" }, "PlaidPayload": { "type": "object", "required": [ "plaid" ], "properties": { "plaid": { "$ref": "#/components/schemas/PlaidIntegration" } }, "description": "Describes the account to link to the Moov account using a Plaid processor token.", "title": "Plaid" }, "PlatformFees": { "type": "object", "required": [ "walletFee", "merchantPCIFee", "total" ], "properties": { "walletFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees associated with wallet services." }, "merchantPCIFee": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Fees for PCI compliance." }, "total": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total platform fees." } }, "description": "A detailed breakdown of platform fees. This field is deprecated and will be removed in a future release. Use accountFees.", "deprecated": true }, "PrimaryRegulator": { "type": "string", "enum": [ "OCC", "FDIC", "NCUA", "FRB", "state-cu-regulator" ], "description": "If the business is a financial institution, this field describes its primary regulator." }, "Product": { "type": "object", "required": [ "productID", "title", "basePrice", "createdOn", "updatedOn" ], "properties": { "productID": { "$ref": "#/components/schemas/ProductID" }, "title": { "type": "string", "maxLength": 150 }, "description": { "type": "string", "maxLength": 5000, "description": "A detailed description of the product.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "A product's starting price, before applying modifiers." }, "optionGroups": { "type": "array", "items": { "$ref": "#/components/schemas/ProductOptionGroup" }, "description": "Optional configuration options for a product, such as size or color." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/ProductImageMetadata" }, "maxItems": 20, "description": "Optional images associated with the product." }, "createdOn": { "type": "string", "format": "date-time", "description": "The date and time when the product was added." }, "updatedOn": { "type": "string", "format": "date-time", "description": "The date and time when the product was last updated." }, "disabledOn": { "type": "string", "format": "date-time", "description": "The date and time when the product was disabled." } }, "description": "A good or service offered by a merchant." }, "ProductID": { "type": "string", "description": "Unique identifier for a product." }, "ProductImageID": { "type": "string", "description": "Unique identifier for a product or product option image resource." }, "ProductImageMetadata": { "type": "object", "required": [ "imageID", "link", "publicID" ], "properties": { "imageID": { "$ref": "#/components/schemas/ProductImageID" }, "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." }, "link": { "type": "string", "format": "uri", "description": "The image's public URL.", "example": "https://api.moov.io/images/q7lKWleAy9fUNhEGezQ1g" }, "publicID": { "type": "string", "description": "The public ID used to access the image.", "example": "q7lKWleAy9fUNhEGezQ1g" } } }, "ProductOption": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 100, "description": "The display name of a product option." }, "description": { "type": "string", "maxLength": 500, "description": "A detailed description of the option.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The adjustment applied to a product's base price by this option. Can be negative, positive, or zero." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/ProductImageMetadata" }, "maxItems": 20, "description": "The images associated with this option." } }, "description": "Represents a single product option within a group." }, "ProductOptionGroup": { "type": "object", "required": [ "name", "minSelect", "maxSelect", "options" ], "properties": { "name": { "type": "string", "maxLength": 100 }, "description": { "type": "string", "maxLength": 500, "description": "A detailed description of the option group.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "minSelect": { "type": "integer", "format": "int32", "description": "The minimum number of options that must be selected from this group.\n\nA value of 0 indicates that no selection from this group is required." }, "maxSelect": { "type": "integer", "format": "int32", "minimum": 1, "description": "The maximum number of options that can be selected from this group." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/ProductOption" }, "description": "The options available within this group." } }, "description": "Represents a group of product configuration options, such as size or color." }, "ProductOptionGroupValidationError": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "minSelect": { "type": "string" }, "maxSelect": { "type": "string" }, "options": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ProductOptionValidationError" } } } }, "ProductOptionValidationError": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "priceModifier": { "$ref": "#/components/schemas/AmountDecimalValidationError" }, "images": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/AssignProductImageValidationError" } } } }, "ProductRequest": { "type": "object", "required": [ "title", "basePrice" ], "properties": { "title": { "type": "string", "maxLength": 150 }, "description": { "type": "string", "maxLength": 5000, "description": "A detailed description of the product.\n\n- Must be valid UTF-8 text\n- Supports Markdown for formatting\n- HTML is not permitted and will be rejected" }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "A product's starting price, before applying modifiers." }, "images": { "$ref": "#/components/schemas/AssignProductImages" }, "optionGroups": { "type": "array", "items": { "$ref": "#/components/schemas/CreateProductOptionGroup" }, "description": "Optional configuration options for a product, such as size or color." } }, "description": "Request to create or update a product." }, "ProductRequestValidationError": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "basePrice": { "$ref": "#/components/schemas/AmountDecimalValidationError" }, "images": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/AssignProductImageValidationError" } }, "optionGroups": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ProductOptionGroupValidationError" } } } }, "Profile": { "type": "object", "properties": { "individual": { "$ref": "#/components/schemas/IndividualProfile" }, "business": { "$ref": "#/components/schemas/BusinessProfile" }, "guest": { "$ref": "#/components/schemas/GuestProfile" } }, "description": "Describes a Moov account profile. A profile will have a business, individual, or guest depending on the account's type." }, "PullFromCardPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "card" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "pull-from-card" ] }, "card": { "$ref": "#/components/schemas/PaymentMethodsCard" } }, "title": "Pull from card" }, "PullFromCardTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "card" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "pull-from-card" ] }, "card": { "$ref": "#/components/schemas/TransferPaymentMethodsCard" } }, "title": "Pull from card" }, "PushToCardPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "card" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "push-to-card" ] }, "card": { "$ref": "#/components/schemas/PaymentMethodsCard" } }, "title": "Push to card" }, "PushToCardTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "card" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "push-to-card" ] }, "card": { "$ref": "#/components/schemas/TransferPaymentMethodsCard" } }, "title": "Push to card" }, "QRCode": { "type": "object", "required": [ "qrCode" ], "properties": { "qrCode": { "type": "string", "description": "A base64-encoded PNG image of the QR code.", "example": "iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAADaA7F0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA..." } } }, "RTPFailureCode": { "type": "string", "enum": [ "processing-error", "invalid-account", "account-closed", "account-blocked", "invalid-field", "transaction-not-supported", "limit-exceeded", "invalid-amount", "customer-deceased", "other" ], "description": "Status codes for RTP failures." }, "RTPInstitution": { "type": "object", "required": [ "name", "routingNumber", "services" ], "properties": { "name": { "type": "string", "description": "Name of the financial institution.", "example": "First Citizens" }, "routingNumber": { "type": "string", "maxLength": 9, "example": "123456789" }, "services": { "$ref": "#/components/schemas/RTPServices" } } }, "RTPRejectionCode": { "type": "string", "enum": [ "AC03", "AC04", "AC06", "AC14", "AG01", "AG03", "MD07" ], "description": "The rejection code of an RTP transaction that caused the bank account status to change.\n\n- AC03: Account Invalid\n- AC04: Account Closed\n- AC06: Account Blocked\n- AC14: Creditor Account Type Invalid\n- AG01: Transactions Forbidden On Account\n- AG03: Transaction Type Not Supported\n- MD07: Customer Deceased" }, "RTPServices": { "type": "object", "required": [ "receivePayments", "receiveRequestForPayment" ], "properties": { "receivePayments": { "type": "boolean", "description": "Can the institution receive payments", "example": true }, "receiveRequestForPayment": { "type": "boolean", "description": "Can the institution receive request for payment messages", "example": true } } }, "RTPTransactionDetails": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/RTPTransactionStatus" }, "networkResponseCode": { "type": "string", "description": "Response code returned by network on failure." }, "failureCode": { "$ref": "#/components/schemas/RTPFailureCode" }, "initiatedOn": { "type": "string", "format": "date-time" }, "completedOn": { "type": "string", "format": "date-time" }, "failedOn": { "type": "string", "format": "date-time" }, "acceptedWithoutPostingOn": { "type": "string", "format": "date-time" } }, "description": "RTP specific details about the transaction." }, "RTPTransactionStatus": { "type": "string", "enum": [ "initiated", "completed", "failed", "accepted-without-posting" ], "description": "Status of a transaction within the RTP lifecycle." }, "ReceiptKind": { "type": "string", "enum": [ "sale.customer.v1" ], "description": "The type of receipt being requested." }, "ReceiptRequest": { "type": "object", "required": [ "kind" ], "properties": { "kind": { "allOf": [ { "$ref": "#/components/schemas/ReceiptKind" } ], "example": "sale.customer.v1" }, "email": { "allOf": [ { "$ref": "#/components/schemas/Email" } ], "description": "The email address to send the receipt to.\nEither email or emailAccountID must be provided, but not both." }, "emailAccountID": { "type": "string", "description": "The accountID to send the receipt to.\nEither email or emailAccountID must be provided, but not both." }, "forTransferID": { "type": "string", "description": "The ID of the transfer associated with this receipt.\nExactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided." }, "forScheduleID": { "type": "string", "description": "The ID of the schedule associated with this receipt.\nExactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided." }, "forOccurrenceID": { "type": "string", "description": "The ID of the schedule occurrence associated with this receipt.\nExactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided." } }, "description": "A receipt request for a specific transfer, schedule, or schedule occurrence." }, "ReceiptResponse": { "type": "object", "required": [ "receiptID", "createdBy", "kind" ], "properties": { "receiptID": { "type": "string", "description": "Unique identifier for the receipt request." }, "createdBy": { "type": "string", "description": "AccountID for which the receipt request was created." }, "disabledOn": { "type": "string", "format": "date-time", "description": "The date and time the receipt was disabled.", "example": "2025-11-10T23:00:000Z" }, "kind": { "allOf": [ { "$ref": "#/components/schemas/ReceiptKind" } ], "description": "The type of receipt." }, "email": { "allOf": [ { "$ref": "#/components/schemas/Email" } ], "description": "The email address the receipt is sent to.\nEither email or emailAccountID will be in the response, but not both." }, "emailAccountID": { "type": "string", "description": "The accountID the receipt is sent to.\nEither email or emailAccountID will be in the response, but not both." }, "forTransferID": { "type": "string", "description": "The ID of the transfer associated with this receipt.\nExactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided." }, "forScheduleID": { "type": "string", "description": "The ID of the schedule associated with this receipt.\nExactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided." }, "forOccurrenceID": { "type": "string", "description": "The ID of the schedule occurrence associated with this receipt.\nExactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided." }, "sentFor": { "type": "array", "items": { "$ref": "#/components/schemas/SentReceipt" }, "description": "The list of receipts that have been sent." } }, "example": { "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e", "receiptID": "4925c8a5-3b9a-4488-a514-9fd992546aca", "forTransferID": "193ceb53-94c7-41c4-9272-c90c2832cb4c", "kind": "sale.customer.v1", "email": "jordan.lee@classbooker.dev", "sentFor": [ { "idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1", "receiptID": "4925c8a5-3b9a-4488-a514-9fd992546aca", "sentOn": "2025-01-16T17:52:14.219311143Z" } ] } }, "ReceiptValidationError": { "type": "object", "properties": { "kind": { "type": "string" }, "email": { "type": "string" }, "emailAccountID": { "type": "string" }, "forTransferID": { "type": "string" }, "forScheduleID": { "type": "string" }, "forOccurrenceID": { "type": "string" } } }, "ReceiptValidationErrorResponse": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ReceiptValidationError" }, "example": { "0": { "kind": "cannot be blank" } } }, "Recur": { "type": "object", "required": [ "recurrenceRule", "runTransfer" ], "properties": { "recurrenceRule": { "type": "string", "description": " RRule as defined by RFC 5545 (https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10). \n Generators available online at the following sites - https://freetools.textmagic.com/rrule-generator, https://jkbrzt.github.io/rrule/" }, "runTransfer": { "$ref": "#/components/schemas/CreateRunTransfer" }, "indefinite": { "type": "boolean", "description": "True if the RRule set runs indefinitely." }, "start": { "type": "string", "format": "date-time", "example": "2009-11-10T23:00:00Z" } }, "description": "Defines configuration for recurring transfers." }, "RecurResponse": { "type": "object", "required": [ "recurrenceRule", "runTransfer" ], "properties": { "recurrenceRule": { "type": "string", "description": " RRule as defined by RFC 5545 (https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10).\n Generators available online at the following sites - https://freetools.textmagic.com/rrule-generator, https://jkbrzt.github.io/rrule/" }, "runTransfer": { "$ref": "#/components/schemas/RunTransfer" }, "indefinite": { "type": "boolean", "description": "True if the RRule set runs indefinitely." }, "start": { "type": "string", "format": "date-time", "example": "2009-11-10T23:00:00Z" } } }, "RefreshToken": { "type": "string", "maxLength": 4096, "description": "A value passed to the authorization server to obtain a new access token.", "example": "eyJhbGc0eSI6TQSIsImN0kpXVCIsImtp6IkpXVsImtpZC0a..." }, "RefundCardDetails": { "type": "object", "required": [ "status" ], "properties": { "status": { "$ref": "#/components/schemas/RefundCardStatus" }, "failureCode": { "$ref": "#/components/schemas/CardTransactionFailureCode" }, "initiatedOn": { "type": "string", "format": "date-time" }, "confirmedOn": { "type": "string", "format": "date-time" }, "settledOn": { "type": "string", "format": "date-time" }, "failedOn": { "type": "string", "format": "date-time" }, "completedOn": { "type": "string", "format": "date-time" } } }, "RefundCardStatus": { "type": "string", "enum": [ "initiated", "confirmed", "settled", "failed", "completed" ] }, "RefundPolicy": { "type": "string", "enum": [ "conditional-refund", "custom-policy", "event-based-policy", "full-refund-extended-window", "full-refund-within-30-days", "no-refunds", "partial-refund", "prorated-refund", "store-credit-only" ] }, "RefundStatus": { "type": "string", "enum": [ "created", "pending", "completed", "failed" ] }, "RefundValidationError": { "type": "object", "properties": { "amount": { "type": "string" }, "error": { "type": "string", "description": "Used for generic errors when invalid request data isn't attributed to a single request field." } } }, "RegisterApplePayMerchantDomains": { "type": "object", "properties": { "displayName": { "$ref": "#/components/schemas/DomainDisplayName" }, "domains": { "type": "array", "items": { "type": "string" }, "description": "A unique list of fully-qualified, top-level or sub-domain names where you will accept Apple Pay.", "example": [ "checkout.classbooker.dev" ] } } }, "Representative": { "type": "object", "required": [ "representativeID", "name", "createdOn", "updatedOn" ], "properties": { "representativeID": { "type": "string", "description": "Unique identifier for this representative." }, "name": { "$ref": "#/components/schemas/IndividualName" }, "phone": { "$ref": "#/components/schemas/PhoneNumber" }, "email": { "$ref": "#/components/schemas/Email" }, "address": { "$ref": "#/components/schemas/Address" }, "birthDateProvided": { "type": "boolean", "description": "Indicates whether this representative's birth date has been provided." }, "governmentIDProvided": { "type": "boolean", "description": "Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this representative." }, "responsibilities": { "$ref": "#/components/schemas/RepresentativeResponsibilities" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "disabledOn": { "type": "string", "format": "date-time" } }, "description": "Describes a business representative." }, "RepresentativeResponsibilities": { "type": "object", "properties": { "isController": { "type": "boolean", "description": "Indicates whether this individual has significant management responsibilities within the business." }, "isOwner": { "type": "boolean", "description": "If `true`, this field indicates that the individual has a business ownership stake of at least 25% in the\nbusiness. If the representative does not own at least 25% of the business, this field should be `false`." }, "ownershipPercentage": { "type": "integer", "description": "The percentage of ownership this individual has in the business (required if `isOwner` is `true`).", "example": 38 }, "jobTitle": { "type": "string", "maxLength": 64, "pattern": "[a-zA-Z0-9,.\\/?:'\"|~!@#$%^&*()+_= -]+", "example": "CEO" } }, "description": "Describes the job responsibilities of a business representative." }, "RepresentativeResponsibilitiesError": { "type": "object", "properties": { "isController": { "type": "string" }, "isOwner": { "type": "string" }, "ownershipPercentage": { "type": "string" }, "jobTitle": { "type": "string" } } }, "RepresentativeValidationError": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "object", "properties": { "name": { "$ref": "#/components/schemas/IndividualNameError" }, "phone": { "$ref": "#/components/schemas/PhoneNumberError" }, "email": { "type": "string" }, "address": { "$ref": "#/components/schemas/AddressError" }, "birthDate": { "$ref": "#/components/schemas/BirthDateValidationError" }, "governmentID": { "$ref": "#/components/schemas/GovernmentIDError" }, "responsibilities": { "$ref": "#/components/schemas/RepresentativeResponsibilitiesError" } } } } }, "RequestCard": { "type": "object", "required": [ "fundingWalletID", "authorizedUser", "formFactor" ], "properties": { "fundingWalletID": { "type": "string" }, "authorizedUser": { "$ref": "#/components/schemas/CreateAuthorizedUser" }, "formFactor": { "$ref": "#/components/schemas/IssuedCardFormFactor" }, "memo": { "type": "string", "description": "An optional descriptive name for the card." }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "controls": { "$ref": "#/components/schemas/IssuingControls" } } }, "RequestCardError": { "type": "object", "properties": { "fundingWalletID": { "type": "string" }, "formFactor": { "type": "string" }, "authorizedUser": { "$ref": "#/components/schemas/CreateAuthorizedUserError" }, "memo": { "type": "string" }, "expiration": { "$ref": "#/components/schemas/CardExpirationError" }, "controls": { "$ref": "#/components/schemas/IssuingControlsError" } } }, "RequestIDHeader": { "type": "object" }, "RequirementError": { "type": "object", "required": [ "requirement" ], "properties": { "requirement": { "$ref": "#/components/schemas/RequirementID" }, "errorCode": { "$ref": "#/components/schemas/RequirementErrorCode" } } }, "RequirementErrorCode": { "type": "string", "enum": [ "invalid-value", "failed-automatic-verification", "failed-other", "invalid-address", "address-restricted", "tax-id-mismatch", "document-id-mismatch", "document-date-of-birth-mismatch", "document-name-mismatch", "document-address.mismatch", "document-number-mismatch", "document-incomplete", "document-failed-risk", "document-illegible", "document-unsupported", "document-not-uploaded", "document-corrupt", "document-expired" ] }, "RequirementID": { "type": "string", "enum": [ "account.tos-acceptance", "individual.mobile", "individual.email", "individual.email-or-mobile", "individual.firstname", "individual.lastname", "individual.address", "individual.ssn-last4", "individual.ssn", "individual.birthdate", "business.legalname", "business.description-or-website", "business.entity-type", "business.business-type", "business.dba", "business.ein", "business.address", "business.phone", "business.admins", "business.controllers", "business.owners", "business.classification", "business.industry-code-mcc", "business.industry", "business.indicate-owners-provided", "business.average-transaction-size", "business.max-transaction-size", "business.average-monthly-transaction-volume", "business.volume-by-customer-type", "business.card-volume-distribution", "business.fulfillment", "business.description", "business.underwriting-documents-tier-one", "bank-accounts.name", "bank-accounts.routing-number", "bank-accounts.account-number", "document.business.verification", "document.individual.tin", "document.individual.verification", "document.representative.{rep-uuid}.tin", "document.representative.{rep-uuid}.verification", "representative.{rep-uuid}.mobile", "representative.{rep-uuid}.email", "representative.{rep-uuid}.email-or-mobile", "representative.{rep-uuid}.firstname", "representative.{rep-uuid}.lastname", "representative.{rep-uuid}.address", "representative.{rep-uuid}.ssn-last4", "representative.{rep-uuid}.ssn", "representative.{rep-uuid}.birthdate", "representative.{rep-uuid}.job-title", "representative.{rep-uuid}.is-controller", "representative.{rep-uuid}.is-owner", "representative.{rep-uuid}.ownership", "document.{doc-uuid}", "underwriting.businessPresence", "underwriting.geographicReach", "underwriting.volumeShareByCustomerType", "underwriting.pendingLitigation", "underwriting.documents.processingStatementsPast3Months", "underwriting.collectFunds.cardPayments.cardAcceptanceMethods", "underwriting.collectFunds.cardPayments.currentlyAcceptsCards", "underwriting.collectFunds.cardPayments.estimatedActivity.averageTransactionAmount", "underwriting.collectFunds.cardPayments.estimatedActivity.maximumTransactionAmount", "underwriting.collectFunds.cardPayments.estimatedActivity.monthlyVolumeRange", "underwriting.collectFunds.cardPayments.fulfillment", "underwriting.collectFunds.cardPayments.refundPolicy", "underwriting.collectFunds.ach.cardAcceptanceMethods", "underwriting.collectFunds.ach.currentlyAcceptsCards", "underwriting.collectFunds.ach.estimatedActivity.averageTransactionAmount", "underwriting.collectFunds.ach.estimatedActivity.maximumTransactionAmount", "underwriting.collectFunds.ach.estimatedActivity.monthlyVolumeRange", "underwriting.collectFunds.ach.fulfillment", "underwriting.collectFunds.ach.refundPolicy", "underwriting.sendFunds.ach.cardAcceptanceMethods", "underwriting.sendFunds.ach.currentlyAcceptsCards", "underwriting.sendFunds.ach.estimatedActivity.averageTransactionAmount", "underwriting.sendFunds.ach.estimatedActivity.maximumTransactionAmount", "underwriting.sendFunds.ach.estimatedActivity.monthlyVolumeRange", "underwriting.sendFunds.ach.fulfillment", "underwriting.sendFunds.ach.refundPolicy", "underwriting.sendFunds.rtp.cardAcceptanceMethods", "underwriting.sendFunds.rtp.currentlyAcceptsCards", "underwriting.sendFunds.rtp.estimatedActivity.averageTransactionAmount", "underwriting.sendFunds.rtp.estimatedActivity.maximumTransactionAmount", "underwriting.sendFunds.rtp.estimatedActivity.monthlyVolumeRange", "underwriting.sendFunds.rtp.fulfillment", "underwriting.sendFunds.rtp.refundPolicy", "underwriting.sendFunds.pushToCard.cardAcceptanceMethods", "underwriting.sendFunds.pushToCard.currentlyAcceptsCards", "underwriting.sendFunds.pushToCard.estimatedActivity.averageTransactionAmount", "underwriting.sendFunds.pushToCard.estimatedActivity.maximumTransactionAmount", "underwriting.sendFunds.pushToCard.estimatedActivity.monthlyVolumeRange", "underwriting.sendFunds.pushToCard.fulfillment", "underwriting.sendFunds.pushToCard.refundPolicy", "underwriting.moneyTransfer.pullFromCard.cardAcceptanceMethods", "underwriting.moneyTransfer.pullFromCard.currentlyAcceptsCards", "underwriting.moneyTransfer.pullFromCard.estimatedActivity.averageTransactionAmount", "underwriting.moneyTransfer.pullFromCard.estimatedActivity.maximumTransactionAmount", "underwriting.moneyTransfer.pullFromCard.estimatedActivity.monthlyVolumeRange", "underwriting.moneyTransfer.pullFromCard.fulfillment", "underwriting.moneyTransfer.pullFromCard.refundPolicy", "underwriting.moneyTransfer.pushToCard.cardAcceptanceMethods", "underwriting.moneyTransfer.pushToCard.currentlyAcceptsCards", "underwriting.moneyTransfer.pushToCard.estimatedActivity.averageTransactionAmount", "underwriting.moneyTransfer.pushToCard.estimatedActivity.maximumTransactionAmount", "underwriting.moneyTransfer.pushToCard.estimatedActivity.monthlyVolumeRange", "underwriting.moneyTransfer.pushToCard.fulfillment", "underwriting.moneyTransfer.pushToCard.refundPolicy" ], "description": "The unique ID of what the requirement is asking to be filled out." }, "Residual": { "type": "object", "required": [ "residualID", "partnerAccountID", "periodStart", "periodEnd", "merchantFees", "partnerCost", "netIncome", "revenueShare", "residualAmount", "createdOn", "updatedOn" ], "properties": { "residualID": { "type": "string", "description": "Unique identifier for this residual payment calculation." }, "partnerAccountID": { "type": "string", "description": "The partner account ID this residual belongs to." }, "periodStart": { "type": "string", "format": "date-time", "description": "Start date and time of the residual calculation period." }, "periodEnd": { "type": "string", "format": "date-time", "description": "End date and time of the residual calculation period." }, "merchantFees": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Total amount of merchant fees collected during the period. This represents the partner's revenue from merchant fees." }, "partnerCost": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Partner's total cost (buy rate) during the period." }, "netIncome": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Net income calculated as merchant fee revenue minus partner costs." }, "revenueShare": { "type": "string", "description": "The revenue share percentage the partner receives, expressed as a decimal string (e.g., \"25.00\" for 25%).", "example": "2.25" }, "residualAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The amount the partner receives as their share of the net income (netIncome × revenueShare)." }, "createdOn": { "type": "string", "format": "date-time", "description": "Timestamp when the residual was created." }, "updatedOn": { "type": "string", "format": "date-time", "description": "Timestamp when the residual was last updated." } } }, "ReturnPolicyType": { "type": "string", "enum": [ "none", "exchangeOnly", "withinThirtyDays", "other" ] }, "Reversal": { "oneOf": [ { "$ref": "#/components/schemas/ReversedWithCancellation" }, { "$ref": "#/components/schemas/ReversedWithRefund" } ], "description": "Contains either a cancellation or refund, depending on the method used to reverse the transfer." }, "ReversalValidationError": { "type": "object", "properties": { "amount": { "type": "string" } } }, "ReversedWithCancellation": { "type": "object", "required": [ "cancellation" ], "properties": { "cancellation": { "$ref": "#/components/schemas/Cancellation" } }, "title": "Canceled" }, "ReversedWithRefund": { "type": "object", "required": [ "refund" ], "properties": { "refund": { "$ref": "#/components/schemas/CardAcquiringRefund" } }, "title": "Refunded" }, "RevokeTokenRequest": { "type": "object", "required": [ "token" ], "properties": { "token": { "type": "string", "description": "The access or refresh token to revoke." }, "token_type_hint": { "type": "string", "enum": [ "access_token", "refresh_token" ], "description": "The type of token being revoked." }, "client_id": { "type": "string", "description": "Client ID can be provided here in the body, or as the Username in HTTP Basic Auth.", "example": "5clTR_MdVrrkgxw2" }, "client_secret": { "type": "string", "description": "Client secret can be provided here in the body, or as the Password in HTTP Basic Auth.", "example": "dNC-hg7sVm22jc3g_Eogtyu0_1Mqh_4-" } } }, "RevokeTokenRequestError": { "type": "object", "properties": { "token": { "type": "string" }, "token_type_hint": { "type": "string" } } }, "RtpCreditPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "rtp-credit" ] }, "bankAccount": { "$ref": "#/components/schemas/PaymentMethodsBankAccount" } }, "title": "RTP credit" }, "RtpCreditTransferPaymentMethod": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "bankAccount" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/TransferPaymentMethodID" }, "paymentMethodType": { "type": "string", "enum": [ "rtp-credit" ] }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" } }, "title": "RTP credit" }, "RunTransfer": { "type": "object", "required": [ "amount", "destination", "partnerAccountID", "source", "description" ], "properties": { "amount": { "$ref": "#/components/schemas/Amount" }, "salesTaxAmount": { "allOf": [ { "$ref": "#/components/schemas/Amount" } ], "description": "Optional sales tax amount. This amount is included in the total transfer amount." }, "destination": { "$ref": "#/components/schemas/SchedulePaymentMethod" }, "partnerAccountID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "source": { "$ref": "#/components/schemas/SchedulePaymentMethod" }, "description": { "type": "string", "description": "Simple description to place on the transfer." }, "lineItems": { "$ref": "#/components/schemas/ScheduledTransferLineItems" } } }, "SECCode": { "type": "string", "enum": [ "WEB", "PPD", "CCD", "TEL" ], "description": "Code used to identify the ACH authorization method." }, "ScheduleListResponse": { "type": "object", "properties": { "sourceAccount": { "$ref": "#/components/schemas/PartialScheduleAccount" }, "destinationAccount": { "$ref": "#/components/schemas/PartialScheduleAccount" }, "partnerAccount": { "$ref": "#/components/schemas/PartialScheduleAccount" } }, "allOf": [ { "$ref": "#/components/schemas/ScheduleResponse" } ] }, "SchedulePaymentMethod": { "type": "object", "required": [ "paymentMethodID" ], "properties": { "paymentMethodID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "achDetails": { "type": "object", "properties": { "companyEntryDescription": { "$ref": "#/components/schemas/ACHCompanyEntryDescription" }, "originatingCompanyName": { "$ref": "#/components/schemas/ACHOriginatingCompanyName" } } }, "cardDetails": { "type": "object", "properties": { "dynamicDescriptor": { "$ref": "#/components/schemas/CardDynamicDescriptor" } } } } }, "ScheduleResponse": { "type": "object", "required": [ "destinationAccountID", "mode", "ownerAccountID", "partnerAccountID", "scheduleID", "sourceAccountID", "createdOn", "updatedOn" ], "properties": { "description": { "type": "string", "description": "Simple description to place on the transfer." }, "destinationAccountID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "mode": { "$ref": "#/components/schemas/Mode" }, "occurrences": { "type": "array", "items": { "$ref": "#/components/schemas/OccurrencesResponse" } }, "ownerAccountID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "partnerAccountID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "recur": { "$ref": "#/components/schemas/RecurResponse" }, "scheduleID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "sourceAccountID": { "type": "string", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "disabledOn": { "type": "string", "format": "date-time" } } }, "ScheduleValidationError": { "type": "object", "properties": { "occurrences": { "type": "object", "additionalProperties": { "type": "string" } }, "recur": { "type": "string" }, "description": { "type": "string" } } }, "ScheduledTransferImageMetadata": { "type": "object", "required": [ "imageID", "link", "publicID" ], "properties": { "imageID": { "$ref": "#/components/schemas/ImageID" }, "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." }, "link": { "type": "string", "format": "uri", "description": "The image's public URL.", "example": "https://api.moov.io/images/q7lKWleAy9fUNhEGezQ1g" }, "publicID": { "$ref": "#/components/schemas/ImagePublicID" } } }, "ScheduledTransferLineItem": { "type": "object", "required": [ "name", "basePrice", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the item." }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The base price of the item before applying option modifiers." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this item." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduledTransferLineItemOption" }, "description": "Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations)." }, "productID": { "type": "string", "description": "Optional unique identifier associating the line item with a product." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduledTransferImageMetadata" }, "description": "Optional list of images associated with this line item." } }, "description": "Represents a single item in a scheduled transfer, including optional modifiers and quantity." }, "ScheduledTransferLineItemOption": { "type": "object", "required": [ "name", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the option or modifier." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this option." }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Optional price modification applied by this option. Can be positive, negative, or zero." }, "group": { "type": "string", "maxLength": 100, "description": "Optional group identifier to categorize related options (e.g., 'toppings')." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduledTransferImageMetadata" }, "description": "Optional list of images associated with this line item." } }, "description": "Represents a modifier or option applied to a scheduled transfer line item." }, "ScheduledTransferLineItems": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ScheduledTransferLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "Line items for a scheduled transfer." }, "SendFunds": { "type": "object", "properties": { "ach": { "$ref": "#/components/schemas/SendFundsAch" }, "pushToCard": { "$ref": "#/components/schemas/SendFundsPushToCard" }, "rtp": { "$ref": "#/components/schemas/SendFundsRtp" }, "instantBank": { "$ref": "#/components/schemas/SendFundsInstantBank" } } }, "SendFundsAch": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "SendFundsAchError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "SendFundsError": { "type": "object", "properties": { "ach": { "$ref": "#/components/schemas/SendFundsAchError" }, "pushToCard": { "$ref": "#/components/schemas/SendFundsPushToCardError" }, "rtp": { "$ref": "#/components/schemas/SendFundsRtpError" }, "instantBank": { "$ref": "#/components/schemas/SendFundsInstantBankError" } } }, "SendFundsInstantBank": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "SendFundsInstantBankError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "SendFundsPushToCard": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "SendFundsPushToCardError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "SendFundsRtp": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivity" } } }, "SendFundsRtpError": { "type": "object", "properties": { "estimatedActivity": { "$ref": "#/components/schemas/EstimatedActivityError" } } }, "SentReceipt": { "type": "object", "required": [ "receiptID", "idempotencyKey", "sentOn" ], "properties": { "receiptID": { "type": "string", "description": "Unique identifier for the receipt." }, "idempotencyKey": { "type": "string", "description": "The idempotency key used when creating the receipt." }, "sentOn": { "type": "string", "format": "date-time", "description": "When the receipt was sent.", "example": "2025-11-10T23:00:000Z" } } }, "Settings": { "type": "object", "properties": { "cardPayment": { "$ref": "#/components/schemas/CardPaymentSettings" }, "achPayment": { "$ref": "#/components/schemas/ACHPaymentSettings" } }, "description": "User provided settings to manage an account." }, "ShareScopes": { "type": "object", "required": [ "principalAccountID" ], "properties": { "principalAccountID": { "type": "string", "description": "The account ID that will receive access to the scopes.", "example": "c520f1b9-0ba7-42f5-b977-248cdbe41c69" }, "allowScopes": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationScope" }, "description": "The list of scopes to share with the principal account. If none are provided, all intersecting scopes are added.", "example": [ "transfers.write", "payment-methods.read" ] } }, "description": "Describes the scopes being shared from a subject account to a principal account." }, "SignedDecimalString": { "type": "string", "format": "^\\d+\\.\\d{1,2}$", "description": "A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.", "example": "-14.89" }, "Skip": { "type": "integer", "format": "int64", "description": "The number of entries to skip when paginating a large result set.", "example": 60 }, "SourceDestinationOptions": { "type": "object", "properties": { "accountID": { "type": "string" }, "paymentMethodID": { "type": "string" } } }, "Statement": { "type": "object", "required": [ "statementID", "statementName", "fileName", "fileSize", "billingPeriodStartDateTime", "billingPeriodEndDateTime", "subscriptionIDs", "summary", "createdOn", "updatedOn" ], "properties": { "statementID": { "type": "string", "description": "The unique identifier for the statement." }, "statementName": { "type": "string", "description": "The name of the statement." }, "fileName": { "type": "string", "description": "The name of the statement file." }, "fileSize": { "type": "integer", "format": "int64", "description": "The size of the statement file in bytes." }, "billingPeriodStartDateTime": { "type": "string", "format": "date-time", "description": "The start date and time of the billing period." }, "billingPeriodEndDateTime": { "type": "string", "format": "date-time", "description": "The end date and time of the billing period." }, "subscriptionIDs": { "type": "array", "items": { "type": "string" }, "description": "List of subscription IDs associated with this statement." }, "summary": { "$ref": "#/components/schemas/BillingSummary" }, "cardAcquiringFees": { "$ref": "#/components/schemas/CardAcquiringFees" }, "achFees": { "$ref": "#/components/schemas/ACHFees" }, "instantPaymentFees": { "$ref": "#/components/schemas/InstantPaymentFees" }, "platformFees": { "$ref": "#/components/schemas/PlatformFees" }, "accountFees": { "$ref": "#/components/schemas/AccountFees" }, "otherCardFees": { "$ref": "#/components/schemas/OtherCardFees" }, "partnerFees": { "$ref": "#/components/schemas/PartnerFees" }, "createdOn": { "type": "string", "format": "date-time", "description": "The date and time the statement was created." }, "updatedOn": { "type": "string", "format": "date-time", "description": "The date and time the statement was last updated." } }, "description": "A billing statement for a Moov account." }, "SubmissionIntent": { "type": "string", "enum": [ "wait", "submit" ] }, "Sweep": { "type": "object", "required": [ "sweepID", "status", "accruedAmount", "currency", "accrualStartedOn" ], "properties": { "sweepID": { "$ref": "#/components/schemas/SweepID" }, "status": { "$ref": "#/components/schemas/SweepStatus" }, "accruedAmount": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "The total net amount of wallet transactions accrued in the sweep." }, "residualBalance": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "Amount remaining in the wallet after the sweep transfer completes." }, "currency": { "$ref": "#/components/schemas/Currency" }, "accrualStartedOn": { "type": "string", "format": "date-time", "description": "The date-time the sweep began accruing transactions." }, "accrualEndedOn": { "type": "string", "format": "date-time", "description": "The date-time the sweep stopped accruing transactions." }, "pushPaymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "pullPaymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "transferID": { "type": "string" }, "transferAmount": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "Amount that is transferred." }, "statementDescriptor": { "$ref": "#/components/schemas/SweepStatementDescriptor" }, "subtotals": { "type": "array", "items": { "$ref": "#/components/schemas/SweepSubtotal" }, "description": "The subtotal of each transaction type contributing to the sweep's accrued amount." } } }, "SweepConfig": { "type": "object", "required": [ "sweepConfigID", "walletID", "status", "pushPaymentMethod", "pullPaymentMethod", "createdOn", "updatedOn" ], "properties": { "sweepConfigID": { "$ref": "#/components/schemas/SweepConfigID" }, "walletID": { "$ref": "#/components/schemas/WalletID" }, "status": { "$ref": "#/components/schemas/SweepConfigStatus" }, "pushPaymentMethod": { "$ref": "#/components/schemas/SweepConfigPaymentMethod" }, "pullPaymentMethod": { "$ref": "#/components/schemas/SweepConfigPaymentMethod" }, "minimumBalance": { "type": "string", "pattern": "^\\d+\\.\\d{1,2}$", "description": "An optional field to specify an amount to maintain in the wallet. This is a decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99. If not supplied, the default is 0.00." }, "statementDescriptor": { "$ref": "#/components/schemas/SweepStatementDescriptor" }, "lockedFields": { "type": "array", "items": { "type": "string" }, "description": "An array of fields that are locked. To request updates, please contact Moov support." }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" } } }, "SweepConfigID": { "type": "string" }, "SweepConfigPaymentMethod": { "type": "object", "required": [ "paymentMethodID" ], "properties": { "paymentMethodID": { "$ref": "#/components/schemas/PaymentMethodID" }, "disabledOn": { "type": "string", "format": "date-time" } }, "description": "The payment method used to push or pull funds to a bank account.\nThe push payment method can only be ach-credit-standard, ach-credit-same-day, or rtp-credit. The pull payment method can only be ach-debit-fund." }, "SweepConfigStatus": { "type": "string", "enum": [ "enabled", "disabled" ] }, "SweepID": { "type": "string" }, "SweepStatementDescriptor": { "type": "string", "minLength": 4, "maxLength": 10, "description": "The text that appears on the banking statement. The default descriptor is a 10 character ID if an override is not set in the sweep configs statementDescriptor." }, "SweepStatus": { "type": "string", "enum": [ "accruing", "action-required", "canceled", "closed", "failed", "paid" ] }, "SweepSubtotal": { "type": "object", "required": [ "type", "count", "amount" ], "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/WalletTransactionType" } ], "description": "The type of wallet transaction the subtotal is for." }, "count": { "type": "integer", "format": "int64", "description": "The number of transactions of this type accrued in the sweep." }, "amount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The value of transactions of this type accrued in the sweep." } } }, "TaxID": { "type": "object", "required": [ "ein" ], "properties": { "ein": { "type": "object", "properties": { "number": { "type": "string", "example": "12-3456789" } }, "required": [ "number" ] } }, "description": "An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN." }, "TaxIDUpdate": { "type": "object", "properties": { "ein": { "type": "object", "properties": { "number": { "type": "string", "example": "12-3456789" } } } }, "description": "An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN." }, "TerminalApplication": { "type": "object", "required": [ "terminalApplicationID", "status", "platform" ], "properties": { "terminalApplicationID": { "$ref": "#/components/schemas/TerminalApplicationID" }, "status": { "$ref": "#/components/schemas/TerminalApplicationStatus" }, "platform": { "$ref": "#/components/schemas/TerminalApplicationPlatform" }, "appBundleID": { "type": "string", "description": "The app bundle identifier of the terminal application. Will be returned if platform is `ios`." }, "packageName": { "type": "string", "pattern": "^[a-z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)+$", "description": "The app package name of the terminal application. Will be returned if platform is `android`." }, "sha256Digest": { "type": "string", "description": "A cryptographic hash of the signing key for the application. Will be returned if platform is `android`." }, "versionCode": { "type": "string", "description": "The app version code of the terminal application. Will be returned if platform is `android`." } }, "description": "Describes a terminal application.", "example": { "terminalApplicationID": "12345678-1234-1234-1234-123456789012", "status": "pending", "platform": "android", "packageName": "com.example.app", "sha256Digest": "AA:BB:CC:DD:EE:FF:AA:BB:CC:DD:EE:FF:AA:BB:CC:DD:AA:BB:CC:DD:EE:FF:AA:BB:CC:DD:EE:FF:AA:BB:CC:DD", "versionCode": "20332277" } }, "TerminalApplicationError": { "type": "object", "properties": { "platform": { "type": "string" }, "appBundleID": { "type": "string" }, "packageName": { "type": "string" }, "sha256Digest": { "type": "string" }, "versionCode": { "type": "string" } } }, "TerminalApplicationID": { "type": "string", "description": "ID of the terminal application.", "example": "12345678-1234-1234-1234-123456789012" }, "TerminalApplicationPlatform": { "type": "string", "enum": [ "undefined", "ios", "android" ], "description": "Platform of the terminal application.", "example": "ios" }, "TerminalApplicationStatus": { "type": "string", "enum": [ "undefined", "pending", "enabled", "disabled" ], "description": "Status of the terminal application.", "example": "enabled" }, "TerminalApplicationVersion": { "type": "object", "required": [ "version" ], "properties": { "version": { "type": "string", "description": "The app version of the terminal application (version code for Android terminal application)." } }, "description": "Describes a terminal application version.", "example": { "version": "20440059" } }, "TerminalCard": { "type": "object", "properties": { "entryMode": { "$ref": "#/components/schemas/EntryMode" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "bin": { "type": "string", "minLength": 6, "maxLength": 8 }, "cardType": { "$ref": "#/components/schemas/CardType" }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "fingerprint": { "$ref": "#/components/schemas/CardFingerprint" }, "holderName": { "type": "string", "description": "The name of the cardholder as it appears on the card." }, "issuer": { "type": "string", "description": "Financial institution that issued the card." }, "issuerCountry": { "type": "string", "description": "Country where the card was issued." }, "lastFourCardNumber": { "type": "string", "minLength": 4, "maxLength": 4, "description": "Last four digits of the card number" }, "applicationID": { "type": "string", "description": "Identifier for the point of sale terminal application." }, "applicationName": { "type": "string", "description": "Name label for the point of sale terminal application." } }, "description": "Describes payment card details captured with tap or in-person payment.", "example": { "entryMode": "contactless", "brand": "Visa", "bin": "123456", "cardType": "credit", "expiration": { "month": "01", "year": "21" }, "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3", "holderName": "Jules Jackson", "issuer": "GRINGOTTS BANK", "issuerCountry": "US", "lastFourCardNumber": "1234" } }, "TerminalConfiguration": { "type": "object", "required": [ "configuration" ], "properties": { "configuration": { "type": "string" } }, "description": "Describes a terminal configuration.", "example": { "configuration": "Zm9vYmFyCg==" } }, "TermsOfService": { "type": "object", "required": [ "acceptedDate", "acceptedIP" ], "properties": { "acceptedDate": { "type": "string", "format": "date-time", "description": "The date and time the terms of service were accepted." }, "acceptedIP": { "type": "string", "format": "ipv4", "description": "The IP address from which the terms of service were accepted.", "example": "172.217.2.46" } }, "description": "Describes the acceptance of the Terms of Service." }, "TermsOfServiceError": { "type": "object", "properties": { "token": { "type": "string" }, "manual": { "type": "object", "properties": { "acceptedDate": { "type": "string" }, "acceptedDomain": { "type": "string" }, "acceptedIP": { "type": "string" }, "acceptedUserAgent": { "type": "string" } } } } }, "TermsOfServicePayload": { "type": "object", "properties": { "token": { "type": "string" }, "manual": { "$ref": "#/components/schemas/ManualTermsOfService" } } }, "TermsOfServicePayloadUpdate": { "type": "object", "properties": { "token": { "type": "string" }, "manual": { "$ref": "#/components/schemas/ManualTermsOfServiceUpdate" } } }, "TermsOfServiceToken": { "type": "object", "required": [ "token" ], "properties": { "token": { "type": "string", "example": "kgT1uxoMAk7QKuyJcmQE8nqW_HjpyuXBabiXPi6T83fUQoxsyWYPcYzuHQTqrt7YRp4gCwyDQvb6U5REM9Pgl2EloCe35t-eiMAbUWGo3Kerxme6aqNcKrP_6-v0MTXViOEJ96IBxPFTvMV7EROI2dq3u4e-x4BbGSCedAX-ViAQND6hcreCDXwrO6sHuzh5Xi2IzSqZHxaovnWEboaxuZKRJkA3dsFID6fzitMpm2qrOh4" } }, "description": "An encrypted value used to record acceptance of Moov's Terms of Service.", "title": "Token" }, "Ticket": { "type": "object", "required": [ "ticketID", "number", "title", "contact", "status", "createdOn", "updatedOn" ], "properties": { "ticketID": { "type": "string" }, "number": { "type": "integer" }, "title": { "type": "string" }, "contact": { "$ref": "#/components/schemas/TicketContact" }, "status": { "$ref": "#/components/schemas/TicketStatus" }, "createdOn": { "type": "string", "format": "date-time" }, "updatedOn": { "type": "string", "format": "date-time" }, "latestMessageOn": { "type": "string", "format": "date-time" }, "closedOn": { "type": "string", "format": "date-time" }, "foreignID": { "type": "string" } } }, "TicketContact": { "type": "object", "required": [ "email" ], "properties": { "email": { "type": "string" }, "name": { "type": "string" } } }, "TicketMessage": { "type": "object", "required": [ "author", "body", "sentOn" ], "properties": { "author": { "type": "string" }, "body": { "type": "string", "format": "html" }, "sentOn": { "type": "string", "format": "date-time" } } }, "TicketStatus": { "type": "string", "enum": [ "new", "in-progress", "on-hold", "closed" ] }, "TokenType": { "type": "string", "enum": [ "Bearer" ], "description": "An [RFC 6750](https://www.rfc-editor.org/rfc/rfc6750#section-6.1) token type.", "example": "Bearer" }, "TransactionSource": { "type": "string", "enum": [ "first-recurring", "recurring", "unscheduled" ], "description": "Specifies the nature and initiator of a transaction. \n\nCrucial for recurring and merchant-initiated transactions as per card scheme rules. \nOmit for customer-initiated e-commerce transactions." }, "Transfer": { "type": "object", "required": [ "transferID", "createdOn", "source", "destination", "status", "amount" ], "properties": { "transferID": { "type": "string" }, "createdOn": { "type": "string", "format": "date-time" }, "source": { "$ref": "#/components/schemas/TransferSource" }, "destination": { "$ref": "#/components/schemas/TransferDestination" }, "completedOn": { "type": "string", "format": "date-time" }, "status": { "$ref": "#/components/schemas/TransferStatus" }, "failureReason": { "$ref": "#/components/schemas/TransferFailureReason" }, "amount": { "$ref": "#/components/schemas/Amount" }, "description": { "type": "string", "maxLength": 128, "description": "An optional description of the transfer that is used on receipts and for your own internal use.", "example": "Pay Instructor for May 15 Class" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "facilitatorFee": { "$ref": "#/components/schemas/FacilitatorFee" }, "moovFee": { "type": "integer", "format": "int64", "description": "Fees charged to your platform account for transfers." }, "moovFeeDecimal": { "type": "string", "description": "Same as `moovFee`, but a decimal-formatted numerical string that represents up to 9 decimal place precision." }, "moovFeeDetails": { "$ref": "#/components/schemas/MoovFeeDetails" }, "moovFees": { "type": "array", "items": { "$ref": "#/components/schemas/MoovFee" }, "description": "Fees charged to accounts involved in the transfer." }, "groupID": { "type": "string" }, "cancellations": { "type": "array", "items": { "$ref": "#/components/schemas/Cancellation" } }, "refundedAmount": { "$ref": "#/components/schemas/Amount" }, "refunds": { "type": "array", "items": { "$ref": "#/components/schemas/CardAcquiringRefund" } }, "disputedAmount": { "$ref": "#/components/schemas/Amount" }, "disputes": { "type": "array", "items": { "$ref": "#/components/schemas/CardAcquiringDispute" } }, "sweepID": { "type": "string", "description": "ID of the sweep that created this transfer." }, "scheduleID": { "type": "string" }, "occurrenceID": { "type": "string" }, "paymentLinkCode": { "type": "string" }, "salesTaxAmount": { "allOf": [ { "$ref": "#/components/schemas/Amount" } ], "description": "Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged." }, "foreignID": { "type": "string", "description": "Optional alias from a foreign/external system which can be used to reference this resource." }, "lineItems": { "$ref": "#/components/schemas/TransferLineItems" } }, "description": "Details of a Transfer.", "title": "Sync", "example": { "transferID": "d835gf30-4b19-4850-a9b2-c0624c41ecb3", "source": { "paymentMethodID": "9506dbf6-4208-44c3-ad8a-e4431660e1f2", "paymentMethodType": "card-payment", "account": { "accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550", "email": "jules@julesjackson.com", "displayName": "Jules Jackson" }, "card": { "cardID": "aefd5563-93c6-413c-875e-1bd0ebfc116d", "fingerprint": "2f5d782ceef1c3bd31ed5...", "brand": "Visa", "cardType": "credit", "lastFourCardNumber": "2000", "bin": "400020", "expiration": { "month": "01", "year": "28" }, "holderName": "Jules Jackson", "billingAddress": { "postalCode": "80301" }, "domesticPushToCard": "standard", "domesticPullFromCard": "supported", "cardVerification": { "cvv": "unavailable", "addressLine1": "unavailable", "postalCode": "unavailable", "accountName": { "firstName": "unavailable", "lastName": "unavailable", "middleName": "unavailable", "fullName": "unavailable" } }, "issuer": "Moov Visa Sandbox", "issuerCountry": "US", "cardAccountUpdater": {} }, "cardDetails": { "status": "confirmed", "dynamicDescriptor": "WhlBdy *Yoga 11-12", "confirmedOn": "2025-01-21T21:32:16.799681237Z" } }, "destination": { "paymentMethodID": "3f9969cf-a1f3-4d83-8ddc-229a506651cf", "paymentMethodType": "moov-wallet", "account": { "accountID": "34233b72-780c-4a0d-8b08-cbbe23k878f8", "email": "john@wholebodyfitness.io", "displayName": "Whole Body Fitness" }, "wallet": { "walletID": "744b2e78-8cc8-4a6a-af42-611e3b844503", "partnerAccountID": "65b57f28-49e9-4afb-9bf6-7e4fb6444917", "walletType": "general" } }, "status": "pending", "amount": { "currency": "USD", "value": 32945 }, "description": "Transfer from card to wallet", "createdOn": "2025-01-21T21:32:16Z", "moovFees": [ { "accountID": "7e4b26c2-b399-49ef-8390-50e1ea44d550", "transferParty": "source", "totalAmount": { "currency": "USD", "valueDecimal": "0.1" }, "feeIDs": [ "9d957d33-1a9a-47aa-9460-fe1a90f003dd" ] } ] } }, "TransferACHAddendaRecord": { "type": "object", "required": [ "record", "isMasked" ], "properties": { "record": { "type": "string", "maxLength": 80, "description": "The ACH addenda record, which may have masked PII" }, "isMasked": { "type": "boolean", "description": "Flag indicating whether or not this record has been masked" } }, "description": "An addenda record which was added to an ACH transfer" }, "TransferAccount": { "type": "object", "required": [ "accountID", "email", "displayName" ], "properties": { "accountID": { "type": "string" }, "email": { "type": "string" }, "displayName": { "type": "string" } } }, "TransferDestination": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "account" ], "properties": { "paymentMethodID": { "type": "string" }, "paymentMethodType": { "$ref": "#/components/schemas/TransferPaymentMethodType" }, "account": { "$ref": "#/components/schemas/TransferAccount" }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" }, "wallet": { "$ref": "#/components/schemas/TransferPaymentMethodsWallet" }, "card": { "$ref": "#/components/schemas/TransferPaymentMethodsCard" }, "achDetails": { "$ref": "#/components/schemas/ACHTransactionDetails" }, "applePay": { "$ref": "#/components/schemas/ApplePayResponse" }, "cardDetails": { "$ref": "#/components/schemas/CardTransactionDetails" }, "rtpDetails": { "$ref": "#/components/schemas/RTPTransactionDetails" } } }, "TransferEntryMode": { "type": "string", "enum": [ "contactless" ], "description": "How the card information was entered into the point of sale terminal.", "example": "contactless" }, "TransferFailureReason": { "type": "string", "enum": [ "source-payment-error", "destination-payment-error", "wallet-insufficient-funds", "rejected-high-risk", "processing-error" ], "description": "Reason for a transfer's failure." }, "TransferLineItem": { "type": "object", "required": [ "name", "basePrice", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the item." }, "basePrice": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The base price of the item before applying option modifiers." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this item." }, "options": { "type": "array", "items": { "$ref": "#/components/schemas/TransferLineItemOption" }, "description": "Optional list of modifiers applied to this item (e.g., toppings, upgrades, customizations)." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/TransferLineItemImageMetadata" }, "description": "Optional list of images associated with this line item." }, "productID": { "type": "string", "description": "Optional unique identifier associating the line item with a product." } }, "description": "Represents a single item in a transfer, including optional modifiers and quantity." }, "TransferLineItemImageMetadata": { "type": "object", "required": [ "imageID", "link", "publicID" ], "properties": { "imageID": { "$ref": "#/components/schemas/ImageID" }, "altText": { "type": "string", "maxLength": 125, "description": "Alternative text for the image." }, "link": { "type": "string", "format": "uri", "description": "The image's public URL.", "example": "https://api.moov.io/images/q7lKWleAy9fUNhEGezQ1g" }, "publicID": { "$ref": "#/components/schemas/ImagePublicID" } } }, "TransferLineItemOption": { "type": "object", "required": [ "name", "quantity" ], "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 150, "description": "The name of the option or modifier." }, "quantity": { "type": "integer", "format": "int32", "minimum": 1, "description": "The quantity of this option." }, "priceModifier": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "Optional price modification applied by this option. Can be positive, negative, or zero." }, "images": { "type": "array", "items": { "$ref": "#/components/schemas/TransferLineItemImageMetadata" }, "description": "Optional list of images associated with this line item option." }, "group": { "type": "string", "maxLength": 100, "description": "Optional group identifier to categorize related options (e.g., 'toppings')." } }, "description": "Represents a modifier or option applied to a line item." }, "TransferLineItems": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/TransferLineItem" }, "minItems": 1, "description": "The list of line items." } }, "description": "An optional collection of line items for a transfer.\nWhen line items are provided, their total plus sales tax must equal the transfer amount." }, "TransferOptions": { "type": "object", "properties": { "sourceOptions": { "type": "array", "items": { "$ref": "#/components/schemas/TransferPaymentMethod" } }, "destinationOptions": { "type": "array", "items": { "$ref": "#/components/schemas/TransferPaymentMethod" } } } }, "TransferOptionsValidationError": { "type": "object", "properties": { "amount": { "type": "string" }, "source": { "type": "string" }, "destination": { "type": "string" } } }, "TransferParty": { "type": "string", "enum": [ "source", "destination", "partner" ] }, "TransferPaymentMethod": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/MoovWalletTransferPaymentMethod" }, { "$ref": "#/components/schemas/AchDebitFundTransferPaymentMethod" }, { "$ref": "#/components/schemas/AchDebitCollectTransferPaymentMethod" }, { "$ref": "#/components/schemas/AchCreditStandardTransferPaymentMethod" }, { "$ref": "#/components/schemas/AchCreditSameDayTransferPaymentMethod" }, { "$ref": "#/components/schemas/RtpCreditTransferPaymentMethod" }, { "$ref": "#/components/schemas/CardPaymentTransferPaymentMethod" }, { "$ref": "#/components/schemas/PushToCardTransferPaymentMethod" }, { "$ref": "#/components/schemas/PullFromCardTransferPaymentMethod" }, { "$ref": "#/components/schemas/ApplePayTransferPaymentMethod" }, { "$ref": "#/components/schemas/CardPresentPaymentTransferPaymentMethod" } ], "discriminator": { "propertyName": "paymentMethodType", "mapping": { "moov-wallet": "#/components/schemas/MoovWalletTransferPaymentMethod", "ach-debit-fund": "#/components/schemas/AchDebitFundTransferPaymentMethod", "ach-debit-collect": "#/components/schemas/AchDebitCollectTransferPaymentMethod", "ach-credit-standard": "#/components/schemas/AchCreditStandardTransferPaymentMethod", "ach-credit-same-day": "#/components/schemas/AchCreditSameDayTransferPaymentMethod", "rtp-credit": "#/components/schemas/RtpCreditTransferPaymentMethod", "card-payment": "#/components/schemas/CardPaymentTransferPaymentMethod", "push-to-card": "#/components/schemas/PushToCardTransferPaymentMethod", "pull-from-card": "#/components/schemas/PullFromCardTransferPaymentMethod", "apple-pay": "#/components/schemas/ApplePayTransferPaymentMethod", "card-present-payment": "#/components/schemas/CardPresentPaymentTransferPaymentMethod" } }, "description": "A method of moving money" }, "TransferPaymentMethodID": { "type": "string", "format": "uuid", "description": "ID of the payment method." }, "TransferPaymentMethodType": { "type": "string", "enum": [ "moov-wallet", "ach-debit-fund", "ach-debit-collect", "ach-credit-standard", "ach-credit-same-day", "rtp-credit", "card-payment", "push-to-card", "pull-from-card", "apple-pay", "card-present-payment" ], "description": "The payment method type that represents a payment rail and directionality" }, "TransferPaymentMethodsBankAccount": { "type": "object", "required": [ "bankAccountID", "fingerprint", "status", "holderName", "holderType", "bankName", "bankAccountType", "routingNumber", "lastFourAccountNumber", "updatedOn" ], "properties": { "bankAccountID": { "type": "string" }, "fingerprint": { "type": "string", "maxLength": 100, "description": "Once the bank account is linked, we don't reveal the full bank account number.\n\nThe fingerprint acts as a way to identify whether two linked bank accounts are the same." }, "status": { "$ref": "#/components/schemas/BankAccountStatus" }, "holderName": { "type": "string" }, "holderType": { "$ref": "#/components/schemas/BankAccountHolderType" }, "bankName": { "type": "string" }, "bankAccountType": { "$ref": "#/components/schemas/BankAccountType" }, "routingNumber": { "type": "string" }, "lastFourAccountNumber": { "type": "string" }, "updatedOn": { "type": "string", "format": "date-time" } }, "description": "A bank account as contained within a payment method." }, "TransferPaymentMethodsCard": { "type": "object", "required": [ "cardID", "fingerprint", "brand", "cardType", "lastFourCardNumber", "bin", "expiration", "billingAddress", "cardVerification" ], "properties": { "cardID": { "$ref": "#/components/schemas/CardID" }, "fingerprint": { "$ref": "#/components/schemas/CardFingerprint" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "cardType": { "$ref": "#/components/schemas/CardType" }, "lastFourCardNumber": { "type": "string", "minLength": 4, "maxLength": 4, "description": "Last four digits of the card number" }, "bin": { "type": "string", "minLength": 6, "maxLength": 8, "description": "The first six to eight digits of the card number, which identifies the financial institution that issued the card." }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "holderName": { "type": "string", "description": "The name of the cardholder as it appears on the card." }, "billingAddress": { "$ref": "#/components/schemas/CardAddress" }, "cardVerification": { "$ref": "#/components/schemas/CardVerification" }, "issuer": { "type": "string", "description": "Financial institution that issued the card." }, "issuerCountry": { "type": "string", "description": "Country where the card was issued." }, "cardOnFile": { "type": "boolean", "description": "Indicates cardholder has authorized card to be stored for future payments." }, "merchantAccountID": { "type": "string" }, "cardAccountUpdater": { "$ref": "#/components/schemas/CardAccountUpdater" }, "domesticPushToCard": { "$ref": "#/components/schemas/DomesticPushToCard" }, "domesticPullFromCard": { "$ref": "#/components/schemas/DomesticPullFromCard" } }, "description": "A card as contained within a payment method." }, "TransferPaymentMethodsWallet": { "type": "object", "required": [ "walletID", "partnerAccountID", "walletType" ], "properties": { "walletID": { "$ref": "#/components/schemas/WalletID" }, "partnerAccountID": { "type": "string", "format": "uuid" }, "walletType": { "$ref": "#/components/schemas/WalletType" } } }, "TransferSource": { "type": "object", "required": [ "paymentMethodID", "paymentMethodType", "account" ], "properties": { "transferID": { "type": "string", "description": "String present only if the transfer is part of a transfer group." }, "paymentMethodID": { "type": "string" }, "paymentMethodType": { "$ref": "#/components/schemas/TransferPaymentMethodType" }, "account": { "$ref": "#/components/schemas/TransferAccount" }, "bankAccount": { "$ref": "#/components/schemas/TransferPaymentMethodsBankAccount" }, "wallet": { "$ref": "#/components/schemas/TransferPaymentMethodsWallet" }, "card": { "$ref": "#/components/schemas/TransferPaymentMethodsCard" }, "applePay": { "$ref": "#/components/schemas/ApplePayResponse" }, "terminalCard": { "$ref": "#/components/schemas/TransferTerminalCard" }, "cardDetails": { "$ref": "#/components/schemas/CardTransactionDetails" }, "achDetails": { "$ref": "#/components/schemas/ACHTransactionDetails" } } }, "TransferStatus": { "type": "string", "enum": [ "created", "pending", "completed", "failed", "reversed", "queued", "canceled" ], "description": "Status of a transfer." }, "TransferTerminalCard": { "type": "object", "properties": { "entryMode": { "$ref": "#/components/schemas/TransferEntryMode" }, "brand": { "$ref": "#/components/schemas/CardBrand" }, "bin": { "type": "string", "minLength": 6, "maxLength": 8 }, "cardType": { "$ref": "#/components/schemas/CardType" }, "expiration": { "$ref": "#/components/schemas/CardExpiration" }, "fingerprint": { "$ref": "#/components/schemas/CardFingerprint" }, "holderName": { "type": "string", "description": "The name of the cardholder as it appears on the card." }, "issuer": { "type": "string", "description": "Financial institution that issued the card." }, "issuerCountry": { "type": "string", "description": "Country where the card was issued." }, "lastFourCardNumber": { "type": "string", "minLength": 4, "maxLength": 4, "description": "Last four digits of the card number" }, "applicationID": { "type": "string", "description": "Identifier for the point of sale terminal application." }, "applicationName": { "type": "string", "description": "Name label for the point of sale terminal application." } }, "description": "Describes payment card details captured with tap or in-person payment.", "example": { "entryMode": "contactless", "brand": "Visa", "bin": "123456", "cardType": "credit", "expiration": { "month": "01", "year": "21" }, "fingerprint": "9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3", "holderName": "Jules Jackson", "issuer": "GRINGOTTS BANK", "issuerCountry": "US", "lastFourCardNumber": "1234" } }, "TransferValidationError": { "type": "object", "properties": { "amount": { "type": "string" }, "source": { "type": "string" }, "sourcePaymentMethodID": { "type": "string" }, "destinationPaymentMethodID": { "type": "string" }, "description": { "type": "string" }, "FacilitatorFee.TotalDecimal": { "type": "string" }, "FacilitatorFee.MarkupDecimal": { "type": "string" }, "metadata": { "type": "string" }, "salesTaxAmount": { "type": "string" }, "foreignID": { "type": "string" }, "lineItems": { "$ref": "#/components/schemas/CreateTransferLineItemsValidationError" } } }, "TransferWaitFor": { "type": "string", "enum": [ "rail-response" ] }, "Underwriting": { "type": "object", "properties": { "averageTransactionSize": { "type": "integer", "format": "int64" }, "maxTransactionSize": { "type": "integer", "format": "int64" }, "averageMonthlyTransactionVolume": { "type": "integer", "format": "int64" }, "status": { "$ref": "#/components/schemas/UnderwritingStatus" }, "volumeByCustomerType": { "$ref": "#/components/schemas/VolumeByCustomerType" }, "cardVolumeDistribution": { "$ref": "#/components/schemas/CardVolumeDistribution" }, "fulfillment": { "$ref": "#/components/schemas/FulfillmentDetails" }, "geographicReach": { "$ref": "#/components/schemas/GeographicReach" }, "businessPresence": { "$ref": "#/components/schemas/BusinessPresence" }, "pendingLitigation": { "$ref": "#/components/schemas/PendingLitigation" }, "volumeShareByCustomerType": { "$ref": "#/components/schemas/VolumeShareByCustomerType" }, "collectFunds": { "$ref": "#/components/schemas/CollectFunds" }, "moneyTransfer": { "$ref": "#/components/schemas/MoneyTransfer" }, "sendFunds": { "$ref": "#/components/schemas/SendFunds" } }, "description": "Describes underwriting values (in USD) used for card payment acceptance." }, "UnderwritingStatus": { "type": "string", "enum": [ "approved", "rejected", "pendingReview", "pending", "notRequested" ], "deprecated": true }, "UpdateApplePayMerchantDomains": { "type": "object", "properties": { "addDomains": { "type": "array", "items": { "type": "string" }, "description": "A unique list of fully-qualified, top-level or sub-domain names to add.", "example": [ "pay.classbooker.dev" ] }, "removeDomains": { "type": "array", "items": { "type": "string" }, "description": "A unique list of fully-qualified, top-level or sub-domain names to remove.", "example": [ "checkout.classbooker.dev" ] } } }, "UpdateCard": { "type": "object", "properties": { "e2ee": { "$ref": "#/components/schemas/E2EETokenUpdate" }, "billingAddress": { "$ref": "#/components/schemas/UpdateCardAddress" }, "expiration": { "$ref": "#/components/schemas/UpdateCardExpiration" }, "cardCvv": { "type": "string" }, "cardOnFile": { "type": "boolean" }, "merchantAccountID": { "type": "string" }, "verifyName": { "type": "boolean" }, "holderName": { "type": "string" } }, "example": { "cardCvv": "456" } }, "UpdateCardAddress": { "type": "object", "properties": { "addressLine1": { "type": "string", "maxLength": 60 }, "addressLine2": { "type": "string", "maxLength": 32 }, "city": { "type": "string", "maxLength": 32 }, "stateOrProvince": { "type": "string", "maxLength": 2 }, "postalCode": { "type": "string", "maxLength": 10 }, "country": { "type": "string", "maxLength": 2 } }, "example": { "addressLine1": "123 Main Street", "addressLine2": "Apt 302", "city": "Boulder", "stateOrProvince": "CO", "postalCode": "80301", "country": "US" } }, "UpdateCardError": { "type": "object", "properties": { "e2ee": { "$ref": "#/components/schemas/End2EndEncryptionError" }, "billingAddress": { "type": "string" }, "expiration": { "type": "string" }, "cardCvv": { "type": "string" }, "cardOnFile": { "type": "string" }, "merchantAccountID": { "type": "string" }, "verifyName": { "type": "string" }, "holderName": { "type": "string" } } }, "UpdateCardExpiration": { "type": "object", "properties": { "month": { "type": "string" }, "year": { "type": "string" } }, "example": { "month": "01", "year": "21" } }, "UpdateEvidence": { "type": "object", "properties": { "evidenceType": { "$ref": "#/components/schemas/EvidenceType" }, "text": { "type": "string", "description": "If updating text evidence, the new text to associate with the dispute." } } }, "UpdateIssuedCard": { "type": "object", "properties": { "state": { "$ref": "#/components/schemas/UpdateIssuedCardState" }, "memo": { "type": "string" }, "authorizedUser": { "$ref": "#/components/schemas/CreateAuthorizedUserUpdate" } } }, "UpdateIssuedCardError": { "type": "object", "properties": { "state": { "type": "string" }, "memo": { "type": "string" }, "authorizedUser": { "$ref": "#/components/schemas/CreateAuthorizedUserError" } } }, "UpdateIssuedCardState": { "type": "string", "enum": [ "closed" ], "description": "Updates the state of a Moov issued card.\n- `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires." }, "UpdatePaymentLink": { "type": "object", "properties": { "amount": { "$ref": "#/components/schemas/AmountUpdate" }, "salesTaxAmount": { "$ref": "#/components/schemas/AmountUpdate" }, "expiresOn": { "type": "string", "format": "date-time", "nullable": true }, "display": { "$ref": "#/components/schemas/PaymentLinkDisplayOptionsUpdate" }, "customer": { "$ref": "#/components/schemas/PaymentLinkCustomerOptions" }, "payment": { "$ref": "#/components/schemas/PaymentLinkPaymentDetailsUpdate" }, "payout": { "$ref": "#/components/schemas/PaymentLinkPayoutDetailsUpdate" }, "lineItems": { "$ref": "#/components/schemas/CreatePaymentLinkLineItemsUpdate" } }, "example": { "amount": { "currency": "USD", "value": 12099 }, "customer": { "requirePhone": true, "requireAddress": true } } }, "UpdatePaymentLinkError": { "type": "object", "properties": { "amount": { "$ref": "#/components/schemas/AmountValidationError" }, "salesTaxAmount": { "$ref": "#/components/schemas/AmountValidationError" }, "expiresOn": { "type": "string" }, "display": { "$ref": "#/components/schemas/DisplayOptionsError" }, "payment": { "$ref": "#/components/schemas/PaymentDetailsError" }, "payout": { "$ref": "#/components/schemas/PayoutDetailsError" }, "lineItems": { "$ref": "#/components/schemas/CreatePaymentLinkLineItemsValidationError" } } }, "UpdateRepresentative": { "type": "object", "properties": { "name": { "$ref": "#/components/schemas/IndividualNameUpdate" }, "phone": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/PhoneNumber" } ], "nullable": true }, "email": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/Email" } ], "nullable": true }, "address": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/AddressUpdate" } ], "nullable": true }, "birthDate": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/BirthDateUpdate" } ], "nullable": true }, "governmentID": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GovernmentID" } ], "nullable": true }, "responsibilities": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/RepresentativeResponsibilities" } ], "nullable": true } } }, "UpdateTicket": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/UpdateTicketStatus" } }, "description": "Request to update a support ticket." }, "UpdateTicketError": { "type": "object", "properties": { "status": { "type": "string" } } }, "UpdateTicketStatus": { "type": "string", "enum": [ "closed" ] }, "UpdateUnderwriting": { "type": "object", "required": [ "averageTransactionSize", "maxTransactionSize", "averageMonthlyTransactionVolume", "volumeByCustomerType", "cardVolumeDistribution", "fulfillment" ], "properties": { "averageTransactionSize": { "type": "integer", "format": "int64" }, "maxTransactionSize": { "type": "integer", "format": "int64" }, "averageMonthlyTransactionVolume": { "type": "integer", "format": "int64" }, "volumeByCustomerType": { "$ref": "#/components/schemas/VolumeByCustomerType" }, "cardVolumeDistribution": { "$ref": "#/components/schemas/CardVolumeDistribution" }, "fulfillment": { "$ref": "#/components/schemas/FulfillmentDetails" } } }, "UpdateUnderwritingError": { "type": "object", "required": [ "error" ], "properties": { "error": { "type": "object", "properties": { "averageMonthlyTransactionVolume": { "type": "string" }, "averageTransactionSize": { "type": "string" }, "maxTransactionSize": { "type": "string" }, "volumeByCustomerType": { "$ref": "#/components/schemas/VolumeByCustomerTypeError" }, "cardVolumeDistribution": { "$ref": "#/components/schemas/CardVolumeDistributionError" }, "fulfillment": { "$ref": "#/components/schemas/FulfillmentDetailsError" } } } } }, "UpdateWebhook": { "type": "object", "required": [ "url", "status", "eventTypes", "description" ], "properties": { "url": { "type": "string", "format": "uri", "description": "The URL where webhook events will be sent." }, "status": { "allOf": [ { "$ref": "#/components/schemas/WebhookStatus" } ], "description": "The status of the webhook." }, "eventTypes": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookEventType" }, "description": "The list of event types this webhook should subscribe to." }, "description": { "type": "string", "description": "A description of the webhook for reference. Can be an empty string." } }, "description": "Request body for updating an existing webhook." }, "UpdateWebhookValidationError": { "type": "object", "properties": { "url": { "type": "string", "description": "Details about the URL validation error." }, "status": { "type": "string", "description": "Details about the status validation error." }, "eventTypes": { "type": "string", "description": "Details about the event types validation error." }, "description": { "type": "string", "description": "Details about the description validation error." } } }, "UpsertSchedule": { "type": "object", "properties": { "description": { "type": "string", "description": "Simple description of what the schedule is." }, "occurrences": { "type": "array", "items": { "$ref": "#/components/schemas/Occurrence" } }, "recur": { "$ref": "#/components/schemas/Recur" } } }, "UpsertUnderwriting": { "type": "object", "properties": { "geographicReach": { "$ref": "#/components/schemas/GeographicReach" }, "businessPresence": { "$ref": "#/components/schemas/BusinessPresence" }, "pendingLitigation": { "$ref": "#/components/schemas/PendingLitigation" }, "volumeShareByCustomerType": { "$ref": "#/components/schemas/VolumeShareByCustomerType" }, "collectFunds": { "$ref": "#/components/schemas/CollectFunds" }, "moneyTransfer": { "$ref": "#/components/schemas/MoneyTransfer" }, "sendFunds": { "$ref": "#/components/schemas/SendFunds" }, "submissionIntent": { "$ref": "#/components/schemas/SubmissionIntent" } } }, "UpsertUnderwritingError": { "type": "object", "properties": { "geographicReach": { "type": "string" }, "businessPresence": { "type": "string" }, "pendingLitigation": { "type": "string" }, "volumeShareByCustomerType": { "$ref": "#/components/schemas/VolumeShareByCustomerTypeError" }, "collectFunds": { "$ref": "#/components/schemas/CollectFundsError" }, "moneyTransfer": { "$ref": "#/components/schemas/MoneyTransferError" }, "sendFunds": { "$ref": "#/components/schemas/SendFundsError" }, "averageMonthlyTransactionVolume": { "type": "string" }, "error": { "type": "string" }, "averageTransactionSize": { "type": "string" }, "maxTransactionSize": { "type": "string" }, "volumeByCustomerType": { "$ref": "#/components/schemas/VolumeByCustomerTypeError" }, "cardVolumeDistribution": { "$ref": "#/components/schemas/CardVolumeDistributionError" }, "fulfillment": { "$ref": "#/components/schemas/FulfillmentDetailsError" } } }, "Verification": { "type": "object", "required": [ "status" ], "properties": { "verificationStatus": { "$ref": "#/components/schemas/AccountVerificationStatus" }, "status": { "$ref": "#/components/schemas/VerificationStatus" }, "details": { "$ref": "#/components/schemas/VerificationStatusDetail" }, "documents": { "type": "array", "items": { "$ref": "#/components/schemas/Document" } } }, "description": "Describes identity verification status and relevant identity verification documents." }, "VerificationStatus": { "type": "string", "enum": [ "unverified", "pending", "verified", "errored" ], "description": "Possible states an account verification can be in.", "deprecated": true }, "VerificationStatusDetail": { "type": "string", "enum": [ "failedAutoVerify", "docDobMismatch", "docNameMismatch", "docAddressMismatch", "docNumberMismatch", "docIncomplete", "docFailedRisk", "potentialAccountSanctionsMatch", "potentialRepresentativeSanctionsMatch", "failedOther" ], "description": "Additional detail for a verification status.", "deprecated": true }, "Versions": { "type": "string", "enum": [ "v2024.01.00", "v2025.01.00", "v2025.04.00", "v2025.07.00", "v2025.10.00", "v2026.01.00", "v2026.04.00", "v2026.07.00", "dev" ], "description": "Moov API versions. \n\nAPI versioning follows the format `vYYYY.QQ.BB`, where \n - `YYYY` is the year\n - `QQ` is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)\n - `BB` is the build number, starting at `.01`, for subsequent builds in the same quarter. \n - For example, `v2024.01.00` is the initial release of the first quarter of 2024.\n\nThe `dev` version represents the most recent development state. It may include breaking changes and should be treated as a beta release." }, "VolumeByCustomerType": { "type": "object", "required": [ "businessToBusinessPercentage", "consumerToBusinessPercentage" ], "properties": { "businessToBusinessPercentage": { "type": "integer", "format": "int32" }, "consumerToBusinessPercentage": { "type": "integer", "format": "int32" } } }, "VolumeByCustomerTypeError": { "type": "object", "properties": { "businessToBusinessPercentage": { "type": "string" }, "consumerToBusinessPercentage": { "type": "string" } } }, "VolumeRange": { "type": "object", "required": [ "fromValue", "flatAmount", "perUnitAmount" ], "properties": { "fromValue": { "type": "integer", "description": "Specifies the lower value of a tier for the fee." }, "toValue": { "type": "integer", "description": "Specifies the upper value of a tier for the fee." }, "flatAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The flat amount for a whole tier of the fee." }, "perUnitAmount": { "allOf": [ { "$ref": "#/components/schemas/AmountDecimal" } ], "description": "The unit price for a specific tier of the fee." } }, "description": "Defines the volume ranges for tiered pricing models." }, "VolumeShareByCustomerType": { "type": "object", "properties": { "business": { "type": "integer", "format": "int32" }, "consumer": { "type": "integer", "format": "int32" }, "p2p": { "type": "integer", "format": "int32" } } }, "VolumeShareByCustomerTypeError": { "type": "object", "properties": { "business": { "type": "string" }, "consumer": { "type": "string" }, "p2p": { "type": "string" } } }, "Wallet": { "type": "object", "required": [ "walletID", "availableBalance", "partnerAccountID", "name", "status", "walletType", "description", "createdOn" ], "properties": { "walletID": { "$ref": "#/components/schemas/WalletID" }, "availableBalance": { "$ref": "#/components/schemas/WalletAvailableBalance" }, "partnerAccountID": { "type": "string" }, "name": { "type": "string", "description": "Name of the wallet" }, "status": { "$ref": "#/components/schemas/WalletStatus" }, "walletType": { "$ref": "#/components/schemas/WalletType" }, "description": { "type": "string", "description": "Description of the wallet" }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "createdOn": { "type": "string", "format": "date-time" }, "closedOn": { "type": "string", "format": "date-time" } }, "description": "A Moov wallet to store funds for transfers." }, "WalletAvailableBalance": { "type": "object", "required": [ "currency", "value", "valueDecimal" ], "properties": { "currency": { "$ref": "#/components/schemas/Currency" }, "value": { "type": "integer", "format": "int64", "description": "Quantity in the smallest unit of the specified currency. \n\nIn USD this is cents, for example, $12.04 is 1204 and $0.99 is 99.", "example": 1204 }, "valueDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$" } } }, "WalletID": { "type": "string" }, "WalletStatus": { "type": "string", "enum": [ "active", "closed" ], "description": "Status of a wallet.\n - `active`: The wallet is available for use and has an enabled payment method.\n - `closed`: The wallet is no longer active and the corresponding payment method has been disabled." }, "WalletTransaction": { "type": "object", "required": [ "walletID", "transactionID", "transactionType", "sourceType", "sourceID", "status", "memo", "createdOn", "currency", "grossAmount", "grossAmountDecimal", "fee", "feeDecimal", "netAmount", "netAmountDecimal" ], "properties": { "walletID": { "$ref": "#/components/schemas/WalletID" }, "transactionID": { "$ref": "#/components/schemas/WalletTransactionID" }, "transactionType": { "$ref": "#/components/schemas/WalletTransactionType" }, "sourceType": { "$ref": "#/components/schemas/WalletTransactionSourceType" }, "sourceID": { "type": "string", "description": "The ID of the Moov object to which this transaction is related." }, "status": { "$ref": "#/components/schemas/WalletTransactionStatus" }, "memo": { "type": "string", "description": "Detailed description of the transaction." }, "createdOn": { "type": "string", "format": "date-time" }, "completedOn": { "type": "string", "format": "date-time" }, "currency": { "$ref": "#/components/schemas/Currency" }, "grossAmount": { "type": "integer", "format": "int64", "description": "The total transaction amount. The amount is in the smallest unit of the specified currency. In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99." }, "grossAmountDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "The total transaction amount. Same as `grossAmount`, but a decimal-formatted numerical string that represents up to 9 decimal place precision. In USD for example, 12.987654321 is $12.987654321 and 0.9987634521 is $0.9987634521." }, "fee": { "type": "integer", "format": "int64", "description": "Total fees paid for the transaction. The value is in the smallest unit of the specified currency. In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99." }, "feeIDs": { "type": "array", "items": { "type": "string" }, "description": "The IDs of the fees paid for the transaction." }, "feeDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "Total fees paid for the transaction. Same as `fee`, but a decimal-formatted numerical string that represents up to 9 decimal place precision. In USD for example, 12.987654321 is $12.987654321 and 0.9987634521 is $0.9987634521." }, "netAmount": { "type": "integer", "format": "int64", "description": "Net amount is the gross amount less fees paid, and the amount that affects the wallet's balance. The amount is in the smallest unit of the specified currency. In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99." }, "netAmountDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "Net amount is the gross amount less fees paid, and the amount that affects the wallet's balance. Same as `netAmount`, but a decimal-formatted numerical string that represents up to 9 decimal place precision. In USD for example, 12.987654321 is $12.987654321 and 0.9987634521 is $0.9987634521." }, "availableBalance": { "type": "integer", "format": "int64", "description": "The wallet's total available balance after recording a completed transaction. The value is in the smallest unit of the specified currency. In USD this is cents, for example, $12.04 is 1204 and $0.99 is 99." }, "availableBalanceDecimal": { "type": "string", "pattern": "^\\d+\\.\\d{1,9}$", "description": "The wallet's total available balance after recording a completed transaction. Same as `availableBalance`, but a decimal-formatted numerical string that represents up to 9 decimal place precision. In USD for example, 12.987654321 is $12.987654321 and 0.9987634521 is $0.9987634521." }, "sweepID": { "allOf": [ { "$ref": "#/components/schemas/SweepID" } ], "description": "ID of the sweep this transaction accrued in." } }, "description": "A transaction that funds or deducts from the wallet." }, "WalletTransactionID": { "type": "string" }, "WalletTransactionSourceType": { "type": "string", "enum": [ "transfer", "dispute", "issuing-card-transaction", "issuing-authorization", "sweep", "adjustment", "fee", "residual" ] }, "WalletTransactionStatus": { "type": "string", "enum": [ "pending", "completed", "canceled", "failed" ] }, "WalletTransactionType": { "type": "string", "enum": [ "account-funding", "ach-reversal", "auto-sweep", "card-payment", "card-decline", "card-reversal", "cash-out", "dispute", "dispute-reversal", "facilitator-fee", "issuing-refund", "issuing-transaction", "issuing-transaction-adjustment", "issuing-auth-hold", "issuing-auth-release", "issuing-decline", "moov-fee", "payment", "payout", "refund", "refund-failure", "rtp-failure", "top-up", "wallet-transfer", "adjustment", "fee-revenue", "residual", "instant-bank-failure" ] }, "WalletType": { "type": "string", "enum": [ "default", "general" ], "description": "Type of a wallet.\n - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.\n - `general`: An additional, user-defined wallet created via API or Dashboard." }, "Webhook": { "type": "object", "required": [ "webhookID", "url", "status", "eventTypes", "description", "createdOn", "updatedOn" ], "properties": { "webhookID": { "type": "string", "description": "Unique identifier for the webhook." }, "url": { "type": "string", "format": "uri", "description": "The URL where webhook events will be sent." }, "status": { "$ref": "#/components/schemas/WebhookStatus" }, "eventTypes": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookEventType" }, "description": "The list of event types this webhook is subscribed to." }, "description": { "type": "string", "description": "A description of the webhook for reference." }, "createdOn": { "type": "string", "format": "date-time", "description": "Timestamp of when the webhook was created." }, "updatedOn": { "type": "string", "format": "date-time", "description": "Timestamp of when the webhook was last updated." }, "lastUsedOn": { "type": "string", "format": "date-time", "description": "Timestamp of when the webhook last received an event." } }, "description": "A configured webhook endpoint that receives event notifications." }, "WebhookBillingStatementCreated": { "type": "object", "required": [ "statementID" ], "properties": { "statementID": { "type": "string" } } }, "WebhookData": { "oneOf": [ { "$ref": "#/components/schemas/WebhookDataAccountCreated" }, { "$ref": "#/components/schemas/WebhookDataAccountUpdated" }, { "$ref": "#/components/schemas/WebhookDataAccountDisconnected" }, { "$ref": "#/components/schemas/WebhookDataBalanceUpdated" }, { "$ref": "#/components/schemas/WebhookDataBankAccountCreated" }, { "$ref": "#/components/schemas/WebhookDataBankAccountUpdated" }, { "$ref": "#/components/schemas/WebhookDataBankAccountDeleted" }, { "$ref": "#/components/schemas/WebhookDataCancellationCreated" }, { "$ref": "#/components/schemas/WebhookDataCancellationUpdated" }, { "$ref": "#/components/schemas/WebhookDataCardAutoUpdated" }, { "$ref": "#/components/schemas/WebhookDataCapabilityRequested" }, { "$ref": "#/components/schemas/WebhookDataCapabilityUpdated" }, { "$ref": "#/components/schemas/WebhookDataDisputeCreated" }, { "$ref": "#/components/schemas/WebhookDataDisputeUpdated" }, { "$ref": "#/components/schemas/WebhookDataInvoiceCreated" }, { "$ref": "#/components/schemas/WebhookDataInvoiceUpdated" }, { "$ref": "#/components/schemas/WebhookDataNetworkIDUpdated" }, { "$ref": "#/components/schemas/WebhookDataPaymentMethodEnabled" }, { "$ref": "#/components/schemas/WebhookDataPaymentMethodDisabled" }, { "$ref": "#/components/schemas/WebhookDataRefundCreated" }, { "$ref": "#/components/schemas/WebhookDataRefundUpdated" }, { "$ref": "#/components/schemas/WebhookDataRepresentativeCreated" }, { "$ref": "#/components/schemas/WebhookDataRepresentativeUpdated" }, { "$ref": "#/components/schemas/WebhookDataRepresentativeDisabled" }, { "$ref": "#/components/schemas/WebhookDataSweepCreated" }, { "$ref": "#/components/schemas/WebhookDataSweepUpdated" }, { "$ref": "#/components/schemas/WebhookDataTerminalApplicationCreated" }, { "$ref": "#/components/schemas/WebhookDataTerminalApplicationUpdated" }, { "$ref": "#/components/schemas/WebhookDataTicketCreated" }, { "$ref": "#/components/schemas/WebhookDataTicketUpdated" }, { "$ref": "#/components/schemas/WebhookDataTicketMessageAdded" }, { "$ref": "#/components/schemas/WebhookDataTransferCreated" }, { "$ref": "#/components/schemas/WebhookDataTransferUpdated" }, { "$ref": "#/components/schemas/WebhookDataWalletCreated" }, { "$ref": "#/components/schemas/WebhookDataWalletUpdated" }, { "$ref": "#/components/schemas/WebhookDataWalletTransactionUpdated" }, { "$ref": "#/components/schemas/WebhookBillingStatementCreated" } ], "description": "The data for the webhook event. The contents are based on the event type." }, "WebhookDataAccountCreated": { "type": "object", "required": [ "accountID" ], "properties": { "accountID": { "type": "string" }, "foreignID": { "type": "string" } } }, "WebhookDataAccountDisconnected": { "type": "object", "required": [ "accountID" ], "properties": { "accountID": { "type": "string" }, "foreignID": { "type": "string" } } }, "WebhookDataAccountUpdated": { "type": "object", "required": [ "accountID" ], "properties": { "accountID": { "type": "string" }, "foreignID": { "type": "string" } } }, "WebhookDataBalanceUpdated": { "type": "object", "required": [ "accountID", "walletID" ], "properties": { "accountID": { "type": "string" }, "walletID": { "type": "string" } } }, "WebhookDataBankAccountCreated": { "type": "object", "required": [ "bankAccountID", "accountID" ], "properties": { "bankAccountID": { "type": "string" }, "accountID": { "type": "string" } } }, "WebhookDataBankAccountDeleted": { "type": "object", "required": [ "bankAccountID", "accountID" ], "properties": { "bankAccountID": { "type": "string" }, "accountID": { "type": "string" } } }, "WebhookDataBankAccountUpdated": { "type": "object", "required": [ "bankAccountID", "accountID", "status", "statusReason" ], "properties": { "bankAccountID": { "type": "string" }, "accountID": { "type": "string" }, "status": { "$ref": "#/components/schemas/BankAccountStatus" }, "statusReason": { "$ref": "#/components/schemas/BankAccountStatusReason" }, "exceptionDetails": { "$ref": "#/components/schemas/BankAccountException" } } }, "WebhookDataCancellationCreated": { "type": "object", "required": [ "cancellationID", "transferID", "status" ], "properties": { "cancellationID": { "type": "string" }, "transferID": { "type": "string" }, "status": { "$ref": "#/components/schemas/CancellationStatus" } } }, "WebhookDataCancellationUpdated": { "type": "object", "required": [ "cancellationID", "transferID", "status" ], "properties": { "cancellationID": { "type": "string" }, "transferID": { "type": "string" }, "status": { "$ref": "#/components/schemas/CancellationStatus" } } }, "WebhookDataCapabilityRequested": { "type": "object", "required": [ "accountID", "capabilityID" ], "properties": { "accountID": { "type": "string" }, "foreignID": { "type": "string" }, "capabilityID": { "$ref": "#/components/schemas/CapabilityID" } } }, "WebhookDataCapabilityUpdated": { "type": "object", "required": [ "accountID", "capabilityID", "status" ], "properties": { "accountID": { "type": "string" }, "foreignID": { "type": "string" }, "capabilityID": { "$ref": "#/components/schemas/CapabilityID" }, "status": { "$ref": "#/components/schemas/CapabilityStatus" } } }, "WebhookDataCardAutoUpdated": { "type": "object", "required": [ "cardID", "accountID", "updateType" ], "properties": { "cardID": { "type": "string" }, "accountID": { "type": "string" }, "updateType": { "$ref": "#/components/schemas/CardUpdateReason" } } }, "WebhookDataDisputeCreated": { "type": "object", "required": [ "accountID", "transferID", "transactionID", "disputeID", "status", "phase" ], "properties": { "accountID": { "type": "string" }, "transferID": { "type": "string" }, "transactionID": { "type": "string" }, "disputeID": { "type": "string" }, "status": { "$ref": "#/components/schemas/DisputeStatus" }, "phase": { "$ref": "#/components/schemas/DisputePhase" } } }, "WebhookDataDisputeUpdated": { "type": "object", "required": [ "accountID", "transferID", "transactionID", "disputeID", "status", "phase" ], "properties": { "accountID": { "type": "string" }, "transferID": { "type": "string" }, "transactionID": { "type": "string" }, "disputeID": { "type": "string" }, "status": { "$ref": "#/components/schemas/DisputeStatus" }, "phase": { "$ref": "#/components/schemas/DisputePhase" } } }, "WebhookDataInvoiceCreated": { "type": "object", "required": [ "accountID", "invoiceID" ], "properties": { "accountID": { "type": "string" }, "invoiceID": { "type": "string" } } }, "WebhookDataInvoiceUpdated": { "type": "object", "required": [ "accountID", "invoiceID", "status" ], "properties": { "accountID": { "type": "string" }, "invoiceID": { "type": "string" }, "status": { "$ref": "#/components/schemas/InvoiceStatus" } } }, "WebhookDataNetworkIDUpdated": { "type": "object", "required": [ "accountID" ], "properties": { "accountID": { "type": "string" }, "visaMid": { "type": "string" }, "mastercardMid": { "type": "string" }, "discoverMid": { "type": "string" }, "amexMid": { "type": "string" }, "updatedOn": { "type": "string", "format": "date-time" } } }, "WebhookDataPaymentMethodDisabled": { "type": "object", "required": [ "accountID", "paymentMethodID", "sourceID" ], "properties": { "accountID": { "type": "string" }, "paymentMethodID": { "type": "string" }, "sourceID": { "type": "string" } } }, "WebhookDataPaymentMethodEnabled": { "type": "object", "required": [ "accountID", "paymentMethodID", "sourceID" ], "properties": { "accountID": { "type": "string" }, "paymentMethodID": { "type": "string" }, "sourceID": { "type": "string" } } }, "WebhookDataRefundCreated": { "type": "object", "required": [ "accountID", "transferID", "refundID" ], "properties": { "accountID": { "type": "string" }, "transferID": { "type": "string" }, "refundID": { "type": "string" } } }, "WebhookDataRefundUpdated": { "type": "object", "required": [ "accountID", "transferID", "refundID", "status" ], "properties": { "accountID": { "type": "string" }, "transferID": { "type": "string" }, "refundID": { "type": "string" }, "status": { "$ref": "#/components/schemas/RefundStatus" } } }, "WebhookDataRepresentativeCreated": { "type": "object", "required": [ "accountID", "representativeID" ], "properties": { "accountID": { "type": "string" }, "representativeID": { "type": "string" } } }, "WebhookDataRepresentativeDisabled": { "type": "object", "required": [ "accountID", "representativeID" ], "properties": { "accountID": { "type": "string" }, "representativeID": { "type": "string" } } }, "WebhookDataRepresentativeUpdated": { "type": "object", "required": [ "accountID", "representativeID" ], "properties": { "accountID": { "type": "string" }, "representativeID": { "type": "string" } } }, "WebhookDataSweepCreated": { "type": "object", "required": [ "walletID", "sweepID" ], "properties": { "walletID": { "type": "string" }, "sweepID": { "type": "string" } } }, "WebhookDataSweepUpdated": { "type": "object", "required": [ "walletID", "sweepID", "status" ], "properties": { "walletID": { "type": "string" }, "sweepID": { "type": "string" }, "transferID": { "type": "string" }, "status": { "$ref": "#/components/schemas/SweepStatus" } } }, "WebhookDataTerminalApplicationCreated": { "type": "object", "required": [ "terminalApplicationID", "status" ], "properties": { "terminalApplicationID": { "type": "string" }, "status": { "$ref": "#/components/schemas/TerminalApplicationStatus" } } }, "WebhookDataTerminalApplicationUpdated": { "type": "object", "required": [ "terminalApplicationID", "status" ], "properties": { "terminalApplicationID": { "type": "string" }, "status": { "$ref": "#/components/schemas/TerminalApplicationStatus" } } }, "WebhookDataTicketCreated": { "type": "object", "required": [ "accountID", "ticketID" ], "properties": { "accountID": { "type": "string" }, "ticketID": { "type": "string" }, "foreignID": { "type": "string" } } }, "WebhookDataTicketMessageAdded": { "type": "object", "required": [ "accountID", "ticketID" ], "properties": { "accountID": { "type": "string" }, "ticketID": { "type": "string" }, "foreignID": { "type": "string" } } }, "WebhookDataTicketUpdated": { "type": "object", "required": [ "accountID", "ticketID", "status" ], "properties": { "accountID": { "type": "string" }, "ticketID": { "type": "string" }, "foreignID": { "type": "string" }, "status": { "$ref": "#/components/schemas/TicketStatus" } } }, "WebhookDataTransferCreated": { "type": "object", "required": [ "accountID", "transferID", "status" ], "properties": { "accountID": { "type": "string", "description": "The accountID which facilitated the transfer." }, "transferID": { "type": "string" }, "status": { "$ref": "#/components/schemas/WebhookDataTransferStatus" }, "foreignID": { "type": "string" } } }, "WebhookDataTransferStatus": { "type": "string", "enum": [ "created", "pending", "completed", "failed", "reversed", "queued", "canceled", "source.completed", "source.corrected", "source.initiated", "source.returned", "source.originated", "source.confirmed", "source.settled", "source.failed", "source.canceled", "destination.completed", "destination.corrected", "destination.initiated", "destination.returned", "destination.originated", "destination.confirmed", "destination.failed", "destination.accepted-without-posting" ] }, "WebhookDataTransferUpdated": { "type": "object", "required": [ "accountID", "transferID", "status", "source", "destination" ], "properties": { "accountID": { "type": "string", "description": "The accountID which facilitated the transfer." }, "transferID": { "type": "string" }, "status": { "$ref": "#/components/schemas/WebhookDataTransferStatus" }, "source": { "$ref": "#/components/schemas/WebhookTransferPaymentMethodDetails" }, "destination": { "$ref": "#/components/schemas/WebhookTransferPaymentMethodDetails" }, "foreignID": { "type": "string" } } }, "WebhookDataWalletCreated": { "type": "object", "required": [ "accountID", "walletID" ], "properties": { "accountID": { "type": "string" }, "walletID": { "type": "string" } } }, "WebhookDataWalletTransactionUpdated": { "type": "object", "required": [ "accountID", "walletID", "transactionID", "status" ], "properties": { "accountID": { "type": "string" }, "walletID": { "type": "string" }, "transactionID": { "type": "string" }, "status": { "$ref": "#/components/schemas/WalletTransactionStatus" }, "availableBalance": { "$ref": "#/components/schemas/WalletAvailableBalance" } } }, "WebhookDataWalletUpdated": { "type": "object", "required": [ "accountID", "walletID", "status" ], "properties": { "accountID": { "type": "string" }, "walletID": { "type": "string" }, "status": { "$ref": "#/components/schemas/WalletStatus" } } }, "WebhookEvent": { "type": "object", "required": [ "eventID", "type", "data", "createdOn" ], "properties": { "eventID": { "type": "string", "description": "Unique identifier for the webhook event." }, "type": { "$ref": "#/components/schemas/WebhookEventType" }, "data": { "$ref": "#/components/schemas/WebhookData" }, "createdOn": { "type": "string", "format": "date-time" } }, "description": "Webhook events are sent to your webhook URL when certain actions occur in the Moov API. You can subscribe to these events to receive real-time notifications.", "x-speakeasy-include": true }, "WebhookEventType": { "type": "string", "enum": [ "*", "account.created", "account.updated", "account.disconnected", "balance.updated", "bankAccount.created", "bankAccount.updated", "bankAccount.deleted", "cancellation.created", "cancellation.updated", "card.autoUpdated", "capability.requested", "capability.updated", "dispute.created", "dispute.updated", "invoice.created", "invoice.updated", "networkID.updated", "paymentMethod.enabled", "paymentMethod.disabled", "refund.created", "refund.updated", "representative.created", "representative.updated", "representative.deleted", "sweep.created", "sweep.updated", "terminalApplication.created", "terminalApplication.updated", "ticket.created", "ticket.updated", "ticket.messageAdded", "transfer.created", "transfer.updated", "wallet.created", "wallet.updated", "walletTransaction.updated", "billingStatement.created" ], "description": "The type of event that occurred." }, "WebhookSecret": { "type": "object", "required": [ "secret" ], "properties": { "secret": { "type": "string", "description": "The secret key used to sign webhook payloads. Use this to verify the authenticity of incoming webhooks." } }, "description": "The secret used to verify webhook payloads." }, "WebhookStatus": { "type": "string", "enum": [ "enabled", "disabled" ], "description": "The status of a webhook." }, "WebhookTransferPaymentMethodDetails": { "type": "object", "required": [ "accountID", "paymentMethodID" ], "properties": { "accountID": { "type": "string" }, "paymentMethodID": { "type": "string" } }, "description": "Payment method details for the source or destination of a transfer." }, "WireInstitution": { "type": "object", "required": [ "name", "routingNumber", "services" ], "properties": { "name": { "type": "string", "description": "Name of the financial institution.", "example": "First Citizens" }, "routingNumber": { "type": "string", "maxLength": 9, "example": "123456789" }, "address": { "$ref": "#/components/schemas/Address" }, "services": { "$ref": "#/components/schemas/WireServices" } } }, "WireServices": { "type": "object", "required": [ "fundsTransferStatus", "fundsSettlementOnlyStatus", "bookEntrySecuritiesTransferStatus" ], "properties": { "fundsTransferStatus": { "type": "boolean", "description": "The institution's capability to process standard Fedwire funds transfers.", "example": true }, "fundsSettlementOnlyStatus": { "type": "boolean", "description": "The institution's capability for settlement-only transfers.", "example": false }, "bookEntrySecuritiesTransferStatus": { "type": "boolean", "description": "The institution's capability to handle transfers of securities.", "example": false } } }, "uuid": { "type": "string" } }, "securitySchemes": { "BasicAuth": { "type": "http", "scheme": "Basic" } } }, "servers": [ { "url": "https://api.moov.io", "description": "Production API host", "variables": {} } ], "x-speakeasy-globals": { "parameters": [ { "$ref": "#/components/parameters/VersionHeader" } ] } }