Afinis Initiate ACH Payment API

Afinis Interoperability Standards API for initiating an ACH credit or debit payment instruction from an originator through their financial institution. Part of the Afinis standardized payments API set stewarded by Nacha.

OpenAPI Specification

nacha-initiate-payment.json Raw ↑
{"swagger":"2.0","info":{"description":"Afinis is a diverse group of organizations working to support advancement and use of API standardization in the financial services industry. Utilization of this API requires a developer to [register](https://www.afinis.org/user/register) their application.","version":"1.0.7","title":"Initiate Payment API","contact":{"email":"info@afinis.org","url":"https://www.afinis.org"}},"host":"api.asig.org","basePath":"/v1","securityDefinitions":{"APIKeyQueryParam":{"type":"apiKey","in":"query","name":"apikey"}},"schemes":["https"],"consumes":["application/json"],"produces":["application/json"],"paths":{"/payments/ach/debit":{"post":{"operationId":"ACH Payments Debit","tags":["ACH Payments"],"summary":"Process ACH Debit Transactions","description":"Process ACH Debit Transactions","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"InitiatePayment","required":true,"description":"ACH details to process debit transactions","schema":{"type":"object","properties":{"paymentInformation":{"$ref":"#/definitions/paymentInformationDebit"}}}},{"name":"Request_Id","in":"header","required":false,"type":"string","format":"uuid","description":"Optional Request ID allows application developer to trace requests through the systems logs"}],"responses":{"200":{"description":"Payment transactions RCVD","schema":{"$ref":"#/definitions/initiatePaymentResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/error"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/error-401"}},"500":{"description":"Internal Server error","schema":{"$ref":"#/definitions/error-500"}}},"security":[{"APIKeyQueryParam":[]}]}},"/payments/ach/credit":{"post":{"operationId":"ACH Payments Credit","tags":["ACH Payments"],"summary":"Process ACH Credit Transactions","description":"Process ACH Credit Transactions","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"InitiatePayment","required":true,"description":"ACH details to process credit transactions","schema":{"type":"object","properties":{"paymentInformation":{"$ref":"#/definitions/paymentInformationCredit"}}}},{"name":"Request_Id","in":"header","required":false,"type":"string","format":"uuid","description":"Optional Request ID allows application developer to trace requests through the systems logs"}],"responses":{"200":{"description":"Payment transactions  RCVD","schema":{"$ref":"#/definitions/initiatePaymentResponse"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/error"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/error-401"}},"500":{"description":"Internal Server error","schema":{"$ref":"#/definitions/error-500"}}},"security":[{"APIKeyQueryParam":[]}]}}},"definitions":{"paymentIdentification":{"title":"PaymentIdentification","type":"object","required":["instructionIdentification"],"properties":{"instructionIdentification":{"description":"Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.","type":"string","example":"ABC0928","maxLength":11},"endToEndIdentification":{"description":"Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.","type":"string","example":"ABC13609-15-18","maxLength":22}}},"creditor":{"title":"Creditor","type":"object","description":"Party to which an amount of money is due.","required":["identification"],"properties":{"identification":{"description":"Identification assigned by an institution","type":"string","example":"1234567891","maxLength":10},"name":{"type":"string","example":"XYZ Supply Co.","maxLength":16}}},"debtor":{"title":"Debtor","type":"object","description":"Party that owes an amount of money to the (ultimate) creditor.","required":["identification"],"properties":{"identification":{"description":"Identification assigned by an institution","type":"string","example":"1234567891","maxLength":10},"name":{"type":"string","example":"Company ABC","maxLength":16}}},"creditorAccount":{"title":"CreditorAccount","type":"object","required":["identification"],"properties":{"identification":{"description":"Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.","type":"string","example":"2345678911","maxLength":17}}},"debtorAccount":{"title":"DebtorAccount","type":"object","required":["identification"],"properties":{"identification":{"description":"Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.","type":"string","example":"111010151","maxLength":17}}},"paymentInformationIdentification":{"title":"PaymentInformationIdentification","description":"Unique identification, as assigned by a sending party, to unambiguously identify the payment information group within the message.","type":"string","example":"1001ABCUSDO1_20181212"},"remittanceInformation":{"title":"RemittanceInformation","description":"Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.","type":"array","items":{"type":"object","properties":{"unstructured":{"$ref":"#/definitions/unstructured"}}}},"unstructured":{"title":"unstructured","description":"Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.","type":"array","items":{"type":"object","properties":{"lineNumber":{"type":"integer","example":1},"value":{"type":"string","example":"Addenda 1"}}}},"paymentInformationDebit":{"title":"PaymentInformationDebit","type":"object","required":["creditor","directDebitTransactionInformation"],"properties":{"paymentInformationIdentification":{"$ref":"#/definitions/paymentInformationIdentification"},"creditor":{"$ref":"#/definitions/creditor"},"creditorAccount":{"$ref":"#/definitions/creditorAccount"},"directDebitTransactionInformation":{"$ref":"#/definitions/directDebitTransactionInformation"}}},"paymentInformationCredit":{"title":"PaymentInformationCredit","type":"object","required":["debtor","creditTransferTransactionInformation"],"properties":{"paymentInformationIdentification":{"$ref":"#/definitions/paymentInformationIdentification"},"debtor":{"$ref":"#/definitions/debtor"},"debtorAccount":{"$ref":"#/definitions/debtorAccount"},"creditTransferTransactionInformation":{"$ref":"#/definitions/creditTransferTransactionInformation"}}},"categoryPurpose":{"title":"CategoryPurpose","description":"Specifies the high-level purpose of the instruction based on a set of pre-defined categories","type":"object","required":["proprietary"],"properties":{"proprietary":{"description":"Category purpose, in a proprietary form.","type":"string","example":"Payment","maxLength":10}}},"transactionDebtor":{"title":"TransactionDebtor","type":"object","required":["name"],"properties":{"name":{"type":"string","example":"John Q. Public","maxLength":22}}},"transactionCreditor":{"title":"TransactionCreditor","type":"object","required":["name"],"properties":{"name":{"type":"string","example":"John Smith","maxLength":22}}},"transactionDebtorAccount":{"title":"TransactionDebtorAccount","type":"object","required":["identification","type"],"properties":{"identification":{"description":"Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction","type":"string","example":"1111111122","maxLength":17},"type":{"type":"string","enum":[{"CACC":null,"description":"Current Account used to post debits and credits when no specific account has been nominated"},{"SCGS":null,"description":"Account used for savings"}],"example":"CACC"}}},"transactionCreditorAccount":{"title":"TransactionCreditorAccount","type":"object","required":["identification","type"],"properties":{"identification":{"description":"Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction","type":"string","example":"2345678911","maxLength":17},"type":{"type":"string","enum":[{"CACC":null,"description":"Current Account used to post debits and credits when no specific account has been nominated"},{"SCGS":null,"description":"Account used for savings"}],"example":"CACC"}}},"paymentTypeInformation":{"title":"PaymentTypeInformation","description":"Set of elements used to further specify the type of transaction.","type":"object","required":["localInstrument"],"properties":{"localInstrument":{"type":"string","example":"WEB","enum":[{"CCD":null},{"CTX":null},{"PPD":null},{"WEB":null},{"TEL":null},{"CIE":null}]},"sequenceType":{"type":"string","default":"OOFF","enum":[{"OOFF":null,"description":"Direct debit instruction where the debtor's authorization is used to initiate on single direct debt transaction."},{"RCUR":null,"description":"Direct debit transaction where the debtor authorization is used for regular direct debit transactions initiated by the creditor."}]},"categoryPurpose":{"$ref":"#/definitions/categoryPurpose"}}},"instructedAmount":{"title":"InstructedAmount","description":"Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.","type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","example":100.01,"maxLength":11},"currency":{"type":"string","example":"USD","default":"USD"}}},"settlementTimeIndication":{"title":"SettlementTimeIndication","description":"Provides information on the occurred settlement time(s) of the payment transaction.","type":"string","example":"2018-12-12T13:00:00"},"creditorAgent":{"title":"CreditorAgent","type":"object","description":"Financial institution servicing an account for the creditor.","required":["memberIdentification","clearingSystemIdentification"],"properties":{"clearingSystemIdentification":{"description":"Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed","type":"string","example":"USABA","enum":[{"CACPA":null,"description":"Bank Branch Code used in Canada."},{"USABA":null,"description":"Routing Transit number assigned by the ABA for US financial Institutions."}]},"memberIdentification":{"description":"Identification of a member of a clearing system  e.g., a U.S. transit routing number or Canadian Payments Association Routing Number","type":"string","minLength":9,"maxLength":9,"example":"061103852"}}},"debtorAgent":{"title":"DebtorAgent","type":"object","description":"Financial institution servicing an account for the debtor.","required":["clearingSystemIdentification","memberIdentification"],"properties":{"clearingSystemIdentification":{"description":"Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed","type":"string","example":"USABA","enum":[{"CACPA":null,"description":"Bank Branch Code used in Canada."},{"USABA":null,"description":"Routing Transit number assigned by the ABA for US financial Institutions."}]},"memberIdentification":{"description":"Identification of a member of a clearing system  e.g., a U.S. transit routing number or Canadian Payments Association Routing Number","type":"string","minLength":9,"maxLength":9,"example":"061103852"}}},"discretionaryData":{"title":"DiscretionaryData","type":"string","description":"Additional information.","example":"957abc","maxLength":20},"creditTransferTransactionInformation":{"title":"CreditTransferTransactionInformation","type":"array","required":["paymentIdentification","paymentTypeInformation","instructedAmount","requestedExecutionDate","creditor","creditorAccount","creditorAgent"],"items":{"type":"object","properties":{"paymentIdentification":{"$ref":"#/definitions/paymentIdentification"},"paymentTypeInformation":{"$ref":"#/definitions/paymentTypeInformation"},"discretionaryData":{"$ref":"#/definitions/discretionaryData"},"requestedExecutionDate":{"type":"string","example":"2018-12-12","maxLength":10},"settlementTimeIndication":{"$ref":"#/definitions/settlementTimeIndication"},"instructedAmount":{"$ref":"#/definitions/instructedAmount"},"creditorAgent":{"$ref":"#/definitions/creditorAgent"},"creditor":{"$ref":"#/definitions/transactionCreditor"},"creditorAccount":{"$ref":"#/definitions/transactionCreditorAccount"},"remittanceInformation":{"$ref":"#/definitions/remittanceInformation"}}}},"directDebitTransactionInformation":{"title":"DirectDebitTransactionInformation","type":"array","required":["paymentIdentification","paymentTypeInformation","instructedAmount","requestedCollectionDate","debtor","debtorAccount","debtorAgent"],"items":{"type":"object","properties":{"paymentIdentification":{"$ref":"#/definitions/paymentIdentification"},"paymentTypeInformation":{"$ref":"#/definitions/paymentTypeInformation"},"discretionaryData":{"$ref":"#/definitions/discretionaryData"},"requestedCollectionDate":{"type":"string","example":"2018-12-12"},"settlementTimeIndication":{"$ref":"#/definitions/settlementTimeIndication"},"instructedAmount":{"$ref":"#/definitions/instructedAmount"},"debtorAgent":{"$ref":"#/definitions/debtorAgent"},"debtor":{"$ref":"#/definitions/transactionDebtor"},"debtorAccount":{"$ref":"#/definitions/transactionDebtorAccount"},"remittanceInformation":{"$ref":"#/definitions/remittanceInformation"}}}},"initiatePaymentResponse":{"title":"InitiatePaymentResponse","type":"object","required":["transactionStatus","callback"],"properties":{"transactionStatus":{"description":"Payment initiation has been received by the receiving agent.","type":"string","example":"RCVD"},"callback":{"description":"Callback URL get transaction status.","type":"string"}}},"error":{"title":"Error","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/errorDetails"}}}},"errorDetails":{"title":"ErrorDetails","type":"object","properties":{"errorcode":{"description":"A programmatic error code","example":2000,"type":"string"},"message":{"description":"A human readable description of the problem","example":"Invalid JSON structure.","type":"string"}},"required":["errorcode","message"]},"error-401":{"title":"401 Error","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/errorDetails-401"}}}},"errorDetails-401":{"title":"401 ErrorDetails","type":"object","properties":{"errorcode":{"description":"A programmatic error code","example":1000,"type":"number"},"message":{"description":"A human readable description of the problem","example":"API key is missing, invalid or expired.","type":"string"}},"required":["errorcode","message"]},"error-500":{"title":"500 Error","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/errorDetails-500"}}}},"errorDetails-500":{"title":"500 ErrorDetails","type":"object","properties":{"errorcode":{"description":"A programmatic error code","example":3001,"type":"number"},"message":{"description":"A human readable description of the problem","example":"Internal Server error","type":"string"}},"required":["errorcode","message"]}}}