canonical: https://jentic.com/apis/moov.io/moov

# Moov API

Jentic publishes the only available OpenAPI specification for Moov API, keeping it validated and agent-ready. Moov is a US payments platform that lets companies onboard accounts, link bank accounts and cards, move money between them, and handle refunds and disputes through a single API. The 12 endpoints in this build cover account creation and lookup, bank account linkage, transfer creation and listing, refund creation, and the broader resources (sources, cards, payment links, disputes, enrichment) the platform supports. Authentication is a bearer token.

## For AI agents

Onboard accounts, link bank accounts and cards, move money via transfers, and process refunds through the Moov payments platform.

## Scope

Does not handle international remittance, KYC document collection, or payroll filings - use Moov for US accounts, ACH transfers, refunds, and embedded money movement only.

## Capabilities

- Create and update Moov accounts representing the businesses or individuals you transact with
- Link external bank accounts to a Moov account so it can send or receive ACH transfers
- Create transfers between Moov accounts and read the resulting transfer state
- Issue refunds against a previously completed transfer to return funds to the originating account
- List all transfers on an account for reconciliation and customer support
- Update account profile data through PATCH `/accounts/{accountID}` as KYC details change

## Use cases

### Marketplace Payouts to Sellers

A marketplace creates a Moov account per seller, links each seller's bank account, and uses transfers to settle the seller's earnings on a recurring schedule. Each transfer has a unique id that the marketplace stores against its order ledger so reconciliation, refunds, and disputes can be traced back to specific orders.

Example prompt: Create a Moov transfer of 250 USD from the marketplace account acc_marketplace to seller account acc_seller_42 and confirm the transfer reached COMPLETED.

### Embedded Wallet Money Movement

A SaaS app gives each customer an embedded wallet backed by a Moov account, lets them link a bank account through Moov, and uses transfers to credit and debit balances. The same primitives back features like topping up a balance, paying out earnings, and refunding a charge.

Example prompt: Add a bank account to Moov account acc_77 with the supplied routing and account numbers and confirm the bank account is linked.

### Refund and Dispute Operations

Customer support tools call POST `/accounts/{accountID}/refunds` with the original transfer id when a customer requests their money back. Combined with dispute and transfer-list endpoints, support staff can see the full lifecycle of a payment from origination to refund or dispute resolution.

Example prompt: Refund Moov transfer transfer_123 in full from account acc_42 and confirm the refund was created.

### AI Agent Money Movement Tooling

An operations agent uses Jentic to discover Moov account, transfer, and refund endpoints and runs them with vault-stored bearer tokens. Because Moov does not publish a public OpenAPI spec under this URL, Jentic's spec is the only structured way to drive the API from agent tooling without scraping the developer portal.

Example prompt: Search Jentic for 'create a Moov transfer', load the schema for POST `/accounts/{accountID}/transfers`, and execute a 10 USD transfer in the sandbox.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/accounts` | Create a Moov account |
| GET | `/accounts` | List accounts |
| GET | `/accounts/{accountID}` | Get account details |
| PATCH | `/accounts/{accountID}` | Update an account |
| POST | `/accounts/{accountID}/bank-accounts` | Link a bank account |
| POST | `/accounts/{accountID}/transfers` | Create a transfer |
| GET | `/accounts/{accountID}/transfers/{transferID}` | Get transfer details |
| POST | `/accounts/{accountID}/refunds` | Create a refund |

## Key resources

- **Accounts** — Business and individual accounts that can hold balances and link funding sources
- **Bank Accounts** — External bank accounts linked to a Moov account for ACH
- **Transfers** — Money movement between Moov accounts with full lifecycle
- **Refunds** — Reversals against completed transfers
- **Sources, Cards, Payment Links, Disputes, Enrichment** — Broader Moov resources surfaced by the platform

## Why Jentic

- **Setup:** Wiring Moov by hand means handling its bearer auth, threading the accountID through every money-movement call, and tracking transfer and refund ids across accounts. Through Jentic you install once, import the Moov API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Moov puts the account id in the URL path (`/accounts/{accountID}/...`), so a rule can pin your agent to one account: it can read that account and its transfers and nothing else. You choose the operations it may call, so money movement like creating a transfer or a refund is not included unless you add it.
- **Credential handling:** Your Moov bearer token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'move money between Moov accounts' or 'look up a transfer', and Jentic returns the matching Moov operation with its input schema, including the accountID and transferID parameters, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Stripe API** — Global payments platform with broader card acceptance and Connect-style marketplace flows
- **Plaid API** — Verify bank accounts and pull balances before linking them to Moov
- **Square API** — US payments platform with strong in-person and online card acquiring
- **Braintree API** — PayPal-owned gateway with strong wallet and card support

## FAQ

### Why is there no official OpenAPI spec for Moov API?

Moov does not publish an OpenAPI specification at this version. Jentic generates and maintains this spec so that AI agents and developers can call Moov API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Moov API use?

Moov uses bearer token authentication. Tokens are obtained from Moov's authentication flow and included as Authorization: Bearer on each request. Through Jentic the token is stored in the credential vault and applied at execution time.

### Can I move money between Moov accounts with this API?

Yes. Call POST `/accounts/{accountID}/transfers` with the source, destination, and amount to create a transfer. Read GET `/accounts/{accountID}/transfers/{transferID}` or list transfers to monitor state and reconcile against your own ledger.

### What are the rate limits for the Moov API?

Moov enforces per-account rate limits that vary by environment and are not declared in the spec. Treat HTTP 429 as a back-off signal and retry with exponential delay; for bulk operations stagger calls rather than firing them in parallel.

### How do I issue a refund through Jentic?

Search Jentic for 'refund a Moov transfer', load the schema for POST `/accounts/{accountID}/refunds`, and execute it with the originating account id and the transfer id to refund. Jentic injects the bearer token automatically.

### Can I link a bank account to a Moov account programmatically?

Yes. POST `/accounts/{accountID}/bank-accounts` accepts the routing and account number for the external bank, and the linked bank account becomes available as a source or destination for ACH transfers from that Moov account.

### Can I limit what my agent is allowed to do with the Moov API?

Yes. Jentic One is self-hosted, so your own rules decide which Moov operations and credentials your agent may use. Because Moov puts the account id in the URL path (`/accounts/{accountID}/...`), a rule can pin the agent to a single account and let it only read that account and its transfers. You choose the operations it may call, so money movement like creating a transfer via POST `/accounts/{accountID}/transfers` or a refund via POST `/accounts/{accountID}/refunds` is not available to the agent unless you add it.
