Afinis Payee Profile API

Afinis Payee Profile API for exchanging standardized payee onboarding and directory profile information between participants.

OpenAPI Specification

nacha-payee-profile.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":"2.1.3","title":"Payee Profile API","contact":{"email":"info@afinis.org","url":"https://www.afinis.org"}},"host":"api.afinis.org","basePath":"/participants/v2","securityDefinitions":{"APIKeyQueryParam":{"type":"apiKey","in":"query","name":"apikey"}},"schemes":["https"],"produces":["application/json"],"paths":{"/profile":{"get":{"operationId":"Get Participants Profile","tags":["Get Participants Profile"],"summary":"Get Participants Profile with unique identification","description":"Get Participants Profile","produces":["application/json"],"parameters":[{"name":"requestordid","in":"query","required":true,"type":"string","description":"Unique identification, as assigned by directory service, to unambiguously identify the requestor participant"},{"name":"counterpartydid","in":"query","required":true,"type":"string","description":"Unique identification, as assigned by directory service, to unambiguously identify the Payee participant"},{"name":"requestId","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":"OK","schema":{"$ref":"#/definitions/participant_profile"}},"400":{"description":"Bad request","schema":{"$ref":"#/definitions/error"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/unauthorized"}},"403":{"description":"Access denied, the operation is not allowed","schema":{"$ref":"#/definitions/forbidden"}},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity","schema":{"$ref":"#/definitions/unprocessableEntity"}},"500":{"description":"Internal Server error.","schema":{"$ref":"#/definitions/internalServerError"}},"503":{"description":"Service unavailable"}},"security":[{"APIKeyQueryParam":[]}]}}},"definitions":{"participant_profile":{"title":"Participant Profile","type":"object","required":["payeeProfile"],"properties":{"requestStatus":{"type":"string","description":"Specifies the status of the request:\n  * `APRV` - Approved by Payee\n  * `PDNG` - CSP waiting on decision by Payee\n  * `DENY` - Denied by Payee \n","enum":["APRV","PDNG","DENY"]},"payeeProfile":{"title":"Payee Profile","required":["paymentProfiles","remittanceInformation"],"properties":{"paymentProfiles":{"title":"Payment Profiles","type":"array","items":{"$ref":"#/definitions/paymentProfile"}},"remittanceInformation":{"$ref":"#/definitions/remittanceInformation"},"creditor":{"$ref":"#/definitions/creditor"}}},"counterpartydid":{"type":"string","description":"Unique identification, as assigned by directory service, to unambiguously identify the Payee participant"},"creationDateTime":{"type":"string","description":"The date and time the API response is created. Date should be in YYYY-MM-DDThh:mm:ss.sssZ format.","example":"2020-04-29T16:50:29.854Z","minLength":20,"maxLength":29}}},"paymentProfile":{"title":"Payment Profile","properties":{"paymentInformation":{"$ref":"#/definitions/paymentInformation"},"creditorAgent":{"$ref":"#/definitions/creditorAgent"},"creditorAccount":{"$ref":"#/definitions/creditorAccount"},"locationAndContact":{"$ref":"#/definitions/locationAndContact"},"deliveryMethod":{"title":"Delivery Method","type":"string","description":"Specifies the delivery method of the cheque by the debtor's agent","example":"MLCD"},"deliverTo":{"$ref":"#/definitions/postalAddress"},"paymentMethodRanking":{"title":"Payment Method Ranking","description":"Ranking of payment method preference","type":"number","example":1},"relatedRemittanceInformation":{"$ref":"#/definitions/relatedRemittanceInformation"},"minimumAmount":{"$ref":"#/definitions/minimumAmount"},"maximumAmount":{"$ref":"#/definitions/maximumAmount"}}},"paymentInformation":{"title":"Payment Information","type":"object","required":["paymentMethod"],"properties":{"paymentMethod":{"type":"string","title":"Payment Method","example":"TRF","enum":["CHK","TRF"],"description":"Specifies the means of payment that will be used to move the amount of money:\n  * `CHK` - Cheque\n  * `TRF` - CreditTransfer\n"},"paymentTypeInformation":{"title":"Payment Type Information","description":"Set of elements used to further specify the type of transaction.","type":"object","properties":{"serviceLevel":{"$ref":"#/definitions/serviceLevel"},"localInstrument":{"type":"string","example":"ZELLE"}}}}},"serviceLevel":{"title":"Service Level","type":"string","example":"NURG","enum":["NURG","URGP","CARD","SDVA"],"description":"Specifies a pre-agreed service or level of service between the parties, as published in an external service level code list:\n  * `NURG` - Non-urgent Payment\n  * `URGP` - Urgent Payment\n  * `CARD` - Credit Card\n  * `SDVA` - Same Day Value Payment\n"},"relatedRemittanceInformation":{"title":"Related Remittance Information","description":"Provides information related to the handling of the remittance information by any of the agents in the transaction processing chain","type":"object","properties":{"method":{"type":"string","example":"POST","enum":["WPMT","EMAL","FAXI","URID","POST","SMSM"],"description":"Method used to deliver the remittance advice information:\n * `WPMT` - WithPayment - Remittance advice information must be sent with payment\n * `EMAL` - Email - Remittance advice information must be through e-mail\n * `FAXI` - Fax - Remittance advice information must be faxed\n * `URID` - Uniform Resource Identifier\n * `POST` - Post\n * `SMSM` - SMS\n"},"electronicAddress":{"title":"Electronic Address","description":"Electronic address to which an agent is to send the remittance information","type":"string","example":""},"postalAddress":{"$ref":"#/definitions/postalAddress"}}},"remittanceInformation":{"title":"Remittance Information","description":"Remittance Information","type":"object","required":["invoicee"],"properties":{"invoicee":{"$ref":"#/definitions/invoicee"},"duePayableAmount":{"$ref":"#/definitions/duePayableAmount"},"remittedAmount":{"$ref":"#/definitions/remittedAmount"},"reference":{"title":"Reference","description":"Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction","type":"string","example":""},"number":{"title":"Number","description":"Unique and unambiguous identification of the referred document","type":"string","example":""},"relatedDate":{"title":"Related Date","description":"Date associated with the referred document","type":"string","example":""},"discountAppliedAmount":{"$ref":"#/definitions/discountAppliedAmount"},"adjustmentAmountAndReason":{"$ref":"#/definitions/adjustmentAmountAndReason"},"mandatory":{"title":"Mandatory","type":"array","items":{"type":"string","enum":["invoicee.identification","invoicee.name","duePayableAmount.amount","duePayableAmount.currency","remittedAmount.amount","remittedAmount.currency","reference","number","relatedDate","discountAppliedAmount.amount","discountAppliedAmount.currency","adjustmentAmountAndReason.amount","adjustmentAmountAndReason.currency","adjustmentAmountAndReason.reason","adjustmentAmountAndReason.string"],"example":["invoicee.identification","invoicee.name"]}},"optional":{"title":"Optional","type":"array","items":{"type":"string","enum":["duePayableAmount.amount","duePayableAmount.currency","remittedAmount.amount","remittedAmount.currency","reference","number","relatedDate","discountAppliedAmount.amount","discountAppliedAmount.currency","adjustmentAmountAndReason.amount","adjustmentAmountAndReason.currency","adjustmentAmountAndReason.reason","adjustmentAmountAndReason.string"],"example":["duePayableAmount.amount","duePayableAmount.currency","remittedAmount.amount","remittedAmount.currency","reference","number","relatedDate","discountAppliedAmount.amount","discountAppliedAmount.currency","adjustmentAmountAndReason.amount","adjustmentAmountAndReason.currency","adjustmentAmountAndReason.reason","adjustmentAmountAndReason.string"]}}}},"invoicee":{"type":"object","title":"Invoicee","description":"Unambiguous identification of the account number","required":["identification","name"],"properties":{"identification":{"title":"Identification","description":"Unambiguous identification of the account number","type":"string","example":""},"name":{"title":"Name","description":"Customer Name","type":"string","example":""}}},"creditor":{"title":"Creditor","type":"object","description":"Party to which an amount of money is due.","properties":{"contactDetails":{"$ref":"#/definitions/contactDetails"},"maskAccount":{"type":"array","items":{"$ref":"#/definitions/maskAccount"}}}},"maskAccount":{"title":"Mask Account","type":"object","properties":{"position":{"type":"integer","example":1,"default":1,"maximum":25},"value":{"$ref":"#/definitions/accountMaskSpecification"}}},"accountMaskSpecification":{"title":"Account Mask Specification","type":"object","description":"Account Mask Specification","required":["allowedCharacters"],"properties":{"allowedCharacters":{"$ref":"#/definitions/allowedCharacters"},"length":{"$ref":"#/definitions/length"},"minLength":{"$ref":"#/definitions/minLength"},"maxLength":{"$ref":"#/definitions/maxLength"},"delimiter":{"$ref":"#/definitions/delimiter"},"lowerCase":{"$ref":"#/definitions/lowerCase"},"upperCase":{"$ref":"#/definitions/upperCase"},"numbers":{"$ref":"#/definitions/numbers"},"specialCharacters":{"$ref":"#/definitions/specialCharacters"}}},"allowedCharacters":{"description":"Allowed strings '[\"lowerCase\", \"upperCase\", \"numbers\",\"specialCharacters\"]'","type":"array","example":["lowerCase","upperCase","numbers","specialCharacters"],"items":{"type":"string"}},"length":{"description":"Total length of the Account number","type":"integer","example":8,"minLength":1,"maxLength":25},"minLength":{"description":"Total length of the Account number","type":"integer","example":1,"minLength":1,"maxLength":25},"maxLength":{"description":"Total length of the Account number","type":"integer","example":15,"minLength":1,"maxLength":25},"delimiter":{"type":"array","minItems":0,"maxItems":28,"example":["-","_","."],"description":"Allowed special characters are '[\"!\",\"$\",\"+\",\".\",\";\",\">\",\"`\",\"}\",\"(\",\")\",\",\",\"/\",\"<\",\"?\",\"{\",\"~\",\"#\",\"&\",\"*\",\"-\",\":\",\"_\",\"|\",\"@\"]'","items":{"type":"string"}},"lowerCase":{"type":"array","minItems":0,"maxItems":26,"description":"Allowed list of alphabets [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]","example":["a","b","c"],"items":{"type":"string"}},"upperCase":{"type":"array","minItems":0,"maxItems":26,"example":["V","E","Z"],"description":"Allowed list of alphabets [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z]","items":{"type":"string"}},"numbers":{"type":"array","minItems":0,"maxItems":10,"example":[1,2,3],"description":"Allowed numbers are [0,1,2,3,4,5,6,7,8,9]","items":{"type":"number"}},"specialCharacters":{"type":"array","minItems":0,"maxItems":28,"example":["-","_","."],"description":"Allowed Charactors are in [\"!\",\"$\",\"’\",\"+\",\".\",\";\",\">\",\"`\",\"}\",'“',\"%\",\"(\",\")\",\",\",\"/\",\"<\",\"?\",\"{\",\"~\",\"#\",\"&\",\"*\",\"-\",\":\",\"=\",\"_\",\"|\",\"@\"]","items":{"type":"string"}},"creditorAccount":{"title":"Creditor Account","type":"object","required":["identification","alternateAccount"],"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":"1234567891","maxLength":17},"alternateAccount":{"description":"Exception bank account number to be used when mask criteria is not met.","type":"string","example":"42325454545","maxLength":17},"proxy":{"type":"object","properties":{"type":{"type":"string","enum":["EMAL","MBNO"],"description":"Identification used to indicate the account identification:\n * `EMAL` - Email - Receiver's Email\n * `MBNO` - Mobile Number - Receiver's Phone Number\n","example":"EMAL"},"identification":{"type":"string","example":"bob.jones@gmail.com"}}}}},"minimumAmount":{"title":"Minimum Amount","description":"Minimum amount of payment accepted by supplier for the payment type selected","type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","example":1.01,"maxLength":11},"currency":{"type":"string","example":"USD"}}},"maximumAmount":{"title":"Maximum Amount","description":"Maximum amount of payment accepted by supplier for the payment type selected","type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","example":1000000.29,"maxLength":11},"currency":{"type":"string","example":"USD"}}},"duePayableAmount":{"title":"Due Payable Amount","description":"Amount specified is the exact amount due and payable to the creditor","type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","example":100.2,"maxLength":11},"currency":{"type":"string","example":"USD"}}},"remittedAmount":{"title":"Remitted Amount","description":"Amount of money remitted","type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","example":100.2,"maxLength":11},"currency":{"type":"string","example":"USD"}}},"discountAppliedAmount":{"title":"Discount Applied Amount","description":"Amount specified for the referred document is the amount of discount to be applied to the amount due and payable to the creditor","type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","example":2.2,"maxLength":11},"currency":{"type":"string","example":"USD"}}},"adjustmentAmountAndReason":{"title":"Adjustment Amount and Reason","description":"Discount Applied paid","type":"object","required":["amount","currency","reason"],"properties":{"amount":{"description":"Amount of money of the document adjustment.","type":"number","example":2.2,"maxLength":11},"currency":{"type":"string","example":"USD"},"reason":{"type":"string","description":"Specifies the reason for the adjustment.","example":""},"additionalInformation":{"description":"Provides further details on the document adjustment","type":"string","example":""}}},"creditorAgent":{"title":"Creditor Agent","type":"object","description":"Financial institution servicing an account for the creditor.","required":["memberIdentification","clearingSystemIdentification"],"properties":{"clearingSystemIdentification":{"type":"string","example":"USABA","enum":["CACPA","USABA"],"description":"Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed:  \n  * `CACPA` - Bank Branch Code used in Canada.\n  * `USABA` - Routing Transit number assigned by the ABA for US financial Institutions. \n"},"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"},"postalAddress":{"$ref":"#/definitions/address"}}},"postalAddress":{"type":"object","title":"Postal Address","required":["name"],"properties":{"name":{"type":"string","example":"ABC Corporation"},"address":{"$ref":"#/definitions/address"}}},"address":{"type":"object","description":"Information that locates and identifies a specific address, as defined by postal services","properties":{"department":{"type":"string","description":"Identification of a division of a large organisation or building","example":"Finance Department"},"streetName":{"type":"string","description":"Name of a street or thoroughfare","example":"5700 Lexington Street"},"postCode":{"type":"integer","description":"Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail","example":19801},"townName":{"type":"string","description":"Name of a built-up area, with defined boundaries, and a local government","example":"Wilmington"},"countrySubDivision":{"type":"string","description":"Identifies a subdivision of a country such as state, region, county","example":"DE"},"country":{"type":"string","description":"Nation with its own government","example":"US"}}},"locationAndContact":{"type":"object","description":"Location and contact information of the merchant (business) performing the transaction","properties":{"URLAddress":{"type":"string","description":"Address for the Universal Resource Locator (URL), for example used over the www (HTTP) service","maxLength":256,"example":"https://www.energy.com/welcome"},"customerService":{"type":"string","description":"Phone number of the customer service","example":"+1-800-555-2000"}}},"contactDetails":{"type":"object","title":"Contact Details","description":"Set of elements used to indicate how to contact the party","properties":{"name":{"type":"string","description":"Name by which a party is known and which is usually used to identify that party","example":"Zachary Martin"},"jobTitle":{"type":"string","description":"Title of the function","example":"Accounts Receive Specialist"},"emailAddress":{"type":"string","description":"Address for electronic mail","example":"zachary.martin@ABCcorp.com"},"phoneNumber":{"type":"string","description":"Collection of information that identifies a phone number, as defined by telecom services","example":"+1-302-515-5565"},"postalAddress":{"$ref":"#/definitions/address"}}},"error":{"title":"Error","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/errorDetails"}}}},"errorDetails":{"title":"Error Details","type":"object","required":["errorCode","message"],"properties":{"errorCode":{"example":2000,"type":"number","enum":[2000,2001,2002,2003,2004],"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"},"message":{"description":"A human readable description of the problem","example":"Invalid JSON structure.","type":"string"}}},"unauthorized":{"title":"Unauthorized","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/unauthorizedErrorDetails"}}}},"unauthorizedErrorDetails":{"title":"Unauthorized Error Details","type":"object","required":["errorCode","message"],"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"}}},"forbidden":{"title":"Forbidden","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/unauthorizedErrorDetails"}}}},"unprocessableEntity":{"title":"Unprocessable Entity","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/unprocessableEntityErrorDetails"}}}},"unprocessableEntityErrorDetails":{"title":"Unprocessable Entity 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 duplicate records","type":"string"}}},"internalServerError":{"title":"Internal Server Error","type":"object","properties":{"detail":{"description":"error details","type":"array","items":{"$ref":"#/definitions/internalServerErrorDetails"}}}},"internalServerErrorDetails":{"title":"Internal Server Error ErrorDetails","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"}}}}}