Moov Transfers API

Money movement across ACH, RTP, push-to-card, and card acquiring.

Documentation

Specifications

Other Resources

OpenAPI Specification

moov-io-transfers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Moov Accounts Transfers API
  description: The Moov API lets software platforms accept, store, send, and spend money through a single REST API. It is organized around Moov accounts, funding sources (bank accounts, cards, wallets, payment methods), and money movement (transfers, refunds, disputes, sweeps, card issuing). The API is based on REST principles, returns JSON, and uses standard HTTP response codes. Requests are authenticated with an OAuth 2.0 access token (Bearer). Event notifications are delivered via webhooks (HTTPS POST with an HMAC SHA-512 signature); Moov does not expose a public WebSocket API. This document models a representative subset of the commercial hosted API at api.moov.io - the canonical, machine-generated OpenAPI spec is published by Moov (see externalDocs). Separately, Moov maintains open-source Go libraries for banking file formats at github.com/moov-io, which are not part of this API.
  version: v2026.04.00
  contact:
    name: Moov
    url: https://moov.io
  termsOfService: https://moov.io/legal/platform-agreement/
servers:
- url: https://api.moov.io
  description: Moov production
security:
- bearerAuth: []
tags:
- name: Transfers
  description: Money movement across ACH, RTP, push-to-card, and card acquiring.
paths:
  /accounts/{accountID}/transfers:
    parameters:
    - $ref: '#/components/parameters/accountID'
    post:
      operationId: createTransfer
      tags:
      - Transfers
      summary: Create a transfer.
      responses:
        '200':
          description: The created transfer.
    get:
      operationId: listTransfers
      tags:
      - Transfers
      summary: List transfers.
      responses:
        '200':
          description: A list of transfers.
  /accounts/{accountID}/transfers/{transferID}:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/transferID'
    get:
      operationId: getTransfer
      tags:
      - Transfers
      summary: Retrieve a transfer.
      responses:
        '200':
          description: The transfer.
    patch:
      operationId: updateTransferMetadata
      tags:
      - Transfers
      summary: Update transfer metadata.
      responses:
        '200':
          description: The updated transfer.
  /accounts/{accountID}/transfer-options:
    parameters:
    - $ref: '#/components/parameters/accountID'
    post:
      operationId: createTransferOptions
      tags:
      - Transfers
      summary: Retrieve available transfer options.
      responses:
        '200':
          description: The available transfer options.
  /accounts/{accountID}/transfer-config:
    parameters:
    - $ref: '#/components/parameters/accountID'
    post:
      operationId: createTransferConfig
      tags:
      - Transfers
      summary: Create transfer configuration.
      responses:
        '200':
          description: The created transfer configuration.
    get:
      operationId: getTransferConfig
      tags:
      - Transfers
      summary: Get transfer configuration.
      responses:
        '200':
          description: The transfer configuration.
    put:
      operationId: updateTransferConfig
      tags:
      - Transfers
      summary: Update transfer configuration.
      responses:
        '200':
          description: The updated transfer configuration.
  /accounts/{accountID}/transfers/{transferID}/cancellations:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/transferID'
    post:
      operationId: cancelTransfer
      tags:
      - Transfers
      summary: Cancel a transfer.
      responses:
        '200':
          description: The cancellation.
  /accounts/{accountID}/transfers/{transferID}/cancellations/{cancellationID}:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/transferID'
    - name: cancellationID
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getCancellation
      tags:
      - Transfers
      summary: Get cancellation details.
      responses:
        '200':
          description: The cancellation.
components:
  parameters:
    accountID:
      name: accountID
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: The Moov account identifier.
    transferID:
      name: transferID
      in: path
      required: true
      schema:
        type: string
        format: uuid
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 access token passed as a Bearer token.
externalDocs:
  description: Moov API reference and canonical OpenAPI spec
  url: https://docs.moov.io/api/