Modules
Issue short-lived OAuth2 access tokens for client-side integrations
(Moov.js running in a browser). Call this from your server - never
expose your public/private key pair to a browser - and hand the
resulting access_token to the client.
Create and manage Moov accounts - the core entity representing your platform, or one of your platform's merchants/users.
Support for Apple Pay as a payment source: accepting it (apple-pay),
disbursing to it (push-to-apple-pay), and - for approved use cases -
pulling from it (pull-from-apple-pay). Linking a single token returns
every supported Apple Pay payment method at once.
Link and verify bank accounts. Verification can happen via instant
micro-deposits, or via Plaid Link / MX (verify/initiate_verification).
Linking a bank account automatically creates payment methods for every
rail it's eligible for (ACH debit/credit, RTP/instant, wire, etc).
Fee plans, fee plan agreements, statements, and per-account fees.
Light/dark-mode brand colors used across Moov-hosted UIs - onboarding forms, payment links, hosted receipts, etc.
Request and manage the capabilities
an account needs - e.g. "transfers", "wallet", "send-funds",
"collect-funds", "card-issuing".
Issue spending cards tied to a Moov wallet, and inspect authorizations and settled card transactions against them.
Link and manage cards as payment sources.
Converts map keys between the snake_case Elixir developers expect and the
camelCase JSON Moov's API speaks.
Builds and sends requests to the Moov API.
Resolves default configuration for Moov.Client.new/1 from application
environment, with sane fallbacks.
Manage card disputes - Visa RDR (Rapid Dispute Resolution) pre-disputes and chargebacks from any card network. Moov communicates with the networks directly and surfaces the details and deadlines here.
End-to-end encryption support: fetch a public key to encrypt sensitive payloads (e.g. raw card/bank account numbers) client-side before they ever reach your server.
"Form shortening" lookups that autofill form fields from publicly available data, so your users have fewer fields to type (and fewer typos to make).
The error struct returned in the {:error, error} tuple from every
Moov.* function, and the exception raised by !-suffixed variants.
Upload and list supporting documents for KYC/underwriting (e.g. a photo ID, a bank statement, a W-9).
Support for Google Pay as a payment source.
Upload and manage an account's image library (used for product catalog and line-item visuals). Up to 16 MB, PNG/JPG/WebP, no duplicates.
Look up financial institutions and validate routing numbers, including which rails (ACH, RTP, wire) a given institution supports.
Create and manage invoices. Added in API version v2026.04.00.
Hosted, co-branded onboarding forms you can send merchants instead of building your own UI.
Residuals, fee revenue, and pricing agreements for partner accounts
(platforms/SaaS/marketplaces). account_id here must be your partner
account ID, found under Dashboard -> Settings - not a regular merchant
account ID.
No-code, shareable links (and QR codes) for accepting or sending money via card, bank account, or wallet - shareable over email, SMS, or social.
A read-only, unified view of every payment method an account has - derived automatically from its linked bank accounts, cards, wallets, Apple Pay/Google Pay tokens, etc.
An account's product catalog - title, base price, description, image, and price-modifying options. Maps onto line items in transfers and payment links.
Branded receipts (using an account's Moov.Branding) sent when a
transfer is initiated/confirmed, refunded, or fails.
Refund or cancel card transfers.
Manage the controllers and owners of a business account, required for KYB on LLCs, partnerships, and private corporations.
Temporary, secure links you can send merchants to resolve outstanding
requirements (additional KYC info, document uploads) after their initial
onboarding. Added in API version v2026.04.00.
A small, dependency-free retry-with-backoff helper.
Recurring or future-dated transfers.
Create and track support tickets for your connected accounts - Moov responds directly to the merchant, and you can see the thread.
Automate settlement of a wallet's balance to a linked bank account (or pull funds in to cover fees/chargebacks).
Telemetry events emitted by this library, via the
:telemetry library (a transitive
dependency of Req, so nothing extra to install).
Register and manage terminal applications, required for Tap to Pay on iPhone/Android.
Move money between two payment methods. This is the core primitive everything else in money movement (sweeps, refunds, schedules, payment links, invoices) is built on top of.
A tiny, dependency-free UUID v4 generator.
Submit underwriting details for a business account - e.g. average transaction size, expected annual revenue/card volume, and whether the business is a money services business.
Moov's internal stored-balance ledger. Every account with the "wallet"
capability gets a "default" wallet automatically; create additional
"general" wallets to segment funds (e.g. one wallet per sub-program).
Verifies that an incoming webhook request really came from Moov, and
parses its payload into a Moov.Webhook.Event.
A parsed webhook event.