Narmi ach payments API
The ach payments API from Narmi — 5 operation(s) for ach payments.
The ach payments API from Narmi — 5 operation(s) for ach payments.
openapi: 3.0.3
info:
title: Narmi Public account balances ach payments 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 payments
paths:
/v1/ach_payments/:
get:
operationId: ach_payments_list
description: 'List the authenticated user''s ACH payments.
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 payments
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- ach payments
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedACHPaymentList'
description: ''
x-stoplight:
id: g3wzvoxt1a5sr
post:
operationId: ach_payments_create
description: 'Send an ACH Payment using an existing recipient and set of external account details (i.e. account number, routing number, account type, account purpose).
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 an ACH Payment
tags:
- ach payments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ACHPaymentRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ACHPaymentRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ACHPaymentRequest'
required: true
security:
- oauth2:
- write
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UnverifiedACHTransaction'
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: diestfplknve7
/v1/ach_payments/{uuid}/:
get:
operationId: ach_payments_retrieve
description: 'Fetch details for a specified ACH payment.
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 an ACH payment
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- ach payments
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ACHPayment'
description: ''
x-stoplight:
id: sdxmii9y4l28v
/v1/ach_payments/scheduled/:
get:
operationId: ach_payments_scheduled_list
description: 'List the authenticated user''s scheduled ACH payments.
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 scheduled ACH payments
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- ach payments
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedScheduledACHPaymentList'
description: ''
x-stoplight:
id: uzvhzweupgb3x
post:
operationId: ach_payments_scheduled_create
summary: Create a scheduled ACH payment
tags:
- ach payments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduledACHPaymentRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ScheduledACHPaymentRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ScheduledACHPaymentRequest'
required: true
security:
- oauth2:
- write
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduledACHPayment'
description: ''
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/GeneralError'
description: ''
description: '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>'
x-stoplight:
id: u9plmfzijc34g
/v1/ach_payments/scheduled/{uuid}/:
get:
operationId: ach_payments_scheduled_retrieve
summary: Retrieve a scheduled ACH payment
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- ach payments
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduledACHPayment'
description: ''
description: '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>'
x-stoplight:
id: jrosr0lbypcwm
delete:
operationId: ach_payments_scheduled_destroy
summary: Delete a scheduled ACH payment
parameters:
- in: path
name: uuid
schema:
type: string
required: true
tags:
- ach payments
security:
- oauth2:
- write
responses:
'204':
description: No response body
description: '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>'
x-stoplight:
id: t7hv3wakkoiwu
/v1/loan_payments/ach/:
post:
operationId: loan_payments_ach_create
description: 'Create an ACH payment from an external account to a loan.
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 loan payment
tags:
- ach payments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LoanPaymentACHRequest'
examples:
WRITE:
value:
state: active
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/LoanPaymentACHRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/LoanPaymentACHRequest'
required: true
security:
- oauth2:
- write
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/LoanPaymentACH'
description: ''
x-stoplight:
id: i0ryiy2vb06qt
components:
schemas:
ACHPayment:
type: object
properties:
id:
type: string
format: uuid
readOnly: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
processed_at:
type: string
format: date-time
readOnly: true
nullable: true
description: timestamp to avoid reprocessing this request
state:
allOf:
- $ref: '#/components/schemas/State40dEnum'
readOnly: true
display_state:
type: string
readOnly: true
company_id:
type: string
readOnly: true
description: A snapshot of the company_id sourced from the ACHCompany at the time the transaction is submitted. This field is persisted to the resulting ACH transaction instance.
maxLength: 10
minLength: 10
company_name:
type: string
readOnly: true
description: A snapshot of the company_name sourced from the ACHCompany at the time the transaction is submitted. This field is persisted to the resulting ACH transaction instance.
maxLength: 16
minLength: 1
amount:
example: 100
maximum: 1000000000000000
minimum: -1000000000000000
description: The amount of the ACH payment in cents.
type: integer
institution_account:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: The UUID of the originating account for the transaction.
type: string
format: uuid
description:
type: string
default: ''
description: Memo for the transaction. This is currently only used for internal record-keeping, and will not be not included in the resulting NACHA file entry.
maxLength: 128
external_account_details:
type: string
nullable: true
readOnly: true
description: 'The UUID of the external account details associated with the recipient. '
recipient:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: The UUID of the recipient of the transaction.
type: string
format: uuid
std_ent_cls_code:
allOf:
- $ref: '#/components/schemas/StdEntClsCodeEnum'
description: 'A three letter code that describes how a payment was authorized by the consumer or business receiving an ACH transaction. SEC stands for ''Standard Entry Class''. SEC codes are defined and maintained by NACHA, the governing body for the ACH network.
* `PPD` - Batch Personal
* `CCD` - Batch Corporate
* `ARC` - Batch Accounts Receivable
* `CTX` - Batch Corporate Exchange
* `POS` - Batch Point Of Sale
* `WEB` - Batch Internet Initiated
* `BOC` - Batch Backoffice Conversion
* `TEL` - Batch Telephone Initiated
* `MTE` - Batch Machine Transfer
* `SHR` - Batch Shared Network
* `CIE` - Batch Customer Initiated
* `POP` - Batch Point Of Purchase
* `RCK` - Batch Represented Check'
entry_desc:
type: string
description: A field that describes the purpose of the transaction to the receiver. It's used to help identify, monitor, and count payments for specific purposes.
memo:
type: string
default: ''
description: A field that adds a memo to the transaction. It's used to help identify transaction to the sender.
maxLength: 128
transaction_type:
allOf:
- $ref: '#/components/schemas/TransactionTypeEnum'
readOnly: true
description: 'Indicates whether the ACH transaction is a credit (push) or debit (pull).
* `debit` - Pull (debit)
* `credit` - Push (credit)'
required:
- amount
- entry_desc
- institution_account
- recipient
- std_ent_cls_code
x-stoplight:
id: bhxwwb7cteftj
State40dEnum:
enum:
- analyzing
- pending
- processing
- processed
- rejected
- review
- canceled
- canceled_by_user
- awaiting_approval
- rejected_approval
- approval_expired
- awaiting_bulk_approval
- rejected_bulk_approval
type: string
description: '* `analyzing` - Analyzing
* `pending` - Pending
* `processing` - Processing
* `processed` - Processed (in transit)
* `rejected` - Rejected by staff
* `review` - Review
* `canceled` - Canceled
* `canceled_by_user` - Canceled by user
* `awaiting_approval` - Awaiting dual approval
* `rejected_approval` - Dual approval rejected
* `approval_expired` - Dual approval expired
* `awaiting_bulk_approval` - Awaiting bulk approval
* `rejected_bulk_approval` - Rejected bulk approval'
x-stoplight:
id: ulhqntis74qyp
PaginatedScheduledACHPaymentList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/ScheduledACHPayment'
x-stoplight:
id: 43ond2osuzzsf
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
UnverifiedACHTransaction:
type: object
properties:
id:
type: string
format: uuid
readOnly: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
processed_at:
type: string
format: date-time
readOnly: true
nullable: true
description: timestamp to avoid reprocessing this request
state:
allOf:
- $ref: '#/components/schemas/State40dEnum'
readOnly: true
display_state:
type: string
readOnly: true
company_id:
type: string
readOnly: true
description: A snapshot of the company_id sourced from the ACHCompany at the time the transaction is submitted. This field is persisted to the resulting ACH transaction instance.
maxLength: 10
minLength: 10
company_name:
type: string
readOnly: true
description: A snapshot of the company_name sourced from the ACHCompany at the time the transaction is submitted. This field is persisted to the resulting ACH transaction instance.
maxLength: 16
minLength: 1
amount:
example: 100
maximum: 1000000000000000
minimum: -1000000000000000
description: The amount of the ACH payment in cents.
type: integer
institution_account:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: The UUID of the originating account for the transaction.
type: string
format: uuid
description:
type: string
default: ''
description: Memo for the transaction. This is currently only used for internal record-keeping, and will not be not included in the resulting NACHA file entry.
maxLength: 128
external_account_details:
type: string
nullable: true
readOnly: true
description: 'The UUID of the external account details associated with the recipient. '
recipient:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: The UUID of the recipient of the transaction.
type: string
format: uuid
std_ent_cls_code:
allOf:
- $ref: '#/components/schemas/StdEntClsCodeEnum'
description: 'A three letter code that describes how a payment was authorized by the consumer or business receiving an ACH transaction. SEC stands for ''Standard Entry Class''. SEC codes are defined and maintained by NACHA, the governing body for the ACH network.
* `PPD` - Batch Personal
* `CCD` - Batch Corporate
* `ARC` - Batch Accounts Receivable
* `CTX` - Batch Corporate Exchange
* `POS` - Batch Point Of Sale
* `WEB` - Batch Internet Initiated
* `BOC` - Batch Backoffice Conversion
* `TEL` - Batch Telephone Initiated
* `MTE` - Batch Machine Transfer
* `SHR` - Batch Shared Network
* `CIE` - Batch Customer Initiated
* `POP` - Batch Point Of Purchase
* `RCK` - Batch Represented Check'
entry_desc:
type: string
description: A field that describes the purpose of the transaction to the receiver. It's used to help identify, monitor, and count payments for specific purposes.
memo:
type: string
default: ''
description: A field that adds a memo to the transaction. It's used to help identify transaction to the sender.
maxLength: 128
transaction_type:
allOf:
- $ref: '#/components/schemas/TransactionTypeEnum'
description: 'Indicates whether the ACH transaction is a credit (push) or debit (pull).
* `debit` - Pull (debit)
* `credit` - Push (credit)'
required:
- amount
- entry_desc
- institution_account
- recipient
- std_ent_cls_code
- transaction_type
x-stoplight:
id: te2fnxskynbwg
StdEntClsCodeEnum:
enum:
- PPD
- CCD
- ARC
- CTX
- POS
- WEB
- BOC
- TEL
- MTE
- SHR
- CIE
- POP
- RCK
type: string
description: '* `PPD` - Batch Personal
* `CCD` - Batch Corporate
* `ARC` - Batch Accounts Receivable
* `CTX` - Batch Corporate Exchange
* `POS` - Batch Point Of Sale
* `WEB` - Batch Internet Initiated
* `BOC` - Batch Backoffice Conversion
* `TEL` - Batch Telephone Initiated
* `MTE` - Batch Machine Transfer
* `SHR` - Batch Shared Network
* `CIE` - Batch Customer Initiated
* `POP` - Batch Point Of Purchase
* `RCK` - Batch Represented Check'
x-stoplight:
id: xgdwqweqfvyee
LoanPaymentACH:
type: object
properties:
from_account:
type: string
format: uuid
to_account:
type: string
format: uuid
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
payment_type:
type: string
ach_transfer:
type: integer
memo:
type: string
device_id:
type: string
metadata:
type: object
additionalProperties: {}
required:
- amount
- from_account
- payment_type
- to_account
x-stoplight:
id: oswqsprazr4xt
LoanPaymentACHRequest:
type: object
properties:
from_account:
type: string
format: uuid
to_account:
type: string
format: uuid
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
payment_type:
type: string
minLength: 1
ach_transfer:
type: integer
memo:
type: string
device_id:
type: string
metadata:
type: object
additionalProperties: {}
required:
- amount
- from_account
- payment_type
- to_account
x-stoplight:
id: 1lkcyxejiw9vk
PaginatedACHPaymentList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/ACHPayment'
x-stoplight:
id: ershfqhclmswp
TransactionTypeEnum:
enum:
- debit
- credit
type: string
description: '* `debit` - Pull (debit)
* `credit` - Push (credit)'
x-stoplight:
id: acyeadla4mwfp
ACHPaymentRequest:
type: object
properties:
amount:
example: 100
maximum: 1000000000000000
minimum: -1000000000000000
description: The amount of the ACH payment in cents.
type: integer
institution_account:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: The UUID of the originating account for the transaction.
type: string
format: uuid
description:
type: string
default: ''
description: Memo for the transaction. This is currently only used for internal record-keeping, and will not be not included in the resulting NACHA file entry.
maxLength: 128
recipient:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: The UUID of the recipient of the transaction.
type: string
format: uuid
ach_company:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: 'DEPRECATED: The client submits the UUID of the ACHCompany to use for the transaction, and we map this instances fields into the company_id and company_name fields below. These values could presumably change, and we want to maintain a record of these values at the time the transaction is submitted. Note this field should not be used once the FI is configured to fetch the ACHCompany based from the institution_account''s originating organization.'
type: string
format: uuid
writeOnly: true
std_ent_cls_code:
allOf:
- $ref: '#/components/schemas/StdEntClsCodeEnum'
description: 'A three letter code that describes how a payment was authorized by the consumer or business receiving an ACH transaction. SEC stands for ''Standard Entry Class''. SEC codes are defined and maintained by NACHA, the governing body for the ACH network.
* `PPD` - Batch Personal
* `CCD` - Batch Corporate
* `ARC` - Batch Accounts Receivable
* `CTX` - Batch Corporate Exchange
* `POS` - Batch Point Of Sale
* `WEB` - Batch Internet Initiated
* `BOC` - Batch Backoffice Conversion
* `TEL` - Batch Telephone Initiated
* `MTE` - Batch Machine Transfer
* `SHR` - Batch Shared Network
* `CIE` - Batch Customer Initiated
* `POP` - Batch Point Of Purchase
* `RCK` - Batch Represented Check'
entry_desc:
type: string
minLength: 1
description: A field that describes the purpose of the transaction to the receiver. It's used to help identify, monitor, and count payments for specific purposes.
memo:
type: string
default: ''
description: A field that adds a memo to the transaction. It's used to help identify transaction to the sender.
maxLength: 128
device_id:
type: string
writeOnly: true
nullable: true
device_request_id:
type: string
writeOnly: true
nullable: true
required:
- amount
- entry_desc
- institution_account
- recipient
- std_ent_cls_code
x-stoplight:
id: ifjre5vpcvp53
ScheduledACHPaymentRequest:
type: object
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
device_id:
type: string
writeOnly: true
nullable: true
device_request_id:
type: string
writeOnly: true
nullable: true
memo:
type: string
default: ''
maxLength: 128
recurring_rule:
type: string
minLength: 1
institution_account:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: A field that represents the stringified UUID of a related object.
type: string
format: uuid
recipient:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: A field that represents the stringified UUID of a related object.
type: string
format: uuid
ach_company:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: A field that represents the stringified UUID of a related object.
type: string
format: uuid
writeOnly: true
std_ent_cls_code:
$ref: '#/components/schemas/StdEntClsCodeEnum'
entry_desc:
type: string
minLength: 1
description:
type: string
default: ''
required:
- amount
- entry_desc
- institution_account
- recipient
- recurring_rule
- std_ent_cls_code
x-stoplight:
id: squl1ig9cun3t
ScheduledACHPayment:
type: object
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
memo:
type: string
default: ''
maxLength: 128
recurring_rule:
type: string
id:
type: string
format: uuid
readOnly: true
institution_account:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: A field that represents the stringified UUID of a related object.
type: string
format: uuid
recipient:
example: ccae3440-0c1f-45ce-9b91-57cbbb252818
description: A field that represents the stringified UUID of a related object.
type: string
format: uuid
company_id:
type: string
readOnly: true
maxLength: 10
minLength: 10
company_name:
type: string
readOnly: true
maxLength: 16
minLength: 1
std_ent_cls_code:
$ref: '#/components/schemas/StdEntClsCodeEnum'
entry_desc:
type: string
description:
type: string
default: ''
next_transfer_at:
type: string
format: date-time
readOnly: true
dual_approval_state:
type: string
nullable: true
readOnly: true
display_state:
type: string
nullable: true
readOnly: true
completed_at:
type: string
format: date-time
readOnly: true
transaction_type:
allOf:
- $ref: '#/components/schemas/TransactionTypeEnum'
readOnly: true
description: 'Indicates whether the Scheduled ACH transaction is a credit (push) or debit (pull).
* `debit` - Pull (debit)
* `credit` - Push (credit)'
required:
- amount
- entry_desc
- institution_account
- recipient
- recurring_rule
- std_ent_cls_code
x-stoplight:
id: 9gkzfwvfok3wv
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