Narmi wires API

The wires API from Narmi — 3 operation(s) for wires.

OpenAPI Specification

narmi-wires-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Narmi Public account balances wires 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: wires
paths:
  /v1/wires/:
    get:
      operationId: wires_list
      description: "List the authenticated user's wire transactions. Accepts `account_uuid` as a query parameter, limiting results to those relevant to the specified account. User must have permission to read account information. \n\nAll 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.\n\n\n\n<i>How can we improve these docs?             <a href=\"mailto:docs+feedback@narmi.com\">Share your feedback.</a></i>"
      summary: List wire transactions.
      parameters:
      - in: query
        name: account_uuid
        schema:
          type: string
          format: uuid
        description: Optional account UUID used to filter wire transactions to those for the specified account.
      - 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:
      - wires
      security:
      - oauth2:
        - read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedWireList'
          description: ''
      x-stoplight:
        id: tw9fexrryj6lz
    post:
      operationId: wires_create
      description: 'Creates a new wire transaction. A confirmation email may be sent to members of the `from_account` if wire was submitted for processing (prerequisites such as dual approval were not required).


        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 a new wire transaction.
      tags:
      - wires
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WireCreateDocRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/WireCreateDocRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/WireCreateDocRequest'
        required: true
      security:
      - oauth2:
        - write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireCreateResponse'
          description: Wire transaction successfully created.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
          description: Bad request. Validation failed for the submitted wire data.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
          description: Unprocessable entity. Validation failed for the submitted wire data.
      x-stoplight:
        id: rgywdlzhhdldj
  /v1/wires/{uuid}/:
    get:
      operationId: wires_retrieve
      description: 'Retrieve details for a specific wire transaction by UUID.


        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: Retrieve a wire transaction
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-z-]+$
        required: true
      tags:
      - wires
      security:
      - oauth2:
        - read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wire'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: ''
      x-stoplight:
        id: 1tz6lxsf6nf61
  /v1/wires/fedwire_templates/:
    post:
      operationId: wires_fedwire_templates_create
      description: 'Send a wire using an existing wire template.


        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: Send a wire using a wire template
      tags:
      - wires
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WireTransactionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/WireTransactionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/WireTransactionRequest'
        required: true
      security:
      - oauth2:
        - write
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireTransaction'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
          description: ''
        '409':
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  message:
                    type: string
                example:
                  id: idempotency_key_used
                  message: Idempotency-Key is already used.
          description: ''
      x-stoplight:
        id: tzlyv4xykjd5p
components:
  schemas:
    Wire:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        processed_at:
          type: string
          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
          readOnly: true
        from_account:
          type: string
          format: uuid
          readOnly: true
        from_account_display:
          type: string
          readOnly: true
        to_account_number:
          type: string
          readOnly: true
        to_account_routing_number:
          type: string
          readOnly: true
        to_account_institution_name:
          type: string
          readOnly: true
        beneficiary_name:
          type: string
          readOnly: true
        beneficiary_address_1:
          type: string
          readOnly: true
        beneficiary_address_2:
          type: string
          readOnly: true
        beneficiary_address_3:
          type: string
          readOnly: true
        memo_1:
          type: string
          readOnly: true
        memo_2:
          type: string
          readOnly: true
        memo_3:
          type: string
          readOnly: true
        memo_4:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
        display_state:
          type: string
          readOnly: true
        template_name:
          type: string
          readOnly: true
        wire_reason:
          type: string
          readOnly: true
      x-stoplight:
        id: igunvqvoaorhw
    WireTransaction:
      type: object
      description: 'Currently, this serializer creates a WireTransaction based on an existing wire template, where the template

        prescribes every field (except a few optional fields that, if not provided, must be filled out by the wire sender).


        Most of the logic in this serializer is also relevant to the non-template wire sending flow, so in the near future, we should refactor

        the non-template wire sending flow to use this serializer, and handle the template-specific validation separately.'
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        processed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        from_account_display:
          example: Checking (******7890)
          description: The account name and masked account number.
          type: string
          readOnly: true
        display_state:
          example: Submitted
          description: The current human-readable state of the wire transaction.
          type: string
          readOnly: true
        to_account_institution_name:
          type: string
          readOnly: true
          example: LIVERMORE FALLS TR
          description: The abbreviated, capitalized name of the destination financial institution.
        from_account:
          type: string
          format: uuid
          readOnly: true
          description: The account from which the wire transaction was sent.
        to_account_number:
          type: string
          readOnly: true
          example: '123456'
          description: The account number of the recipient.
        to_account_routing_number:
          type: string
          readOnly: true
          example: 011201995
          description: The routing number of the recipient.
        beneficiary_name:
          type: string
          readOnly: true
          example: John Doe
          description: The name of the recipient.
        beneficiary_address_1:
          type: string
          readOnly: true
          example: 123 Main Street
          description: The first line of the recipient's address.
        beneficiary_address_2:
          type: string
          readOnly: true
          example: Apt 4B
          description: The second line of the recipient's address. Usually, this is the apartment, floor, or suite.
        beneficiary_address_3:
          type: string
          readOnly: true
          example: New York, NY 10017 US
          description: The third line of the recipient's address. Usually, this is the city, state, postal code and country code.
        memo_1:
          type: string
          readOnly: true
          example: The first memo line
          description: The first 35 characters of the memo used to create the wire transaction. If the memo is longer than 35 characters, the memo will be split into additional memo lines.
        memo_2:
          type: string
          readOnly: true
          example: The second memo line
          description: Characters 36-70 of the memo used to create the wire transaction.
        memo_3:
          type: string
          readOnly: true
          example: The third memo line
          description: Characters 71-105 of the memo used to create the wire transaction.
        memo_4:
          type: string
          readOnly: true
          example: The fourth memo line
          description: Characters 106-140 of the memo used to create the wire transaction.
        template_name:
          type: string
          readOnly: true
          nullable: true
          example: Construction
          description: The name of the template used to create the wire transaction.
        wire_reason:
          type: string
          nullable: true
          description: 'Choices are configurable via Institution Settings. Please refer to Institution Settings for the most current list of wire reason types. '
          example: Payment for a subscription service
        state:
          allOf:
          - $ref: '#/components/schemas/StateC02Enum'
          readOnly: true
        amount:
          example: 1
          maximum: 1000000000000000
          minimum: -1000000000000000
          description: A field that returns the original value in the currency's smallest unit (e.g. cents).
          type: integer
      x-stoplight:
        id: k58fwfxw4mkym
    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
    GeneralError:
      type: object
      properties:
        id:
          type: string
          default: invalid
        message:
          type: string
          description: An error response detailing the field and the nature of the error.
      required:
      - message
      x-stoplight:
        id: v76fz3qxj5djb
    PaginatedWireList:
      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
        wires:
          type: array
          items:
            $ref: '#/components/schemas/Wire'
      x-stoplight:
        id: 1gar1tw6thkwk
    WireTransactionRequest:
      type: object
      description: 'Currently, this serializer creates a WireTransaction based on an existing wire template, where the template

        prescribes every field (except a few optional fields that, if not provided, must be filled out by the wire sender).


        Most of the logic in this serializer is also relevant to the non-template wire sending flow, so in the near future, we should refactor

        the non-template wire sending flow to use this serializer, and handle the template-specific validation separately.'
      properties:
        wire_reason:
          type: string
          nullable: true
          description: 'Choices are configurable via Institution Settings. Please refer to Institution Settings for the most current list of wire reason types. '
          example: Payment for a subscription service
        fedwire_template:
          example: ccae3440-0c1f-45ce-9b91-57cbbb252818
          description: The UUID of the fedwire template to use for the wire transaction.
          type: string
          format: uuid
          writeOnly: true
        amount:
          example: 1
          maximum: 1000000000000000
          minimum: -1000000000000000
          description: A field that returns the original value in the currency's smallest unit (e.g. cents).
          type: integer
        memo:
          type: string
          writeOnly: true
          nullable: true
          description: Memo for the wire transaction. If not provided, the memo will be generated from the template's memo field.
          maxLength: 140
          example: 'Invoice #1234'
        version_id:
          type: string
          writeOnly: true
          minLength: 1
          description: The version ID of the template, based on when template or recipient details were last updated. This value is used to ensure that the template hasn't been updated since the user began drafting a wire using this template.
          example: e28e3b5e9076550cd276ba4d0ddbc93c52a273129238f107ed599edc0483d509
      required:
      - fedwire_template
      - version_id
      x-stoplight:
        id: 68tc9fitepbjn
    WireCreateDocRequest:
      type: object
      properties:
        from_account:
          type: string
          format: uuid
          title: From
        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
        to_account_routing_number:
          type: string
          minLength: 1
          maxLength: 9
        to_account_number:
          type: string
          minLength: 1
          maxLength: 34
        to_account_institution_name:
          type: string
          maxLength: 18
        beneficiary_name:
          type: string
          maxLength: 140
        beneficiary_address_1:
          type: string
          maxLength: 35
        beneficiary_address_2:
          type: string
          maxLength: 35
        beneficiary_address_3:
          type: string
          maxLength: 35
        memo_1:
          type: string
          minLength: 1
          maxLength: 35
        memo_2:
          type: string
          maxLength: 35
        memo_3:
          type: string
          maxLength: 35
        memo_4:
          type: string
          maxLength: 35
        state:
          type: string
          minLength: 1
        wire_reason:
          type: string
          nullable: true
          maxLength: 100
        device_id:
          type: string
          minLength: 1
        device_request_id:
          type: string
          minLength: 1
      required:
      - amount
      - from_account
      - memo_1
      - to_account_number
      - to_account_routing_number
      x-stoplight:
        id: xdw3obgyxcqyz
    WireCreateResponse:
      type: object
      properties:
        wires:
          type: array
          items:
            $ref: '#/components/schemas/Wire'
      required:
      - wires
      x-stoplight:
        id: mmf7ufl8ct7k7
    StateC02Enum:
      enum:
      - analyzing
      - pending
      - review
      - processing
      - processed
      - rejected
      - canceled
      - awaiting_approval
      - rejected_approval
      type: string
      description: '* `analyzing` - Analyzing

        * `pending` - Pending

        * `review` - Review

        * `processing` - Processing

        * `processed` - Processed (in transit)

        * `rejected` - Rejected by staff

        * `canceled` - Canceled

        * `awaiting_approval` - Awaiting dual approval

        * `rejected_approval` - Dual approval rejected'
      x-stoplight:
        id: qbox8yql7ah47
  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