Afinis International ACH Remittance (IAR) API

Afinis International ACH Remittance (IAR) API for sending remittance information tied to incoming IAT (International ACH Transaction) credits.

OpenAPI Specification

nacha-iar.json Raw ↑
{"swagger":"2.0","info":{"version":"1.0.1","title":"IAR_API","description":"International ACH Remittance (IAR) API.           \nThis API is to be used for incoming IAT credits. Purpose of the API is to send all information known about the transaction’s parties prior to the sending of the IAT          ","contact":{"email":"info@afinis.org","url":"https://www.afinis.org"}},"host":"api.asig.org","basePath":"/payments/v1","securityDefinitions":{"APIKeyQueryParam":{"type":"apiKey","in":"query","name":"apikey"}},"schemes":["https"],"consumes":["application/json"],"produces":["application/json"],"paths":{"/iar":{"post":{"operationId":"International ACH Remittance","tags":["International ACH Remittance (IAR)"],"summary":"Send all information known about the transaction’s parties prior to the sending of the IAT","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"IAR","required":true,"schema":{"type":"object","required":["debtor","debtorAgent","creditor","creditorAgent"],"properties":{"ultimateDebtor":{"$ref":"#/definitions/party"},"initiatingParty":{"$ref":"#/definitions/party"},"debtor":{"$ref":"#/definitions/party"},"debtorAccount":{"$ref":"#/definitions/account"},"debtorAgent":{"$ref":"#/definitions/agent"},"debtorAgentAccount":{"$ref":"#/definitions/account"},"previousInstructingAgent":{"$ref":"#/definitions/agent"},"previousInstructingAgentAccount":{"$ref":"#/definitions/account"},"intermediaryAgent":{"$ref":"#/definitions/agent"},"intermediaryAgentAccount":{"$ref":"#/definitions/account"},"creditorAgent":{"$ref":"#/definitions/agent"},"creditorAgentAccount":{"$ref":"#/definitions/account"},"creditor":{"$ref":"#/definitions/party"},"creditorAccount":{"$ref":"#/definitions/account"},"ultimateCreditor":{"$ref":"#/definitions/party"},"instructionForCreditorAgent":{"$ref":"#/definitions/agent"}}}}],"responses":{"200":{"description":"Success","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"}},"422":{"description":"Unprocessable request","schema":{"$ref":"#/definitions/error-422"}},"500":{"description":"Internal Server error","schema":{"$ref":"#/definitions/error-500"}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/error-503"}}},"security":[{"APIKeyQueryParam":[]}]}}},"definitions":{"response-200":{"title":"IAR Response","type":"object","required":["status"],"properties":{"status":{"description":"Specifies the status","type":"string","example":"yes","minLength":1,"maxLength":35},"additionalInformation":{"description":"Additional information","type":"string","example":"RCVD","minLength":1,"maxLength":140}}},"party":{"title":"Party","type":"object","description":"Identification of a person or an organisation","properties":{"name":{"description":"Name by which a party is known and which is usually used to identify that party.","type":"string","example":"Company ABC","minLength":1,"maxLength":140},"postalAddress":{"$ref":"#/definitions/postalAddress"},"organisationIdentification":{"$ref":"#/definitions/organisationIdentification"},"privateIdentification":{"$ref":"#/definitions/privateIdentification"},"countryOfResidence":{"type":"string","example":"CA","minLength":2,"maxLength":2},"contactDetails":{"$ref":"#/definitions/contactDetails"}}},"account":{"title":"Account","description":"Details to identify an account","required":["identification"],"type":"array","items":{"type":"object","properties":{"identification":{"$ref":"#/definitions/accountIdentification"},"type":{"description":"Specifies the nature, or use of the account.","type":"string","example":"111010151","minLength":1,"maxLength":35},"currency":{"description":"Identification of the currency in which the account is held.","type":"string","example":"USD","default":"USD","minLength":3,"maxLength":3},"name":{"description":"Name of the account, as assigned by the account servicing institution, in agreement with the account owner in order to provide an additional means of identification of the account.","type":"string","example":"Company ABC","minLength":1,"maxLength":140},"proxy":{"$ref":"#/definitions/proxyAccountIdentification"}}}},"agent":{"title":"Agent","description":"Identification of a financial institution.","type":"array","items":{"type":"object","properties":{"BICFI":{"type":"string","example":"NDEAFIHH","minLength":8,"maxLength":11},"clearingSystemIdentification":{"type":"string","example":"USABA","minLength":1,"maxLength":35,"description":"Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed"},"memberIdentification":{"type":"string","minLength":1,"maxLength":35,"example":"061103852"},"LEI":{"description":"Legal entity identifier of the financial institution.","type":"string","minLength":20,"maxLength":20},"name":{"description":"Name by which an agent is known and which is usually used to identify that agent.","type":"string","minLength":1,"maxLength":140},"postalAddress":{"$ref":"#/definitions/postalAddress"},"otherIdentification":{"type":"string","example":"1234567891","minLength":1,"maxLength":35},"otherSchemeName":{"type":"string","minLength":1,"maxLength":35},"otherIssuer":{"type":"string","minLength":1,"maxLength":35},"branchIdentification":{"$ref":"#/definitions/branchData"}}}},"branchData":{"title":"Branch Data","type":"object","description":"Identifies a specific branch of a financial institution.","properties":{"identification":{"description":"Unique and unambiguous identification of a branch of a financial institution.","type":"string","example":"1234567891","minLength":1,"maxLength":35},"LEI":{"description":"Legal entity identifier of the financial institution.","type":"string","minLength":20,"maxLength":20},"name":{"description":"Name by which an agent is known and which is usually used to identify that agent.","type":"string","minLength":1,"maxLength":140},"postalAddress":{"$ref":"#/definitions/postalAddress"}}},"accountIdentification":{"title":"Account Identification","type":"object","description":"Identification of an organisation","properties":{"IBAN":{"description":"International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer.","type":"string","example":"FI0154367822126","minLength":5,"maxLength":35},"otherIdentification":{"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},"otherSchemeName":{"type":"string","minLength":1,"maxLength":35},"otherIssuer":{"type":"string","minLength":1,"maxLength":35}}},"proxyAccountIdentification":{"title":"Proxy","type":"object","description":"Specifies an alternate assumed name for the identification of the account.","properties":{"type":{"description":"Type of the proxy identification.","type":"string","minLength":1,"maxLength":35},"identification":{"description":"Identification used to indicate the account identification under another specified name.","type":"string","example":"1234567891","minLength":1,"maxLength":2028}}},"organisationIdentification":{"title":"Organisation Identification","type":"object","description":"Identification of an organisation","properties":{"anyBIC":{"type":"string","example":"NDEAFIHH","minLength":8,"maxLength":11},"LEI":{"type":"string","minLength":20,"maxLength":20},"identification":{"type":"string","example":"1234567891","minLength":1,"maxLength":35},"schemeName":{"type":"string","minLength":1,"maxLength":35},"issuer":{"type":"string","minLength":1,"maxLength":35}}},"privateIdentification":{"title":"Private Identification","type":"object","description":"Unique and unambiguous identification of a person, for example a passport.","properties":{"birthDate":{"type":"string","example":"1967-08-13","minLength":10,"maxLength":10},"provinceOfBirth":{"type":"string","example":"Ontario","minLength":1,"maxLength":35},"cityOfBirth":{"type":"string","example":"Toronto","minLength":1,"maxLength":35},"countryOfBirth":{"type":"string","example":"CA","minLength":2,"maxLength":2},"identification":{"type":"string","example":"1234567891","minLength":1,"maxLength":35},"schemeName":{"type":"string","minLength":1,"maxLength":35},"issuer":{"type":"string","minLength":1,"maxLength":35}}},"contactDetails":{"title":"Contact Details","type":"object","description":"Set of elements used to indicate how to contact the party.","properties":{"namePrefix":{"type":"string","example":"DOCT","minLength":4,"maxLength":4},"name":{"type":"string","example":"John","minLength":1,"maxLength":140},"phoneNumber":{"type":"string","minLength":1,"maxLength":30},"mobileNumber":{"type":"string","minLength":1,"maxLength":30},"faxNumber":{"type":"string","minLength":1,"maxLength":30},"emailAddress":{"type":"string","minLength":1,"maxLength":2048},"emailPurpose":{"type":"string","minLength":1,"maxLength":35},"jobTitle":{"type":"string","minLength":1,"maxLength":35},"responsibility":{"type":"string","minLength":1,"maxLength":35},"department":{"type":"string","minLength":1,"maxLength":70},"channelType":{"type":"string","minLength":1,"maxLength":4},"channelTypeIdentification":{"type":"string","minLength":1,"maxLength":128},"preferredMethod":{"type":"string","minLength":4,"maxLength":4}}},"postalAddress":{"title":"Postal Address","description":"Information that locates and identifies a specific address, as defined by postal services.","type":"object","properties":{"addressTypeIdentification":{"type":"string","minLength":4,"maxLength":4,"example":"ADDR"},"addressTypeSchemeName":{"type":"string","minLength":1,"maxLength":35},"addressTypeIssuer":{"type":"string","minLength":1,"maxLength":35},"department":{"type":"string","minLength":1,"maxLength":70},"subDepartment":{"type":"string","minLength":1,"maxLength":70},"streetName":{"description":"Name of a street or throughfare","type":"string","minLength":1,"maxLength":70,"example":"Lexington Street"},"buildingNumber":{"type":"string","minLength":1,"maxLength":16},"buildingName":{"type":"string","minLength":1,"maxLength":35},"floor":{"type":"string","minLength":1,"maxLength":70},"postBox":{"type":"string","minLength":1,"maxLength":16},"room":{"type":"string","minLength":1,"maxLength":70},"postCode":{"description":"Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail","type":"string","minLength":1,"maxLength":11,"example":19801},"townName":{"description":"Name of a built-up area, with defined boundaries, and a local government","type":"string","minLength":1,"maxLength":35,"example":"Wilmington"},"townLocationName":{"type":"string","minLength":1,"maxLength":35},"districtName":{"type":"string","minLength":1,"maxLength":35},"countrySubDivision":{"description":"Identifies a subdivision of a country such as state, region, county","type":"string","minLength":1,"maxLength":35,"example":"DE"},"country":{"description":"Nation with its own government","type":"string","minLength":2,"maxLength":2,"example":"US"},"addressLine":{"type":"array","minItems":1,"maxItems":7,"items":{"type":"string","minLength":1,"maxLength":70}}}},"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-422":{"title":"Unprocessable request","description":"422 - Unprocessable request","type":"object","required":["details"],"properties":{"details":{"description":"error details","type":"array","items":{"$ref":"#/definitions/unprocessableRequestErrorDetails"}}}},"unprocessableRequestErrorDetails":{"title":"Unprocessable request Error Details","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":4001,"type":"number","enum":[4001],"description":"A programmatic error code:\n  * `4001` - Unprocessable request due to \"%%\"\n"},"message":{"description":"A human readable description of the problem","example":"Unprocessable request due to \"%%\"","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"}}}}}