Inyo

Alias Directory

Access to the Alias Directory API is not widely available. This endpoint is subject to quota limits and restricted to specific use cases. Contact your Inyo account manager to learn more.

The Alias Directory API lets you resolve a recipient's alias (such as a national ID, phone number, email, or tax ID) into their linked bank account and holder details before initiating a push transaction. This is useful for validating payout destinations and displaying confirmation details to the sender.

What is an alias directory?

Instant payment rails — such as PIX in Brazil, UPI in India, or PayNow in Singapore — maintain centralized directories that map aliases (keys) to bank accounts. When a user registers for one of these systems, they link an alias (e.g., their CPF number, phone number, or email) to a specific bank account. The Alias Directory API queries these rail-specific registries and returns the matched account and holder information.

Common use cases:

  • Pre-flight validation — Verify that an alias resolves to a valid account before submitting a push transaction
  • Recipient confirmation — Display the holder name and masked account number so the sender can confirm the payout destination
  • Error prevention — Catch typos or invalid keys early, avoiding failed transactions and refund cycles

Endpoint

POST https://{FQDN}/v1/alias/directory

Headers:

HeaderValue
AuthorizationBearer {accessToken}
Content-Typeapplication/json

Request

FieldTypeRequiredDescription
countryCodestringISO Alpha-3 country code (e.g., "BRA", "SGP", "IND")
keystringThe alias value to look up (e.g., CPF number, phone, email, VPA)
keyTypestringThe type of alias — valid values depend on the instant payment rail (see table below)

Supported Rails and Key Types

Each country's instant payment system supports different alias types. Use the table below to determine which keyType values are valid for each rail.

CountrycountryCodeSystemSupported keyType values
BrazilBRAPIXCPF, CNPJ, EMAIL, PHONE, EVP
IndiaINDUPIVPA, MOBILE, AADHAAR
SingaporeSGPPayNowNRIC_FIN, UEN, MOBILE, VPA
ThailandTHAPromptPayCITIZEN_ID, PHONE, TAX_ID
PhilippinesPHLInstaPayMOBILE, EMAIL, ACCOUNT_NUMBER

Response — Alias Found (HTTP 200)

When the alias is found in the directory, the API returns the linked account and holder details.

FieldTypeDescription
foundbooleantrue — alias was resolved
countryCodestringISO Alpha-3 country code
systemstringName of the instant payment rail (e.g., "PIX", "PayNow", "UPI")
keyTypestringThe key type that was queried
keystringThe alias value that was queried
accountobjectLinked bank account details
account.bankCodestringBank institution code
account.bankNamestringBank name
account.accountTypestringAccount type (e.g., "CHECKING", "SAVINGS")
account.accountNumberstringMasked account number
account.branchCodestringBranch code (when applicable, e.g., Brazil)
holderobjectAccount holder details
holder.namestringHolder's full name
holder.documentTypestringDocument type used for registration (e.g., "CPF", "NRIC")
holder.documentstringMasked document number
holder.typestring"INDIVIDUAL" or "BUSINESS"

Response — Alias Not Found (HTTP 400)

When the alias cannot be resolved in the directory, the API returns a 400 status.

FieldTypeDescription
foundbooleanfalse — alias was not resolved
countryCodestringISO Alpha-3 country code
systemstringName of the instant payment rail
keyTypestringThe key type that was queried
keystringThe alias value that was queried
messagestringHuman-readable error description

Examples

PIX — Brazil (CPF lookup)

Request:

curl -X POST https://{FQDN}/v1/alias/directory \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "countryCode": "BRA",
    "key": "11122233344",
    "keyType": "CPF"
  }'

Response (200):

{
  "found": true,
  "countryCode": "BRA",
  "system": "PIX",
  "keyType": "CPF",
  "key": "11122233344",
  "account": {
    "bankCode": "341",
    "bankName": "Itaú Unibanco",
    "accountType": "CHECKING",
    "accountNumber": "****-5",
    "branchCode": "1234"
  },
  "holder": {
    "name": "João da Silva",
    "documentType": "CPF",
    "document": "***.222.***-**",
    "type": "INDIVIDUAL"
  }
}

PayNow — Singapore (NRIC/FIN lookup)

Request:

curl -X POST https://{FQDN}/v1/alias/directory \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "countryCode": "SGP",
    "key": "S1234567A",
    "keyType": "NRIC_FIN"
  }'

Response (200):

{
  "found": true,
  "countryCode": "SGP",
  "system": "PayNow",
  "keyType": "NRIC_FIN",
  "key": "S1234567A",
  "account": {
    "bankCode": "7339",
    "bankName": "OCBC Bank",
    "accountType": "SAVINGS",
    "accountNumber": "XXXX-XXXX-5678"
  },
  "holder": {
    "name": "Lee Siew Ling",
    "documentType": "NRIC",
    "document": "S****567A",
    "type": "INDIVIDUAL"
  }
}

Alias Not Found — InstaPay (Philippines)

Request:

curl -X POST https://{FQDN}/v1/alias/directory \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "countryCode": "PHL",
    "key": "jua2n@gcash",
    "keyType": "EMAIL"
  }'

Response (400):

{
  "found": false,
  "countryCode": "PHL",
  "system": "InstaPay",
  "keyType": "EMAIL",
  "key": "jua2n@gcash",
  "message": "Alias not found in InstaPay directory"
}

Alias Not Found — PromptPay (Thailand)

Request:

curl -X POST https://{FQDN}/v1/alias/directory \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "countryCode": "THA",
    "key": "+668123456S78",
    "keyType": "PHONE"
  }'

Response (400):

{
  "found": false,
  "countryCode": "THA",
  "system": "PromptPay",
  "keyType": "PHONE",
  "key": "+668123456S78",
  "message": "Alias not found in PromptPay directory"
}

Alias Not Found — PayNow (Singapore)

Request:

curl -X POST https://{FQDN}/v1/alias/directory \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "countryCode": "SGP",
    "key": "S1234S567A",
    "keyType": "NRIC_FIN"
  }'

Response (400):

{
  "found": false,
  "countryCode": "SGP",
  "system": "PayNow",
  "keyType": "NRIC_FIN",
  "key": "S1234S567A",
  "message": "Alias not found in PayNow directory"
}