Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.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 Get Participants Profile API
contact:
email: info@afinis.org
url: https://www.afinis.org
servers:
- url: https://api.afinis.org/participants/v2
tags:
- name: Get Participants Profile
paths:
/profile:
get:
operationId: Get Participants Profile
tags:
- Get Participants Profile
summary: Get Participants Profile with unique identification
description: Get Participants Profile
parameters:
- name: requestordid
in: query
required: true
description: Unique identification, as assigned by directory service, to unambiguously identify the requestor participant
schema:
type: string
- name: counterpartydid
in: query
required: true
description: Unique identification, as assigned by directory service, to unambiguously identify the Payee participant
schema:
type: string
- name: requestId
in: header
required: false
description: Optional Request ID allows application developer to trace requests through the systems logs
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/participant_profile'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/unauthorized'
'403':
description: Access denied, the operation is not allowed
content:
application/json:
schema:
$ref: '#/components/schemas/forbidden'
'404':
description: Not Found
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/unprocessableEntity'
'500':
description: Internal Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/internalServerError'
'503':
description: Service unavailable
security:
- APIKeyQueryParam: []
components:
schemas:
length:
description: Total length of the Account number
type: integer
example: 8
minLength: 1
maxLength: 25
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
forbidden:
title: Forbidden
type: object
properties:
detail:
description: error details
type: array
items:
$ref: '#/components/schemas/unauthorizedErrorDetails'
unauthorized:
title: Unauthorized
type: object
properties:
detail:
description: error details
type: array
items:
$ref: '#/components/schemas/unauthorizedErrorDetails'
maskAccount:
title: Mask Account
type: object
properties:
position:
type: integer
example: 1
default: 1
maximum: 25
value:
$ref: '#/components/schemas/accountMaskSpecification'
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
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: ''
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
allowedCharacters:
description: Allowed strings '["lowerCase", "upperCase", "numbers","specialCharacters"]'
type: array
example:
- lowerCase
- upperCase
- numbers
- specialCharacters
items:
type: string
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
accountMaskSpecification:
title: Account Mask Specification
type: object
description: Account Mask Specification
required:
- allowedCharacters
properties:
allowedCharacters:
$ref: '#/components/schemas/allowedCharacters'
length:
$ref: '#/components/schemas/length'
minLength:
$ref: '#/components/schemas/minLength'
maxLength:
$ref: '#/components/schemas/maxLength'
delimiter:
$ref: '#/components/schemas/delimiter'
lowerCase:
$ref: '#/components/schemas/lowerCase'
upperCase:
$ref: '#/components/schemas/upperCase'
numbers:
$ref: '#/components/schemas/numbers'
specialCharacters:
$ref: '#/components/schemas/specialCharacters'
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
postalAddress:
type: object
title: Postal Address
required:
- name
properties:
name:
type: string
example: ABC Corporation
address:
$ref: '#/components/schemas/address'
maxLength:
description: Total length of the Account number
type: integer
example: 15
minLength: 1
maxLength: 25
paymentProfile:
title: Payment Profile
properties:
paymentInformation:
$ref: '#/components/schemas/paymentInformation'
creditorAgent:
$ref: '#/components/schemas/creditorAgent'
creditorAccount:
$ref: '#/components/schemas/creditorAccount'
locationAndContact:
$ref: '#/components/schemas/locationAndContact'
deliveryMethod:
title: Delivery Method
type: string
description: Specifies the delivery method of the cheque by the debtor's agent
example: MLCD
deliverTo:
$ref: '#/components/schemas/postalAddress'
paymentMethodRanking:
title: Payment Method Ranking
description: Ranking of payment method preference
type: number
example: 1
relatedRemittanceInformation:
$ref: '#/components/schemas/relatedRemittanceInformation'
minimumAmount:
$ref: '#/components/schemas/minimumAmount'
maximumAmount:
$ref: '#/components/schemas/maximumAmount'
internalServerError:
title: Internal Server Error
type: object
properties:
detail:
description: error details
type: array
items:
$ref: '#/components/schemas/internalServerErrorDetails'
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: '#/components/schemas/postalAddress'
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: ''
minLength:
description: Total length of the Account number
type: integer
example: 1
minLength: 1
maxLength: 25
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
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: '#/components/schemas/serviceLevel'
localInstrument:
type: string
example: ZELLE
remittanceInformation:
title: Remittance Information
description: Remittance Information
type: object
required:
- invoicee
properties:
invoicee:
$ref: '#/components/schemas/invoicee'
duePayableAmount:
$ref: '#/components/schemas/duePayableAmount'
remittedAmount:
$ref: '#/components/schemas/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: '#/components/schemas/discountAppliedAmount'
adjustmentAmountAndReason:
$ref: '#/components/schemas/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
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
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
creditor:
title: Creditor
type: object
description: Party to which an amount of money is due.
properties:
contactDetails:
$ref: '#/components/schemas/contactDetails'
maskAccount:
type: array
items:
$ref: '#/components/schemas/maskAccount'
unprocessableEntity:
title: Unprocessable Entity
type: object
properties:
detail:
description: error details
type: array
items:
$ref: '#/components/schemas/unprocessableEntityErrorDetails'
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: '#/components/schemas/address'
specialCharacters:
type: array
minItems: 0
maxItems: 28
example:
- '-'
- _
- .
description: Allowed Charactors are in ["!","$","’","+",".",";",">","`","}",'“',"%","(",")",",","/","<","?","{","~","#","&","*","-",":","=","_","|","@"]
items:
type: string
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: '#/components/schemas/paymentProfile'
remittanceInformation:
$ref: '#/components/schemas/remittanceInformation'
creditor:
$ref: '#/components/schemas/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
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
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
delimiter:
type: array
minItems: 0
maxItems: 28
example:
- '-'
- _
- .
description: Allowed special characters are '["!","$","+",".",";",">","`","}","(",")",",","/","<","?","{","~","#","&","*","-",":","_","|","@"]'
items:
type: string
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
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
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
error:
title: Error
type: object
properties:
detail:
description: error details
type: array
items:
$ref: '#/components/schemas/errorDetails'
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"
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: '#/components/schemas/address'
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
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
securitySchemes:
APIKeyQueryParam:
type: apiKey
in: query
name: apikey