Narmi scheduled transfers API

The scheduled transfers API from Narmi — 1 operation(s) for scheduled transfers.

Business capability
Payment Initiation Management BC-1340.10

Operations 4

GET /v1/transfers/scheduled/ List scheduled transfers #
POST /v1/transfers/scheduled/ Create a scheduled transfer #
PUT /v1/transfers/scheduled/ Edit a scheduled transfer #
DELETE /v1/transfers/scheduled/ Delete scheduled transfer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/narmi-scheduled-transfers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

narmi-scheduled-transfers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Narmi Public scheduled transfers API
  version: v1
  description: To read about Public API access and authentication, go to API Overview.
  termsOfService: https://www.narmi.com/policies/developer-terms-conditions
  contact:
    name: Narmi Support
    email: support@narmi.com
servers:
- url: https://api.sandbox.narmi.dev/
  description: ''
tags:
- name: scheduled transfers
paths:
  /v1/transfers/scheduled/:
    get:
      operationId: transfers_scheduled_list
      description: 'List the authenticated user''s scheduled transfers.


        All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.


        How can we improve these docs? Share your feedback.'
      summary: List scheduled transfers
      parameters:
      - in: query
        name: is_expired
        schema:
          type: boolean
        description: When present, will filter results by either expired only, or unexpired only.
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: per_page
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - scheduled transfers
      security:
      - oauth2:
        - banking:scheduled_transfers:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedScheduledTransferList'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: ''
      x-stoplight:
        id: wnqwd2vuvsmeg
    post:
      operationId: transfers_scheduled_create
      description: 'Create a scheduled transfer for the authenticated user.


        All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.


        How can we improve these docs? Share your feedback.'
      summary: Create a scheduled transfer
      tags:
      - scheduled transfers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledTransferRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ScheduledTransferRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ScheduledTransferRequest'
        required: true
      security:
      - oauth2:
        - banking:scheduled_transfers:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NestedScheduledTransfer'
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                NotFoundError:
                  value:
                    id: not_found_error
                    message: The requested resource was not found.
          description: ''
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                InvalidPayload:
                  value:
                    id: invalid_request_error
                    message: Transfer amount is greater than account balance.
                  summary: Invalid Payload
          description: ''
      x-stoplight:
        id: edb7uvtg5ajmd
    put:
      operationId: transfers_scheduled_update
      description: 'Edit a scheduled transfer for the authenticated user.


        All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.


        How can we improve these docs? Share your feedback.'
      summary: Edit a scheduled transfer
      tags:
      - scheduled transfers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledTransferRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ScheduledTransferRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ScheduledTransferRequest'
        required: true
      security:
      - oauth2:
        - banking:scheduled_transfers:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NestedScheduledTransfer'
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                NotFoundError:
                  value:
                    id: not_found_error
                    message: The requested resource was not found.
          description: ''
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                InvalidPayload:
                  value:
                    id: invalid_request_error
                    message: Scheduled transfers with end dates cannot be edited. If you want to change this transfer, delete it and create a new one instead.
                  summary: Invalid Payload
          description: ''
      x-stoplight:
        id: tbggyxdmhikya
    delete:
      operationId: transfers_scheduled_destroy
      description: 'Delete a user''s scheduled transfer. Accepts a payload containing an identifier for the scheduled transfer,

        either a Narmi UUID or a core identifier.


        Example:

        ```http

        DELETE /v1/transfers/scheduled/ HTTP/1.1

        Host: api.example.com

        Content-Type: application/json


        {

        "id": "07231f46-23f1-482e-bdc4-35f2267b60e6"

        }


        ```


        All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.


        How can we improve these docs? Share your feedback.'
      summary: Delete scheduled transfer
      tags:
      - scheduled transfers
      security:
      - oauth2:
        - banking:scheduled_transfers:write
      responses:
        '200':
          description: No response body
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                NotFoundError:
                  value:
                    id: not_found_error
                    message: The requested resource was not found.
          description: ''
      x-stoplight:
        id: bvn3o9dxj90sz
components:
  schemas:
    PaginatedScheduledTransferList:
      type: object
      required:
      - meta
      - links
      properties:
        meta:
          description: Free-form object, contains total object count.
          type: object
          properties:
            total:
              type: integer
        links:
          type: object
          description: URIs linking to sequential pages of the result.
          properties:
            next:
              type:
              - string
              - 'null'
              format: uri
              example: http://api.example.org/accounts/?page=4
            prev:
              type:
              - string
              - 'null'
              format: uri
              example: http://api.example.org/accounts/?page=4
        scheduled_transfers:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledTransfer'
      x-stoplight:
        id: dahasasw0vcuq
    NestedScheduledTransfer:
      type: object
      properties:
        scheduled_transfers:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledTransfer'
      required:
      - scheduled_transfers
      x-stoplight:
        id: dsndbtq2zlgwc
    ScheduledTransferRequest:
      type: object
      description: 'Represents:

        indigo.models.recurring_transfer.AchTransfer,

        indigo.models.recurring_transfer.IntraInstitutionTransfer'
      properties:
        amount:
          example: 100
          maximum: 1000000000000000
          minimum: -1000000000000000
          description: A field that returns the original value in the currency's smallest unit (e.g. cents).
          type: integer
        from_account_id:
          type: string
          format: uuid
          description: UUID identifying the source account in the Narmi database.
        to_account_id:
          type: string
          format: uuid
          description: UUID identifying the destination account in the Narmi database.
        agreement:
          type: boolean
          writeOnly: true
          description: Whether or not the terms of the transfer were agreed to.
        device_id:
          type: string
          writeOnly: true
          minLength: 1
          description: Device 'fingerprint' from alloy/iovation.
        recurring_rule:
          type: string
          minLength: 1
          example: RRULE:FREQ=DAILY;COUNT=1
          description: Cadence of recurring event, as per the RFC-5545 specification.
        memo:
          type: string
          minLength: 1
          default: ''
          description: Free-form description of transfer.
        description:
          type: string
          minLength: 1
          default: ''
          description: Free-form description of transfer.
        ach_transfer:
          type: string
          format: uuid
          writeOnly: true
          description: Associated ACH Transfer used to evaluate transfer limits, and if they've been exceeded.
      required:
      - agreement
      - amount
      - from_account_id
      - recurring_rule
      - to_account_id
      x-stoplight:
        id: xtzufkz4xtogz
    ScheduledTransfer:
      type: object
      description: 'Represents:

        indigo.models.recurring_transfer.AchTransfer,

        indigo.models.recurring_transfer.IntraInstitutionTransfer'
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/ScheduledTransferStateEnum'
          readOnly: true
          description: 'Whether or not the scheduled transfer is expired.


            * `expired` - expired

            * `active` - active'
        created_at:
          type:
          - string
          - 'null'
          format: date-time
          readOnly: true
        amount:
          example: 100
          maximum: 1000000000000000
          minimum: -1000000000000000
          description: A field that returns the original value in the currency's smallest unit (e.g. cents).
          type: integer
        from_account_id:
          type: string
          format: uuid
          description: UUID identifying the source account in the Narmi database.
        to_account_id:
          type: string
          format: uuid
          description: UUID identifying the destination account in the Narmi database.
        next_transfer_at:
          type: string
          format: date-time
          readOnly: true
        recurring_rule:
          type: string
          example: RRULE:FREQ=DAILY;COUNT=1
          description: Cadence of recurring event, as per the RFC-5545 specification.
        memo:
          type: string
          default: ''
          description: Free-form description of transfer.
        description:
          type: string
          default: ''
          description: Free-form description of transfer.
      required:
      - amount
      - from_account_id
      - recurring_rule
      - to_account_id
      x-stoplight:
        id: tfuhvwk5p8fsx
    ScheduledTransferStateEnum:
      enum:
      - expired
      - active
      type: string
      description: '* `expired` - expired

        * `active` - active'
      x-stoplight:
        id: 3uyhod4xb85tf
    NotFoundError:
      type: object
      properties:
        id:
          type: string
          default: not_found
        message:
          type: string
          description: An error response detailing the nature of the error.
      required:
      - message
      x-stoplight:
        id: qazjpvfdteybw
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /v2/oauth/authorize/
          tokenUrl: /v2/oauth/token/
          scopes:
            banking:accounts:read: Can read account information.
            banking:transactions:read: Can read transaction information.
            banking:scheduled_transfers:read: Can read scheduled transfer information.
            banking:scheduled_transfers:write: Can create and update scheduled transfers.
            banking:accounts:write: Can update account information.
            banking:transactions:write: Can update transaction information.
            banking:users:read: Can read user profile information.
            banking:products:read: Can read product information.
            banking:documents:read: Can read user statements and documents.
x-stoplight:
  id: 68n444msv6n7x