Afinis Account Validation Plus Name Plus Return API

Afinis Account Validation combined with name verification and ACH return-history signals in a single standardized message.

OpenAPI Specification

nacha-account-validation-plus-name-ret.json Raw ↑
{"swagger":"2.0","info":{"version":"1.0.4","title":"AV + Name + Return","description":""},"basePath":"/accounts/v1","securityDefinitions":{"APIKeyQueryParam":{"type":"apiKey","in":"query","name":"apikey"}},"schemes":["https"],"consumes":["application/json"],"produces":["application/json"],"paths":{"/validatewithnameandret":{"post":{"summary":"","tags":["Accounts"],"operationId":"validateAccountWithNameAndRET","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"apiVersion","in":"header","required":false,"type":"string","format":"string"},{"name":"Request_Id","in":"header","required":false,"type":"string","format":"uuid","description":""},{"in":"body","name":"Account_Validation_Plus_Ownership","required":false,"description":"Account to be validated","schema":{"type":"object","required":["account","agent","owner"],"properties":{"account":{"$ref":"#/definitions/account"},"agent":{"$ref":"#/definitions/agent"},"owner":{"$ref":"#/definitions/owner"},"cashAccountType":{"type":"string","default":"Current","enum":["Current","Savings"]}}}}],"responses":{"200":{"description":"Valid account request","schema":{"$ref":"#/definitions/response-200"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/error-400"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/error-401"}},"403":{"description":"Forbidden","schema":{"$ref":"#/definitions/error-403"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/error-404"}},"405":{"description":"Method Not Allowed","schema":{"$ref":"#/definitions/error-405"}},"406":{"description":"Not Acceptable","schema":{"$ref":"#/definitions/error-406"}},"415":{"description":"Unsupported Media Type","schema":{"$ref":"#/definitions/error-415"}},"500":{"description":"Internal Server error","schema":{"$ref":"#/definitions/error-500"}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/error-503"}}},"security":[{"APIKeyQueryParam":[]}]}}},"definitions":{"agent":{"description":"Identification of a financial institution.","type":"object","required":["clearingSystemIdentification","memberIdentification"],"properties":{"clearingSystemIdentification":{"type":"string","example":"USABA","enum":["USABA"],"description":"Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed: \n * `USABA` - Routing Transit number assigned by the ABA for US financial Institutions. \n"},"memberIdentification":{"type":"string","minLength":1,"maxLength":35,"example":"061103852"}}},"account":{"title":"Account","type":"object","required":["identification"],"properties":{"identification":{"description":"Account number being verified","example":"11101012","minLength":1,"maxLength":34}}},"owner":{"title":"Owner","type":"object","description":"Party that legally owns the account.","properties":{"surname":{"description":"Surname is a name added to a given name and is part of a personal name. In many cases, a surname is a family name","example":"Doe","type":"string","minLength":1,"maxLength":35},"givenName":{"description":"Name given at birth","example":"John","type":"string","minLength":1,"maxLength":35},"middleName":{"description":"Second name of a person","example":"Samuel","type":"string","minLength":1,"maxLength":35},"nameSuffix":{"description":"Suffix for name","example":"PhD","type":"string","minLength":1,"maxLength":35},"organisationName":{"description":"Name by which an organisation is known and which is usually used to identify that organisation.","example":"Weyland-Yutani Corporation","type":"string","minLength":1,"maxLength":35}}},"returns":{"title":"Returns","description":"Contains RET fields for the response","type":"array","items":{"type":"object","properties":{"sequenceNumber":{"type":"number","example":"22","minLength":1},"settlementDate":{"description":"Indicates the date of settlement of the underlying.","example":"2023-02-24","format":"date","minLength":10,"maxLength":10},"purpose":{"description":"Underlying reason for the payment transaction.","type":"string","example":"Pay rent","minLength":1,"maxLength":35},"accountType":{"type":"number","example":"22","minLength":2,"maxLength":2,"description":"Specifies the nature, or use of the account. Available codes:  *  '22' - demand credit *  '27' - demand debit  *  '32' - savings credit *  '37' - savings debit *  '42' - general ledger credit *  '47' - general ledger debit *  '52' - loan account credit *  '55' - loan account debit (reversals only)        \n","enum":[22,27,32,37,42,47,52,55]},"localInstrument":{"type":"string","example":"WEB","minLength":3,"maxLength":3,"enum":["ARC","BOC","CCD","CIE","CTX","IAT","MTE","POP","POS","PPD","RCK","SHR","TEL","WEB","XCK"]},"amount":{"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","format":"float","example":1.01,"maxLength":11},"currency":{"type":"string","example":"USD","minLength":3,"maxLength":3}}},"returnReason":{"type":"string","example":"R01","minLength":3,"maxLength":3,"description":"Available codes:  *  'R01' - Insufficient funds *  'R02' - Account Closed *  'R03' - No Account / Unable to Locate Account *  'R04' - Invalid Account Number Structure *  'R05' - Unauthorized Debit to Consumer Account Using Corporate SEC Code *  'R06' - Returned per ODFI's Request *  'R07' - Authorization Revoked by Customer *  'R08' - Payment Stopped *  'R09' - Uncollected Funds *  'R10' - Customer Advises Originator is Not Known to Receiver and/or Originator is Not Authorized by Receiver to Debit Receiver’s Account *  'R11' - Customer Advises Entry Not in Accordance with the Terms of the Authorization *  'R12' - Account Sold to Another DFI *  'R14' - Representative Payee Deceased or Unable to Continue in That Capacity *  'R15' - Beneficiary or Account Holder (Other Than a Representative Payee) Deceased *  'R16' - Account Frozen / Entry Returned Per OFAC Instruction *  'R17' - File Record Edit Criteria / Entry with Invalid Account Number Initated Under Questionable Circumstances / Return of Improperly Initiated Reversal *  'R20' - Non-Transaction Account *  'R21' - Invalid Company Identification *  'R22' - Invalid Individual ID Number *  'R23' - Credit Entry Refused by Receiver *  'R29' - Corporate Customer Advises Not Authorized *  'R31' - Permissible Return Entry (CCD and CTX) only *  'R32' - RDFI Non-Settlement *  'R33' - Return of XCK Entry  *  'R34' - Limited Participation DFI *  'R35' - Return of Improper Debit Entry *  'R37' - Source Document Presented for Payment *  'R38' - Stop Payment on Source Document *  'R39' - Improper Source Document / Source Document Presented for Payment  *  'R50' - State Law Affecting RCK Acceptance  *  'R51' - Item related to RCK Entry is Ineligible for RCK Entry is Improper *  'R52' - Stop Payment on Item Related to RCK Entry *  'R53' - Item and RCK Entry Presented for Payment\n","enum":["R01","R02","R03","R04","R05","R06","R07","R08","R09","R10","R11","R12","R14","R15","R16","R17","R20","R21","R22","R23","R29","R31","R32","R33","R34","R35","R37","R38","R39","R50","R51","R52","R53"]}}}},"response-200":{"title":"Response","type":"object","description":"200 - OK","properties":{"accountStatus":{"type":"string","description":"Status of account being validated","example":"Enabled","enum":["Enabled","Disabled"]},"ownerNameMatch":{"type":"object","properties":{"surnameMatch":{"example":"Match","type":"string","enum":["Match","Partial Match","No Match","No Data Found"]},"givenNameMatch":{"example":"Partial Match","type":"string","enum":["Match","Partial Match","No Match","No Data Found"]},"middleNameMatch":{"example":"No Match","type":"string","enum":["Match","Partial Match","No Match","No Data Found"]},"nameSuffixMatch":{"example":"No Data Found","type":"string","enum":["Match","Partial Match","No Match","No Data Found"]},"organisationNameMatch":{"example":"No Data Found","type":"string","enum":["Match","Partial Match","No Match","No Data Found"]}}},"cashAccountType":{"type":"string","default":"Current","enum":["Current","Savings"]},"returns":{"$ref":"#/definitions/returns"}}},"error-400":{"title":"Error 400 - Bad Request","description":"The request could not be understood or required parameters were missing","type":"object","properties":{"details":{"description":"error details","type":"array","items":{"$ref":"#/definitions/errorDetails-400"}}}},"errorDetails-400":{"title":"Error 400 - Bad Request - Details","type":"object","properties":{"errorCode":{"description":"A programmatic error code:\n  * `2000` - Invalid JSON structure.\n  * `2001` - '[Field name] is missing or invalid.'\n  * `2002` - Invalid date.\n  * `2003` - Invalid combination of fields submitted. Check the API specification for eligible combinations. \n  * `2004` - '[Field name] cannot be more than [max number] characters.'\n","example":2000,"type":"number","enum":[2000,2001,2002,2003,2004]},"message":{"description":"A human readable description of the problem","example":"Invalid JSON structure.","type":"string"}}},"error-401":{"title":"Error 401 - Unauthorized","description":"Authentication failed or user doesn’t have permissions for requested operation","type":"object","properties":{"details":{"description":"error details","type":"array","items":{"$ref":"#/definitions/errorDetails-401"}}}},"errorDetails-401":{"title":"Error 401 - Unauthorized - Details","type":"object","properties":{"errorCode":{"example":1000,"type":"number","enum":[1000,1001],"description":"A programmatic error code:\n  * `1000` - API key is missing, invalid or expired. \n  * `1001` - API token is invalid, expired, or account associated with key does not have access to that API.\n"},"message":{"description":"A human readable description of the problem","example":"API key is missing, invalid or expired.","type":"string"}},"required":["errorcode","message"]},"error-403":{"title":"Error 403 - Forbidden","description":"The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":403,"type":"number","enum":[403],"description":"A programmatic error code:\n  * `403` - Forbidden\n"},"message":{"description":"A human readable description of the problem","example":"Forbidden","type":"string"}}},"error-404":{"title":"Error 404 - Not Found","description":"Resource was not found.","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":404,"type":"number","enum":[404],"description":"A programmatic error code:\n  * `404` - Resource was not found.\n"},"message":{"description":"A human readable description of the problem","example":"Resource was not found.","type":"string"}}},"error-405":{"title":"Error 405 - Method Not Allowed","description":"The request method is known by the server but has been disabled and cannot be used.","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":405,"type":"number","enum":[405],"description":"A programmatic error code:\n  * `405` - Method Not Allowed\n"},"message":{"description":"A human readable description of the problem","example":"Method Not Allowed","type":"string"}}},"error-406":{"title":"Error 406 - Not Acceptable","description":"Web server doesn't find any content that conforms to the criteria given by the user agent.","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":406,"type":"number","enum":[406],"description":"A programmatic error code:\n  * `406` - Not Acceptable\n"},"message":{"description":"A human readable description of the problem","example":"Not Acceptable","type":"string"}}},"error-415":{"title":"Error 415 - Unsupported Media Type","description":"The media format of the requested data is not supported by the server, so the server is rejecting the request.","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":415,"type":"number","enum":[415],"description":"A programmatic error code:\n  * `415` - Unsupported Media Type\n"},"message":{"description":"A human readable description of the problem","example":"Unsupported Media Type","type":"string"}}},"error-500":{"title":"Internal Server Error","description":"500 - Internal Server Error","type":"object","required":["details"],"properties":{"details":{"description":"error details","type":"array","items":{"$ref":"#/definitions/internalServerErrorDetails"}}}},"internalServerErrorDetails":{"title":"Internal Server Error Details","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":3001,"type":"number","enum":[3001],"description":"A programmatic error code:\n  * `3001` - Internal Server error.\n"},"message":{"description":"A human readable description of the problem","example":"Internal Server error","type":"string"}}},"error-503":{"title":"Error 503 - Service Unavailable","description":"Service is temporarily unavailable","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":503,"type":"number","enum":[503],"description":"A programmatic error code:\n  * `503` - Service Unavailable\n"},"message":{"description":"A human readable description of the problem","example":"Service is temporarily unavailable.","type":"string"}}}}}