Narmi ach transfers API

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

OpenAPI Specification

narmi-ach-transfers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Narmi Public account balances ach transfers API
  version: v1
  description: To read about Public API access and authentication, go to [API Overview](https://docs.narmi.com/docs/narmi-developer-docs/xl9dvbz84o11l-introduction).
  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: ach transfers
paths:
  /v1/transfers/:
    get:
      operationId: ach_transfers_list
      description: 'List the authenticated user''s ACH transfers. Transfers are movements of funds between two internal accounts or two verified external accounts.


        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.




        <i>How can we improve these docs?             <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
      summary: List ACH transfers
      parameters:
      - in: query
        name: filter
        schema:
          type: string
          enum:
          - recent
      - 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:
      - ach transfers
      security:
      - oauth2:
        - read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAchTransactionList'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: ''
      x-stoplight:
        id: xcwht1ibghxha
    post:
      operationId: ach_transfers_create
      description: 'Transfer funds between two accounts. The target accounts should be either an account at the financial institution belonging to the user or a verified external account.


        A list of eligible accounts can be retrieved or listed from the accounts endpoints.


        If the `instant` flag is provided for a push external transfer, processing will be done via FedNow and core posting will be immediate, otherwise all external transfers are processed via ACH by default.


        Additionally, this endpoint requires the use of sudo elevation. For details, please refer to the <a href="#/operations/retrieve_sudo">sudo documentation.</a>




        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.




        <i>How can we improve these docs?             <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
      summary: Create an ACH transfer
      tags:
      - ach transfers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AchTransactionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AchTransactionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AchTransactionRequest'
        required: true
      security:
      - oauth2:
        - write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveAchTransaction'
          description: ''
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                PermissionDenied:
                  value:
                    id: api_error
                    message: Your account does not support internal transfers.
          description: ''
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: object
                    properties:
                      amount:
                        type: string
              examples:
                InvalidPayload:
                  value:
                    id: invalid_request_error
                    message:
                      amount: This field is required.
                  summary: Invalid Payload
          description: ''
        '503':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
              examples:
                CoreInactive:
                  value:
                    id: api_connection_error
                    message: Sorry, we were unable to process your request, please check back soon.
                  summary: Core Inactive
          description: ''
      x-stoplight:
        id: jvxrdrcdpbqdw
components:
  schemas:
    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
    PaginatedAchTransactionList:
      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
              format: uri
              nullable: true
              example: http://api.example.org/accounts/?page=4
            prev:
              type: string
              format: uri
              nullable: true
              example: http://api.example.org/accounts/?page=4
        transfers:
          type: array
          items:
            $ref: '#/components/schemas/AchTransaction'
      x-stoplight:
        id: fihijvn8nxqxd
    AchTransactionRequest:
      type: object
      description: Common fields between `ScheduledTransferSerializer`, and AchTransactionSerializer
      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.
        instant:
          type: boolean
          writeOnly: true
          default: false
        memo:
          type: string
          writeOnly: true
          minLength: 1
          default: ''
          description: Free-form description of transfer.
      required:
      - agreement
      - amount
      - from_account_id
      - to_account_id
      x-stoplight:
        id: qqfawl4moqr7y
    RetrieveAchTransaction:
      type: object
      properties:
        transfer:
          allOf:
          - $ref: '#/components/schemas/AchTransaction'
          readOnly: true
      x-stoplight:
        id: ynzdqhihwwxkd
    AchTransactionStateEnum:
      enum:
      - analyzing
      - pending
      - processing
      - processed
      - rejected
      - review
      - canceled
      - canceled_by_user
      type: string
      description: '* `analyzing` - analyzing

        * `pending` - pending

        * `processing` - processing

        * `processed` - processed

        * `rejected` - rejected

        * `review` - review

        * `canceled` - canceled

        * `canceled_by_user` - canceled_by_user'
      x-stoplight:
        id: z6genr1ouwuth
    AchTransaction:
      type: object
      description: Common fields between `ScheduledTransferSerializer`, and AchTransactionSerializer
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/AchTransactionStateEnum'
          readOnly: true
          description: 'Indicates the status of the transfer, for instance, if it''s been processed or is pending.


            * `analyzing` - analyzing

            * `pending` - pending

            * `processing` - processing

            * `processed` - processed

            * `rejected` - rejected

            * `review` - review

            * `canceled` - canceled

            * `canceled_by_user` - canceled_by_user'
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: 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.
        estimated_process_date:
          type: string
          format: date-time
          readOnly: true
        estimated_arrival_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - amount
      - from_account_id
      - to_account_id
      x-stoplight:
        id: h4yj1x7pldwi9
  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