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. The Moov API makes it simple for platforms to send, receive, and store money. Our API is based upon REST principles, returns JSON responses, and uses standard HTTP response codes. To learn more about how Moov works 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 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchAccount' x-speakeasy-name-override: update 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 format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: walletID in: query required: false description: A wallet ID to filter adjustments by. schema: type: string format: 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: adjustmentID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Apple pay requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RegisterApplePayMerchantDomains' x-speakeasy-name-override: registerMerchantDomains 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 format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Apple pay requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateApplePayMerchantDomains' x-speakeasy-name-override: updateMerchantDomains 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Apple pay x-speakeasy-name-override: getMerchantDomains /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Apple pay requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateApplePaySession' x-speakeasy-name-override: createSession /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Apple pay requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LinkApplePay' x-speakeasy-name-override: linkToken /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. When this header is set to `payment-method`, the response will include any payment methods that were created for the newly linked 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LinkBankAccount' x-speakeasy-name-override: link 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts x-speakeasy-name-override: list /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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts x-speakeasy-name-override: get 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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts x-speakeasy-name-override: disable /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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts 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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CompleteMicroDeposits' /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 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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts x-speakeasy-name-override: getVerification 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 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\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. When 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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts x-speakeasy-name-override: initiateVerification 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 format: uuid - name: bankAccountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Bank accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CompleteBankAccountVerification' x-speakeasy-name-override: completeVerification /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Branding x-speakeasy-name-override: get patch: operationId: updateBrand description: "Updates the 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Branding requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateBrand' x-speakeasy-name-override: update /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Cards x-speakeasy-name-override: disable /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - $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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Disputes requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/CreateEvidenceFileMultiPart' 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid - name: evidenceID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid - name: evidenceID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid - name: evidenceID in: path required: true schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: disputeID in: path required: true schema: type: string format: uuid - name: evidenceID in: path required: true schema: type: string format: uuid responses: '200': description: The request has succeeded. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans 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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateFeePlanAgreement' /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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans /accounts/{accountID}/fees: get: operationId: retrieveFees description: "Retrieve 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 format: uuid - name: transferID in: query required: false description: Optional transfer ID to filter the results by. schema: type: string format: uuid explode: false - name: disputeID in: query required: false description: Optional dispute ID to filter the results by. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/ListFeesFetchRequest' /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Files requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/FileUploadRequestMultiPart' 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: fileID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Files x-speakeasy-name-override: get /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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Images requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/ImageUploadRequestMultiPart' 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 format: uuid - name: imageID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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, or send `null` to clear it. \nDuplicate images, and requests larger than 16MB will be rejected." parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: type: string format: uuid - name: imageID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Images requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/ImageUpdateRequestMultiPart' x-speakeasy-name-override: update delete: operationId: deleteImage description: Permanently delete an image by its ID. parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: type: string format: uuid - name: imageID in: path required: true schema: type: string format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: imageID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request has succeeded. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Accounts /accounts/{accountID}/partner-pricing: get: operationId: listPartnerPricing description: "List all partner pricing plans available for use by 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 format: uuid - name: planIDs in: query required: false description: A comma-separated list of plan IDs to filter the results by. schema: type: array items: 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 format: uuid content: application/json: schema: type: array items: $ref: '#/components/schemas/PartnerPricing' '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans /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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Fee plans /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 schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment links requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePaymentLink' x-speakeasy-name-override: create 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' - name: accountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment links x-speakeasy-name-override: list /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 schema: type: string format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment links x-speakeasy-name-override: get 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 schema: type: string format: uuid - 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment links requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePaymentLink' x-speakeasy-name-override: update 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 schema: type: string format: uuid - 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment links x-speakeasy-name-override: disable /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 schema: type: string format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment links x-speakeasy-name-override: getQRCode /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 format: uuid - 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment methods x-speakeasy-name-override: list /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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Payment methods x-speakeasy-name-override: get /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 format: uuid - $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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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. The 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 format: uuid - 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: representativeID in: path required: true description: ID of the representative. schema: type: string format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: representativeID in: path required: true description: ID of the representative. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: representativeID in: path required: true description: ID of the representative. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: residualID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: residualID in: path required: true schema: type: string format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: scheduleID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: scheduleID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: scheduleID in: path required: true schema: type: string format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Scheduling x-speakeasy-name-override: cancel /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 format: uuid - name: scheduleID in: path required: true schema: type: string format: uuid - name: occurrenceFilter in: path required: true description: |4- Allows the specification of additional filters beyond the UUID. Specifying a UUID string returns the exact occurrence. Specifying a RFC 3339 timestamp returns the latest occurrence at or before that timestamp. 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Scheduling x-speakeasy-name-override: getOccurrance /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Statements x-speakeasy-name-override: list /accounts/{accountID}/statements/{statementID}: get: operationId: getStatement description: |- Retrieve a statement by its ID. Use the `Accept` header to specify the format of the response. Supported formats are `application/json` and `application/pdf`. To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/profile.read` scope. parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: type: string format: uuid - name: statementID in: path required: true schema: type: string format: uuid responses: '200': description: The request has succeeded. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: ticketID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: ticketID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: ticketID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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: Prevents duplicate transfers from being created. schema: type: string format: uuid - 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: accountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: accountID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: transferID in: path required: true description: The transfer ID to cancel. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: transferID in: path required: true description: Identifier for the transfer. schema: type: string format: uuid - name: cancellationID in: path required: true description: Identifier for the cancellation. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid - name: transferID in: path required: true description: Identifier for the transfer. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: transferID in: path required: true description: Identifier for the transfer. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: accountID in: path required: true schema: type: string format: uuid - name: refundID in: path required: true description: Identifier for the refund. schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - name: accountID in: path required: true description: The Moov account ID. schema: type: string format: uuid - name: transferID in: path required: true description: The transfer ID to reverse. schema: type: string format: uuid responses: '200': description: Successfully initiated a reversal. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid - $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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Wallet transactions x-speakeasy-name-override: list /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 format: uuid - 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Wallet transactions x-speakeasy-name-override: get /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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - End to End Encryption requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/E2EEToken' x-speakeasy-name-override: testEncryptedToken /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 format: uuid 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 format: uuid tags: - End to End Encryption x-speakeasy-name-override: generateKey /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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Enriched address x-speakeasy-name-override: get /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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Enriched profile x-speakeasy-name-override: get /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). If either dimension is 0, the image will be scaled proportionally based on the non-zero dimension. Dimensions are capped at 2048 pixels. A default size of 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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. To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/), you'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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Industries x-speakeasy-name-override: list /institutions: get: operationId: searchInstitutions description: |- Search for financial institutions by name or routing number. This 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). This 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. To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Institutions /institutions/ach/search: get: operationId: listInstitutions description: "Search 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Institutions 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 format: uuid - $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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Issuing transactions x-speakeasy-name-override: listAuthorizations /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 format: uuid - name: authorizationID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Issuing transactions x-speakeasy-name-override: getAuthorization /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 format: uuid - name: authorizationID in: path required: true schema: type: string format: uuid - $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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Issuing transactions x-speakeasy-name-override: listAuthorizationEvents /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 format: uuid - $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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Issuing transactions x-speakeasy-name-override: list /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 format: uuid - name: cardTransactionID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Issuing transactions x-speakeasy-name-override: get /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 format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Card issuing requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RequestCard' x-speakeasy-name-override: request 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 format: uuid - $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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Card issuing x-speakeasy-name-override: list /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 format: uuid - name: issuedCardID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Card issuing x-speakeasy-name-override: get 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 format: uuid - name: issuedCardID in: path required: true schema: type: string format: uuid 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Card issuing requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateIssuedCard' x-speakeasy-name-override: update /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 format: uuid - name: issuedCardID in: path required: true schema: type: string format: uuid responses: '200': description: The request completed successfully. headers: x-request-id: required: true description: A unique identifier used to trace requests. schema: type: string format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Card issuing x-speakeasy-name-override: getFull /oauth2/revoke: post: operationId: revokeAccessToken description: |- Revoke an auth token. Allows 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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Authentication requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RevokeTokenRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RevokeTokenRequest' /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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Authentication requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthTokenRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AuthTokenRequest' /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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Onboarding requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OnboardingInviteRequest' x-speakeasy-name-override: createInvite 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Ping /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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Terminal Applications requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateTerminalApplication' x-speakeasy-name-override: create 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Terminal Applications x-speakeasy-name-override: list /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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Terminal Applications x-speakeasy-name-override: get 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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid tags: - Terminal Applications x-speakeasy-name-override: delete /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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid 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 format: uuid 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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid '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 format: uuid tags: - Accounts 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: |4- Filter connected accounts by email address. 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. If 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. If provided, this query will attempt to find matches against the following Account and Profile fields: Filtering by Guest Profile `name` is not currently supported. schema: type: string explode: false AccountsQuery.type: name: type in: query required: false description: |4- Filter connected accounts by AccountType. If the `type` parameter is used in combination with `name`, only the corresponding type's name fields will be searched. For example, if `type=business` and `name=moov`, the search will attempt to find matches against the display name and Business Profile name fields (`legalBusinessName`, and `doingBusinessAs`). 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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid 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 format: uuid 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 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 format: uuid 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 format: uuid 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 `latest` 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 - 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. 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. - R02: Account Closed - R03: No Account/Unable to Locate Account - R04: Invalid Account Number - R05: Improper Debit to Consumer Account - R07: Authorization Revoked by Customer - R08: Payment Stopped - R10: Customer Advises Originator is Not Known or Authorized to Receiver - R11: Customer Advises Entry Not in Accordance with the Terms of the Authorization - R12: Branch Sold to Another DFI - R13: RDFI not qualified to participate - R14: Representative payee deceased or unable to continue in that capacity - R15: Beneficiary or bank account holder - R16: Bank account frozen - R17: Entry with Invalid Account Number Initiated Under Questionable Circumstances - R20: Non-payment bank account - R23: Credit entry refused by receiver - R29: Corporate customer advises not authorized - R34: Limited participation RDFI - R38: Stop Payment on Source Document (Adjustment Entry) - R39: Improper Source Document ACHTransactionDetails: type: object required: - status - traceNumber 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' 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 format: uuid 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. 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 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 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 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 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 format: uuid walletID: type: string format: uuid 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. The string value should be deserialized as a JSON object before passing to Apple. example: '{"epochTimestamp":1733783167685,"expiresAt":1733786767685...}' 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 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 format: uuid 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 format: uuid 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 format: uuid fingerprint: type: string maxLength: 100 description: |- Once the bank account is linked, we don't reveal the full bank account number. The 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 call the List Payment Methods endpoint following a successful Create BankAccount request. **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' 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 - 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. A 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' BillableFee: type: object required: - feeModel - feeCategory properties: billableFeeID: type: string format: uuid 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. description: Represents a count of items and their 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. volumeCount: type: integer format: int64 description: The total number of transactions. feeAmount: allOf: - $ref: '#/components/schemas/AmountDecimal' description: The total fee amount. interchangeFees: allOf: - $ref: '#/components/schemas/BillingSummaryInterchange' description: A summary of interchange fees by card brand. description: A summary of card acquiring volume and fees. ach: allOf: - $ref: '#/components/schemas/BillingSummaryDetails' description: A summary of ACH volume and fees. instantPayments: allOf: - $ref: '#/components/schemas/BillingSummaryDetails' description: A summary of instant payment volume and fees. platformFees: allOf: - $ref: '#/components/schemas/AmountDecimal' description: The total amount of platform fees. adjustmentFees: allOf: - $ref: '#/components/schemas/AmountDecimal' description: The total amount of adjustment fees. otherFees: allOf: - $ref: '#/components/schemas/AmountDecimal' description: The total amount of other fees. total: allOf: - $ref: '#/components/schemas/AmountDecimal' description: The total amount of all fees. 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. volumeCount: type: integer format: int64 description: The total number of transactions. feeAmount: allOf: - $ref: '#/components/schemas/AmountDecimal' description: The total fee amount. description: Details of volume and fees for a specific payment method. 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 format: uuid 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. The `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. Examples 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. If 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. If 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 format: uuid cardAccountUpdater: $ref: '#/components/schemas/CardAccountUpdater' domesticPushToCard: $ref: '#/components/schemas/DomesticPushToCard' domesticPullFromCard: $ref: '#/components/schemas/DomesticPullFromCard' paymentMethods: type: array items: $ref: '#/components/schemas/BasicPaymentMethod' description: |4- Includes any payment methods created as a result of linking a card with the `x-wait-for` header set to `payment-method`. 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 format: uuid 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 format: uuid 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. description: A detailed breakdown of fees for a specific 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. For Apple Pay, the fingerprint is based on the tokenized card number and may vary based on the user's device. This field can be used to identify specific payment methods across multiple accounts on your platform. example: 9948962d92a1ce40c9f918cd9ece3a22bde62fb325a2f1fe2e833969de672ba3 CardID: type: string format: uuid 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. 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. CardTransactionDetails: type: object required: - status 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' 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 required: - file - evidenceType 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. The `Content-Type` header for this form part must be one of the following: - `image/jpeg` - `image/tiff` - `application/pdf` evidenceType: $ref: '#/components/schemas/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 format: uuid 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 format: uuid description: The partner's Moov account ID. merchantPaymentMethodID: type: string format: uuid description: The merchant's preferred payment method ID. Must be a wallet payment method. amount: $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/PaymentLinkLineItems' description: |- Request to create a new payment link. A payment link must include either `payment` or `payout` details, but not both. For payout payment links, `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement to a specific recipient. **Note:** The `payout` option is currently under development and is not yet available for general use. 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' 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/PaymentLinkLineItemsValidationError' 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. A 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 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/TransferLineItems' 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 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' CreateTransferDestinationCard: type: object properties: dynamicDescriptor: $ref: '#/components/schemas/CardDynamicDescriptor' 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 format: uuid description: |- A `transferID` is used to create a [transfer group](https://docs.moov.io/guides/money-movement/transfer-groups/), associating the new transfer with a parent transfer. paymentMethodID: type: string format: uuid 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' 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 CreatedTransfer: type: object required: - transferID - createdOn properties: transferID: type: string format: uuid 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 contacting 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 contacting 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 format: uuid merchantAccountID: type: string format: uuid 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 format: uuid disputeID: type: string format: uuid 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 format: uuid description: The disputed transfer's ID. Document: type: object required: - documentID - type - contentType - uploadedAt properties: documentID: type: string format: uuid 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 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 EvidenceTextResponse: type: object required: - evidenceID - disputeID - evidenceType - text - createdOn properties: evidenceID: type: string format: uuid disputeID: type: string format: uuid 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 EvidenceUploadResponse: type: object required: - evidenceID - disputeID - filename - mimeType - size - evidenceType - createdOn properties: evidenceID: type: string format: uuid description: The ID of the evidence. disputeID: type: string format: uuid 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. Only 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. Only 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 format: uuid 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 format: uuid planID: type: string format: uuid accountID: type: string format: uuid 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 format: uuid fileName: type: string maxLength: 64 example: logo.png accountID: type: string format: uuid 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 FileUploadRequestMultiPart: type: object required: - file - filePurpose properties: file: type: string format: binary description: The file to be added. Valid types are `csv`, `png`, `jpeg`, `pdf`. filePurpose: $ref: '#/components/schemas/FilePurpose' metadata: type: string format: json description: |- Additional metadata to be stored with the file, formatted as a JSON string. Valid keys are `representative_id`, `comment`, `requirement_id`, `error_code`. example: '{"requirement_id": "document.individual.verification"}' description: Request to upload a file for an account. 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 format: uuid 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 format: uuid cardID: type: string format: uuid disputeID: type: string format: uuid accountID: type: string format: uuid bankAccountID: type: string format: uuid 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. - `client_credentials`: A grant type used by clients to obtain an access token - `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. This 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. ImageMetadata: type: object required: - imageID - publicID - link - createdOn - updatedOn properties: imageID: type: string format: uuid 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 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' ImageUpdateRequestMultiPart: type: object required: - image properties: image: type: string format: binary metadata: type: object allOf: - $ref: '#/components/schemas/ImageMetadataRequest' nullable: true description: |- JSON-encoded metadata to update for the image. Omit this field if not updating metadata, or send `null` to clear existing metadata. description: Multipart request body for updating an image and/or its metadata. ImageUploadRequestMultiPart: type: object required: - image properties: image: type: string format: binary metadata: allOf: - $ref: '#/components/schemas/ImageMetadataRequest' description: Optional, json-encoded metadata to associate with the uploaded image. description: Multipart request body for uploading an image with optional metadata. IncurredFee: type: object properties: feeID: type: string format: uuid accountID: type: string format: uuid walletID: type: string format: uuid createdOn: type: string format: date-time feeName: type: string amount: $ref: '#/components/schemas/AmountDecimal' generatedBy: $ref: '#/components/schemas/GeneratedBy' feeGroup: type: string 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 - 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. 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 IssuedCard: type: object required: - issuedCardID - brand - lastFourCardNumber - expiration - authorizedUser - fundingWalletID - state - formFactor - createdOn properties: issuedCardID: type: string format: uuid 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 format: uuid issuedCardID: type: string format: uuid fundingWalletID: type: string format: uuid 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 format: uuid 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. - `active`: The card is operational and approves authorizations. Generally becomes active shortly after card creation. - `inactive`: The card cannot approve authorizations. This is currently a temporary state assigned post-creation during the activation process. - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires. - `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 format: uuid issuedCardID: type: string format: uuid fundingWalletID: type: string format: uuid amount: $ref: '#/components/schemas/SignedDecimalString' authorizationID: type: string format: uuid 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 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'. This field is required when `kty` is 'EC'. x: type: string description: |- The x coordinate for Elliptic Curve keys. This field is required when `kty` is 'EC'. 'y': type: string description: |- The y coordinate for Elliptic Curve keys. This field is required when `kty` is 'EC'. 'n': type: string description: |- The modulus value for RSA keys. This field is required when `kty` is 'RSA'. e: type: string description: |- The exponent value for RSA keys. This 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 format: uuid 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 format: uuid 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 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 format: uuid 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/RunTransfer' 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 format: uuid occurrenceID: type: string format: uuid 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 format: uuid 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 account. These values are used to determine what can be done with the account onboarded. example: - accounts.read capabilities: type: array items: $ref: '#/components/schemas/CapabilityID' minItems: 1 description: |4- List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this 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 format: uuid 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: |4- List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this account. These values are used to determine what can be done with the account onboarded. example: - accounts.read capabilities: type: array items: $ref: '#/components/schemas/CapabilityID' minItems: 1 description: |4- List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this 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 format: uuid 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 PartnerPricing: type: object required: - planID - name - revenueShare - cardAcquiringModel - billableFees - minimumCommitment - monthlyPlatformFee - createdAt properties: planID: type: string format: uuid name: type: string description: The name of the partner pricing plan. example: Fixed Rate Partner Plan description: type: string description: A description of the fee plan. 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' cardAcquiringModel: $ref: '#/components/schemas/CardAcquiringModel' billableFees: type: array items: $ref: '#/components/schemas/BillableFee' minimumCommitment: $ref: '#/components/schemas/MinimumCommitment' monthlyPlatformFee: $ref: '#/components/schemas/MonthlyPlatformFee' createdAt: type: string format: date-time 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. Each object can be patched independent of patching the other fields. PatchSweepConfig: type: object properties: status: allOf: - $ref: '#/components/schemas/SweepConfigStatus' nullable: true pushPaymentMethodID: type: object allOf: - $ref: '#/components/schemas/PaymentMethodID' nullable: true pullPaymentMethodID: type: object allOf: - $ref: '#/components/schemas/PaymentMethodID' nullable: true statementDescriptor: type: object 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' PaymentLink: type: object required: - code - mode - status - partnerAccountID - merchantAccountID - merchantPaymentMethodID - link - amount - uses - display - customer - createdOn - updatedOn properties: code: $ref: '#/components/schemas/PaymentLinkCode' mode: $ref: '#/components/schemas/Mode' status: $ref: '#/components/schemas/PaymentLinkStatus' partnerAccountID: type: string format: uuid description: The partner's Moov account ID. merchantAccountID: type: string format: uuid description: The merchant's Moov account ID. merchantPaymentMethodID: type: string format: uuid 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' 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 mode: sandbox status: active partnerAccountID: d290f1ee-6c54-4b01-90e6-d701748f0851 merchantAccountID: 34233b72-780c-4e0e-8b08-cbbe1bc878f8 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). productID: type: string format: uuid 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. 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. 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. PaymentLinkLineItemOptionValidationError: type: object properties: name: type: string group: type: string priceModifier: $ref: '#/components/schemas/AmountDecimalValidationError' quantity: type: string PaymentLinkLineItemValidationError: type: object properties: productID: type: string name: type: string basePrice: $ref: '#/components/schemas/AmountDecimalValidationError' options: type: object additionalProperties: $ref: '#/components/schemas/PaymentLinkLineItemOptionValidationError' quantity: type: string 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. When line items are provided, their total plus sales tax must equal the payment link amount. PaymentLinkLineItemsUpdate: type: object 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. When line items are provided, their total plus sales tax must equal the payment link amount. PaymentLinkLineItemsValidationError: type: object properties: items: type: object additionalProperties: $ref: '#/components/schemas/PaymentLinkLineItemValidationError' PaymentLinkListFilters: type: object 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' 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' 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' 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' PaymentLinkStatus: type: string enum: - active - used - disabled - expired PaymentMethod: 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 format: uuid 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 format: uuid fingerprint: type: string maxLength: 100 description: |- Once the bank account is linked, we don't reveal the full bank account number. The 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 format: uuid 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 format: uuid walletType: $ref: '#/components/schemas/WalletType' PayoutDetailsError: type: object properties: allowedMethods: type: string recipient: $ref: '#/components/schemas/PayoutRecipientError' PayoutRecipient: type: object properties: email: $ref: '#/components/schemas/Email' phone: $ref: '#/components/schemas/PhoneNumber' description: |- Specify the intended recipient of the payout. Either `email` or `phone` must be specified, but not both. This 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 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. 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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 product available for purchase, which may have optional configuration options. ProductID: type: string format: uuid description: Unique identifier for a product. ProductImageID: type: string format: uuid 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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. A 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. - Must be valid UTF-8 text - Supports Markdown for formatting - 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/AssignProductImagesItem' 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 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 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. - AC03: Account Invalid - AC04: Account Closed - AC06: Account Blocked - AC14: Creditor Account Type Invalid - AG01: Transactions Forbidden On Account - AG03: Transaction Type Not Supported - 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 required: - status 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. Either email or emailAccountID must be provided, but not both. emailAccountID: type: string format: uuid description: |- The accountID to send the receipt to. Either email or emailAccountID must be provided, but not both. forTransferID: type: string format: uuid description: |- The ID of the transfer associated with this receipt. Exactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided. forScheduleID: type: string format: uuid description: |- The ID of the schedule associated with this receipt. Exactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided. forOccurrenceID: type: string format: uuid description: |- The ID of the schedule occurrence associated with this receipt. Exactly 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 format: uuid description: Unique identifier for the receipt request. createdBy: type: string format: uuid 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. Either email or emailAccountID will be in the response, but not both. emailAccountID: type: string format: uuid description: |- The accountID the receipt is sent to. Either email or emailAccountID will be in the response, but not both. forTransferID: type: string format: uuid description: |- The ID of the transfer associated with this receipt. Exactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided. forScheduleID: type: string format: uuid description: |- The ID of the schedule associated with this receipt. Exactly one of forTransferID, forScheduleID, or forOccurrenceID must be provided. forOccurrenceID: type: string format: uuid description: |- The ID of the schedule occurrence associated with this receipt. Exactly 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/RunTransfer' 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. 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 format: uuid 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 business. 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 format: uuid 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 - moovShare - createdOn - updatedOn properties: residualID: type: string format: uuid partnerAccountID: type: string format: uuid periodStart: type: string format: date-time periodEnd: type: string format: date-time merchantFees: $ref: '#/components/schemas/AmountDecimal' partnerCost: $ref: '#/components/schemas/AmountDecimal' netIncome: $ref: '#/components/schemas/AmountDecimal' 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' residualAmount: $ref: '#/components/schemas/AmountDecimal' moovShare: $ref: '#/components/schemas/AmountDecimal' createdOn: type: string format: date-time updatedOn: type: string format: date-time 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 RunTransfer: type: object required: - amount - destination - partnerAccountID - source - description properties: amount: $ref: '#/components/schemas/Amount' destination: $ref: '#/components/schemas/SchedulePaymentMethod' partnerAccountID: type: string format: uuid example: c520f1b9-0ba7-42f5-b977-248cdbe41c69 source: $ref: '#/components/schemas/SchedulePaymentMethod' description: type: string description: Simple description to place on the transfer. description: Defines the attributes of a transfer. 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 format: uuid 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 format: uuid example: c520f1b9-0ba7-42f5-b977-248cdbe41c69 mode: $ref: '#/components/schemas/Mode' occurrences: type: array items: $ref: '#/components/schemas/OccurrencesResponse' ownerAccountID: type: string format: uuid example: c520f1b9-0ba7-42f5-b977-248cdbe41c69 partnerAccountID: type: string format: uuid example: c520f1b9-0ba7-42f5-b977-248cdbe41c69 recur: $ref: '#/components/schemas/Recur' scheduleID: type: string format: uuid example: c520f1b9-0ba7-42f5-b977-248cdbe41c69 sourceAccountID: type: string format: uuid 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 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 format: uuid description: Unique identifier for the receipt. idempotencyKey: type: string format: uuid 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. 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 format: uuid paymentMethodID: type: string format: uuid Statement: type: object required: - statementID - statementName - fileName - fileSize - billingPeriodStartDateTime - billingPeriodEndDateTime - subscriptionIDs - summary - createdOn - updatedOn properties: statementID: type: string format: uuid 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: allOf: - $ref: '#/components/schemas/BillingSummary' description: A summary of all fees included in this statement. cardAcquiringFees: allOf: - $ref: '#/components/schemas/CardAcquiringFees' description: A detailed breakdown of card acquiring fees. achFees: allOf: - $ref: '#/components/schemas/ACHFees' description: A detailed breakdown of ACH fees. instantPaymentFees: allOf: - $ref: '#/components/schemas/InstantPaymentFees' description: A detailed breakdown of instant payment fees. platformFees: allOf: - $ref: '#/components/schemas/PlatformFees' description: A detailed breakdown of platform fees. otherCardFees: allOf: - $ref: '#/components/schemas/OtherCardFees' description: A detailed breakdown of other card-related fees. 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 format: uuid 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 format: uuid 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. The 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 format: uuid 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 format: uuid 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: $ref: '#/components/schemas/TermsOfServiceToken' manual: $ref: '#/components/schemas/ManualTermsOfService' TermsOfServicePayloadUpdate: type: object properties: token: $ref: '#/components/schemas/TermsOfServiceTokenUpdate' 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 TermsOfServiceTokenUpdate: type: object 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 format: uuid 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 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/PaymentMethodType' account: $ref: '#/components/schemas/TransferAccount' bankAccount: $ref: '#/components/schemas/PaymentMethodsBankAccount' wallet: $ref: '#/components/schemas/PaymentMethodsWallet' card: $ref: '#/components/schemas/PaymentMethodsCard' achDetails: $ref: '#/components/schemas/ACHTransactionDetails' applePay: $ref: '#/components/schemas/ApplePayResponse' cardDetails: $ref: '#/components/schemas/CardTransactionDetails' rtpDetails: $ref: '#/components/schemas/RTPTransactionDetails' 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). productID: type: string format: uuid description: Optional unique identifier associating the line item with a product. description: Represents a single item in a transfer, including optional modifiers and quantity. 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. 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. TransferLineItemOptionValidationError: type: object properties: name: type: string group: type: string priceModifier: $ref: '#/components/schemas/AmountDecimalValidationError' quantity: type: string TransferLineItemValidationError: type: object properties: productID: type: string name: type: string basePrice: $ref: '#/components/schemas/AmountDecimalValidationError' options: type: object additionalProperties: $ref: '#/components/schemas/TransferLineItemOptionValidationError' quantity: type: string 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. When line items are provided, their total plus sales tax must equal the transfer amount. TransferLineItemsValidationError: type: object properties: items: type: object additionalProperties: $ref: '#/components/schemas/TransferLineItemValidationError' TransferOptions: type: object properties: sourceOptions: type: array items: $ref: '#/components/schemas/PaymentMethod' destinationOptions: type: array items: $ref: '#/components/schemas/PaymentMethod' TransferOptionsValidationError: type: object properties: amount: type: string source: type: string destination: type: string TransferParty: type: string enum: - source - destination - partner TransferSource: type: object required: - paymentMethodID - paymentMethodType - account properties: transferID: type: string format: uuid description: UUID present only if the transfer is part of a transfer group. paymentMethodID: type: string paymentMethodType: $ref: '#/components/schemas/PaymentMethodType' account: $ref: '#/components/schemas/TransferAccount' bankAccount: $ref: '#/components/schemas/PaymentMethodsBankAccount' wallet: $ref: '#/components/schemas/PaymentMethodsWallet' card: $ref: '#/components/schemas/PaymentMethodsCard' applePay: $ref: '#/components/schemas/ApplePayResponse' terminalCard: $ref: '#/components/schemas/TerminalCard' 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. 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/TransferLineItemsValidationError' 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 UpdateBrand: type: object properties: colors: $ref: '#/components/schemas/UpdateColors' 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' UpdateColor: type: object properties: accent: type: string UpdateColors: type: object properties: dark: $ref: '#/components/schemas/UpdateColor' light: $ref: '#/components/schemas/UpdateColor' 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/IssuedCardState' memo: type: string authorizedUser: $ref: '#/components/schemas/CreateAuthorizedUserUpdate' UpdateIssuedCardError: type: object properties: state: type: string memo: type: string authorizedUser: $ref: '#/components/schemas/CreateAuthorizedUserError' UpdatePaymentLink: type: object properties: amount: $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/PaymentLinkLineItemsUpdate' example: amount: currency: USD value: 12099 customer: requirePhone: true requireAddress: true UpdatePaymentLinkError: type: object properties: amount: $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/PaymentLinkLineItemsValidationError' UpdateRepresentative: type: object properties: name: $ref: '#/components/schemas/IndividualNameUpdate' phone: type: object allOf: - $ref: '#/components/schemas/PhoneNumber' nullable: true email: type: object 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' 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 - latest 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 `latest` 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 format: uuid 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 format: uuid WalletStatus: type: string enum: - active - closed description: |- Status of a wallet. - `active`: The wallet is available for use and has an enabled payment method. - `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 format: uuid 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 format: uuid 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 WalletType: type: string enum: - default - general description: |- Type of a wallet. - `default`: The system-generated wallet automatically created when an account is granted the wallet capability. - `general`: An additional, user-defined wallet created via API or Dashboard. WebhookBillingStatementCreated: type: object required: - statementID properties: statementID: type: string format: uuid 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/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 format: uuid foreignID: type: string format: uuid WebhookDataAccountDisconnected: type: object required: - accountID properties: accountID: type: string format: uuid foreignID: type: string format: uuid WebhookDataAccountUpdated: type: object required: - accountID properties: accountID: type: string format: uuid foreignID: type: string format: uuid WebhookDataBalanceUpdated: type: object required: - accountID - walletID properties: accountID: type: string format: uuid walletID: type: string format: uuid WebhookDataBankAccountCreated: type: object required: - bankAccountID - accountID properties: bankAccountID: type: string format: uuid accountID: type: string format: uuid WebhookDataBankAccountDeleted: type: object required: - bankAccountID - accountID properties: bankAccountID: type: string format: uuid accountID: type: string format: uuid WebhookDataBankAccountUpdated: type: object required: - bankAccountID - accountID - status - statusReason properties: bankAccountID: type: string format: uuid accountID: type: string format: uuid 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 format: uuid transferID: type: string format: uuid status: $ref: '#/components/schemas/CancellationStatus' WebhookDataCancellationUpdated: type: object required: - cancellationID - transferID - status properties: cancellationID: type: string format: uuid transferID: type: string format: uuid status: $ref: '#/components/schemas/CancellationStatus' WebhookDataCapabilityRequested: type: object required: - accountID - capabilityID properties: accountID: type: string format: uuid foreignID: type: string format: uuid capabilityID: $ref: '#/components/schemas/CapabilityID' WebhookDataCapabilityUpdated: type: object required: - accountID - capabilityID - status properties: accountID: type: string format: uuid foreignID: type: string format: uuid capabilityID: $ref: '#/components/schemas/CapabilityID' status: $ref: '#/components/schemas/CapabilityStatus' WebhookDataCardAutoUpdated: type: object required: - cardID - accountID - updateType properties: cardID: type: string format: uuid accountID: type: string format: uuid updateType: $ref: '#/components/schemas/CardUpdateReason' WebhookDataDisputeCreated: type: object required: - accountID - transferID - transactionID - disputeID - status - phase properties: accountID: type: string format: uuid transferID: type: string format: uuid transactionID: type: string format: uuid disputeID: type: string format: uuid status: $ref: '#/components/schemas/DisputeStatus' phase: $ref: '#/components/schemas/DisputePhase' WebhookDataDisputeUpdated: type: object required: - accountID - transferID - transactionID - disputeID - status - phase properties: accountID: type: string format: uuid transferID: type: string format: uuid transactionID: type: string format: uuid disputeID: type: string format: uuid status: $ref: '#/components/schemas/DisputeStatus' phase: $ref: '#/components/schemas/DisputePhase' WebhookDataNetworkIDUpdated: type: object required: - accountID properties: accountID: type: string format: uuid 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 format: uuid paymentMethodID: type: string format: uuid sourceID: type: string format: uuid WebhookDataPaymentMethodEnabled: type: object required: - accountID - paymentMethodID - sourceID properties: accountID: type: string format: uuid paymentMethodID: type: string format: uuid sourceID: type: string format: uuid WebhookDataRefundCreated: type: object required: - accountID - transferID - refundID properties: accountID: type: string format: uuid transferID: type: string format: uuid refundID: type: string format: uuid WebhookDataRefundUpdated: type: object required: - accountID - transferID - refundID - status properties: accountID: type: string format: uuid transferID: type: string format: uuid refundID: type: string format: uuid status: $ref: '#/components/schemas/RefundStatus' WebhookDataRepresentativeCreated: type: object required: - accountID - representativeID properties: accountID: type: string format: uuid representativeID: type: string format: uuid WebhookDataRepresentativeDisabled: type: object required: - accountID - representativeID properties: accountID: type: string format: uuid representativeID: type: string format: uuid WebhookDataRepresentativeUpdated: type: object required: - accountID - representativeID properties: accountID: type: string format: uuid representativeID: type: string format: uuid WebhookDataSweepCreated: type: object required: - walletID - sweepID properties: walletID: type: string format: uuid sweepID: type: string format: uuid WebhookDataSweepUpdated: type: object required: - walletID - sweepID - status properties: walletID: type: string format: uuid sweepID: type: string format: uuid transferID: type: string format: uuid status: $ref: '#/components/schemas/SweepStatus' WebhookDataTerminalApplicationCreated: type: object required: - terminalApplicationID - status properties: terminalApplicationID: type: string format: uuid status: $ref: '#/components/schemas/TerminalApplicationStatus' WebhookDataTerminalApplicationUpdated: type: object required: - terminalApplicationID - status properties: terminalApplicationID: type: string format: uuid status: $ref: '#/components/schemas/TerminalApplicationStatus' WebhookDataTicketCreated: type: object required: - accountID - ticketID properties: accountID: type: string format: uuid ticketID: type: string format: uuid foreignID: type: string WebhookDataTicketMessageAdded: type: object required: - accountID - ticketID properties: accountID: type: string format: uuid ticketID: type: string format: uuid foreignID: type: string WebhookDataTicketUpdated: type: object required: - accountID - ticketID - status properties: accountID: type: string format: uuid ticketID: type: string format: uuid foreignID: type: string status: $ref: '#/components/schemas/TicketStatus' WebhookDataTransferCreated: type: object required: - accountID - transferID - status properties: accountID: type: string format: uuid description: The accountID which facilitated the transfer. transferID: type: string format: uuid 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 format: uuid description: The accountID which facilitated the transfer. transferID: type: string format: uuid 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 format: uuid walletID: type: string format: uuid WebhookDataWalletTransactionUpdated: type: object required: - accountID - walletID - transactionID - status properties: accountID: type: string format: uuid walletID: type: string format: uuid transactionID: type: string format: uuid status: $ref: '#/components/schemas/WalletTransactionStatus' availableBalance: $ref: '#/components/schemas/WalletAvailableBalance' WebhookDataWalletUpdated: type: object required: - accountID - walletID - status properties: accountID: type: string format: uuid walletID: type: string format: uuid status: $ref: '#/components/schemas/WalletStatus' WebhookEvent: type: object required: - eventID - type - data - createdOn properties: eventID: type: string format: uuid 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 - 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. WebhookTransferPaymentMethodDetails: type: object required: - accountID - paymentMethodID properties: accountID: type: string format: uuid paymentMethodID: type: string format: uuid 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 format: uuid 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'