Zynk
Getting StartedProduct Guides
API ReferenceFAQ'sRecipes
Getting StartedProduct Guides
API ReferenceFAQ'sRecipes
  1. Customers & Identity
  • Transformer - Cross Border Transfer
    • Overview
    • Customers & Identity
      • Entities/Customers
      • About KYC/KYB
      • RFI Scenarios for Customers
      • Identity Rejection Reasons
    • Accounts & Wallets
      • Fetch Requirements for External Accounts V2
      • External Accounts V2
      • Funding Accounts
      • About Plaid Integration
    • Transfers
      • Counterparty Risk details
      • Addition transfer requirements
      • Transfer in Action
      • Limits and Minimums
      • Fee details
    • Miscellaneous
      • Bank Codes
      • Supported chains and currencies
      • Partner payments signature generation
      • Reserves requirements
      • Partner Payments
      • Status updates - Webhooks
  • Transporter - Automated Liquidity Manager
    • Overview
    • Visibility Protocol
    • Instant liquidity process - How it works
    • Status updates - Webhooks
  • Teleport - Pay-In Accounts
    • Overview
    • About Teleport routes
  • Warp - Pay-Outs
    • Overview
  • Continuum - Wallet Infrastructure
    • Overview
    • Authentication
    • Continuum APIs
    • Transactions on Continuum
    • Details on generating signatures
  1. Customers & Identity

About KYC/KYB

Once a customer is registered using Create Entity, partners must initiate the KYC/KYB verification process for the customer.

KYC — Individual Verification#

The KYC process includes, but may not be limited to, the following:
CheckDescription
Identity DocumentGovernment-issued photo identification
Selfie VerificationLiveness check matched against the photo ID
Database VerificationPII validated against voter, telco, utility, or credit databases
AML ScreeningPEP / HIO report, Watchlist / Sanctions report, Adverse Media Report

KYB — Business Verification#

Businesses will go through a KYB process to verify their identity. Each beneficial owner will also need to complete KYC.

Business Information#

RequirementDescription
Business IdentityLegal name of business and Doing Business As (DBA)
EIN NumberEmployer Identification Number
AddressRegistered business address
Phone NumberPrimary business contact number
WebsiteBusiness website URL

Compliance Checks#

CheckDescription
Database VerificationValidates business name, EIN, and address
Beneficial Owner KYCAll owners with 25% or more ownership undergo standard KYC
AML ScreeningBusiness-level anti-money laundering screening
Watchlist / SanctionsScreened against global watchlists and sanctions databases
Adverse Media ReportScreening for negative media coverage associated with the business

Zynk provides flexibility to do KYC/KYB either by taking documents of the customer or providing a link to the customer to submit documents by themselves.
The process is dependent on the jurisdiction in which registration will be done.
INR
AED
USD
EUR
ARS
BRL
MXN
PHP
IDR

Scope#

ItemPosition
Sender jurisdictionUS only (currently)
Payout jurisdictionIndia (INR)
KYC on senderRequired — identity information only, no documents
KYC on beneficiaryNot performed
KYC feeFree — skip the payment step (Step 2) entirely

Entity model for INR#

For the INR corridor only the sender is registered as an entity. The beneficiary is never registered.
PartyAction required
SenderCreate Entity → submit KYC identity information against the INR routing id
BeneficiaryNo entity creation. Add the beneficiary's bank account under the sender entity via the account addition flow
Because the beneficiary exists only as a bank account attached to the sender, a single sender entity can hold multiple INR payout accounts.

Sender information required#

FieldNotes
NameAs per the identity document
Mobile number
Date of birth
AddressUS address
Identity documentOne of the ID types listed below
For every ID type, submit only the document number, issuedOn date and validThrough date. No document image or file upload is needed for the INR corridor.
For Indians residing in the US, submit the VISA under the Others ID type.

Transaction-level information#

Beyond entity KYC, every INR payout requires transaction attributes to be supplied at simulate time as proof of the transaction's nature. The accepted values depend on the flow — C2C, C2B, B2B or B2C.
AttributeSupplied on
Purpose of transactionSimulate / create transaction
Source of incomeSimulate / create transaction
Relationship (sender ↔ beneficiary)Simulate / create transaction
Beneficiary account typeAccount addition
Sender ID typeEntity KYC submission
The permitted codes for each are listed below.
Purpose of transaction
CodeDescriptionC2CC2BB2BB2CNotes
ACCTCompany Transfers✔
FAMAFamily Maintenance✔Support for family members
LOARRepayment of Loan✔Only allowed for C2C
MDCSMedical Expenses✔✔Cannot be accepted in all cases
P01IT and Consultancy Service✔✔
P02Royalty and License Fees✔✔
P04Payment of Taxes✔✔
P06Subscription to Medias✔
P09Trade Based Remittance✔✔
P10Investment✔✔
P100Merchanting Trade✔
P103Freight✔
SALASalary✔✔Employer to employee
P11Postal / Telecom Expenses✔✔
P12Educational Fees✔✔Cannot be accepted in all cases
P136Research and Development Services✔
P137Legal Services✔✔
P138Accounting Services✔
P139Management Consulting Services✔
P14Bill Payment✔Utility, telecom, etc.
P140Advertising and Market Research✔
P141Architectural and Engineering Services✔
P71Repatriation of Business Profits✔✔
P68Interest on Loans✔
P157Employers Social Contributions✔
P16Travel Expenses✔✔
P164Workers Remittances✔Primary remittance purpose
P218Real Estate Investment✔✔
P18Gift✔Personal gift transfers
P19Insurance Payment✔✔
P196Trade✔✔
P197Personal Travel and Tours✔✔
P20Equity Investment✔
P200Emergency Needs✔Cannot be accepted in all cases
P201Regular Labor Transfer (Expatriates)✔
P204Transfer of Funds Between Persons✔Normal & juridical persons
P205Own Account Transfer✔✔
P21Securities Investment✔
P156Wages and Salaries in Kind✔Benefits to employees
P22Accommodation Expenses✔✔
P25Payment Towards Business Travel✔✔
P50Private Visits✔
P52Business Travel✔
P53Fee for Global Conferences✔✔
P56Medical Treatment Abroad✔✔
P57Overseas Education✔✔
P64Visa Fees✔✔
P65Processing Fees for Registration✔✔
P66Registration / Subscription / Membership✔✔
P155Wages and Salaries in Cash✔
P15Others✔✔✔✔Catch-all
P74Rent Payments✔✔
P76Agency Commission✔
P77Intra Group Dividends✔
P79Financial Services✔✔
P80Corporate Card Payment✔
P81Merchant Settlement✔
P82Credit Card Payments✔
P83Goods Bought or Sold✔✔
P84Processing, Repair and Maintenance✔
P88Food and Live Animals✔Trade goods
P94Manufactured Goods✔
P95Machinery and Transport Equipment✔
P104Passenger Fare✔✔
SAVGSavings✔Personal savings transfer
SUPPSupplier Payment✔
Source of income
Relationship
Beneficiary account type
Sender ID type

Process for INR#

1
Create the sender entity
2
Check KYC status for the INR routing id
3
Get KYC requirements
4
Submit sender identity information (no documents, no payment)
5
Add the beneficiary bank account under the sender entity
6
Simulate with purpose, source of income and relationship
INR routing id — production infrap_04d83956_5610_43de_bba7_c3dd8c6aaf92, sandbox infrap_2c8c74bd_845c_4988_b4e3_8af89da10d6d.

Across all jurisidcitions, the overall process is as follows:#

1
Check KYC/KYB status of created Entity
2
Make KYC/KYB payment for the applicable jurisdictions
3
Get KYC/KYB requirements
4
Submit KYC/KYB

1. Check KYC/KYB status of created Entity#

For the entity created first get the list of routing ids from the endpoint KYC status. This will give the jurisdictions which Zynk has enabled for partner’s customers. Remember that Zynk treats its entities as global scope so one entity can work across multiple jurisdictions as long as they get KYCed separately for each jurisdiction.
Check for supportedRoutes field in the response of the API to undertsand which jursidictions are enabled and are of interest. The field will have sub sections of from and to jurisdictions. For example, if partners want to provide PHP payout route to their customers, then the supportedRoute will have from jursidiction as Solana(USDT/USDC) and destination jurisdiction as PHP.
Below is a list of different routing ids as per jursidictions:
PartnerProductionSandbox
AEDinfrap_0af8b379_fcd1_4be7_b682_e916642eb7cfinfrap_cd22afee_2237_405e_a38e_abaeed105a8a
BRL/ARS/MXNinfrap_33958bae_3803_4fd6_bbcf_758f54f7e06finfrap_73069ca9_e874_4aac_8eac_b27c2c2d6a89
PHPinfrap_76ba78e9_274c_4cd3_8b33_ae4f07151389infrap_32ed2473_7738_4e29_a617_d8cc918591f8
INRinfrap_04d83956_5610_43de_bba7_c3dd8c6aaf92infrap_2c8c74bd_845c_4988_b4e3_8af89da10d6d
USDinfrap_eda14401_2372_461e_bffb_4bdf3a7ee651infrap_6ba200fc_094c_476d_bf38_8e3964f49f75
{
  "success": true,
  "data": {
    "message": "KYC status retrieved successfully",
    "status": 
        [
      {
        "routingId": "provider123",
        "supportedRoutes": [
          {
            "from": {
              "jurisdictionId": "US",
              "jurisdictionName": "United States",
              "jurisdictionType": "country",
              "currency": "USD"
            },
            "to": {
              "jurisdictionId": "UK",
              "jurisdictionName": "United Kingdom",
              "jurisdictionType": "country",
              "currency": "GBP"
            }
          }
        ],
        "kycStatus": "approved",
        "routingEnabled": true,
        "kycFees": {
          "network": "Solana Mainnet (Chain ID: 101)",
          "currency": "USDC",
          "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
          "amount": 25,
          "toWalletAddress": "5FHgW3kXmAS2r6pNzV5C8JNz3xZyeZaJgHSzBGta3sVu",
          "paymentReceived": true
        }
      }
    ]
  }
}
KYC/KYB Status Values
StatusDescription
not_startedThe KYC process has not been initiated for this entity and routing provider
initiatedThe KYC process has been started but not yet completed
reviewingKYC information has been submitted and is under review
additional_info_requiredAdditional information is required to complete the KYC process
rejectedThe KYC verification has been rejected
approvedThe KYC verification has been approved

2. Make KYC/KYB payment#

Zynk collects KYC/KYB fee upfront for every registration in each jurisdiction. Partners will have to submit KYC/KYB fees before initiating a KYC/B after checking status.
Zynk offers two ways to make KYC/KYB payments.
Direct or Pooled
If status is not_started and paymentReceived is false:
Direct Payment
Send the specified amount to the toWalletAddress using the instructions in kycFees.
Prepaid Payment
Use your prepaid balance instead (fees will be automatically deducted during submission).
More details here
KYC/KYB payments will only and always be processed on the Solana Network, using either USDC or USDT tokens.
Sandbox Environment: Solana Devnet (Chain ID: 103)
Production Environment: Solana Mainnet (Chain ID: 101)

3. Get KYC/KYB Requirements#

Zynk serves the KYC/KYB Requirements in a dynamic fashion based on the jurisdiction and KYC/KYB type i.e doucments or link
When you request requirements using the Requirements API you get an object which can be used to construct a payload for submitting KYC/KYB in the submit step. Please go through the API endpoint page to understand the object structure in detail.

4. Submit KYC/KYB data#

Include all required fields and the transaction hash(only for Direct payment method . Check the Submit KYC/KYB for more detailed information on submission requirements.
In certain cases of link based KYC/KYB the response of this API will give the link which your customers need to access to submit their documents and other information.
Usage Notes
Once paymentReceived is true, you don't need to make another payment for that entity and routing provider
If status becomes additional_info_required, fetch updated requirements and submit only the requested additional information. More details here
The KYC/KYB process may involve multiple rounds of review. Always check for supported routes to ensure the entity can transact on the desired corridors
For high-volume KYC processing, the Prepaid option provides a more streamlined experience

Getting documents back in case of link based KYC/KYB#

In cases where partners expose a link for their customers to complete the KYC/KYB, it becomes essential for partners to get the documents/data that customers are submitting on the link and store it in their system.
Zynk provides an API to get the KYC/KYB data. This is subjective to jurisdictions and may not be available in all jurisdictions.
Partners can call GET KYC documents endpoint to fetch the data.
Example response for USD Corridor:
{
    "success": true,
    "data": {
        "name": {
            "first": "ALEXANDER J",
            "middle": null,
            "last": "SAMPLE",
            "full": "ALEXANDER J SAMPLE"
        },
        "address": {
            "street": "600 CALIFORNIA STREET",
            "street2": "22 b",
            "city": "SAN FRANCISCO",
            "subdivision": "CA",
            "postal_code": "94109",
            "country_code": "US"
        },
        "dateOfBirth": "1977-07-17",
        "phoneNumber": "+12345678900",
        "emailAddress": "alex.sample@gmail.com",
        "files": [
            {
                "type": "drivers_license_back",
                "fileName": "drivers_license_back.jpg",
                "contentType": "image/jpeg",
                "downloadUrl": "https://dummy-link.com/drivers_license_back.jpg"
            },
            {
                "type": "drivers_license_front",
                "fileName": "drivers_license_front.jpg",
                "contentType": "image/jpeg",
                "downloadUrl": "https://dummy-link.com/drivers_license_front.jpg"
            },
            {
                "type": "selfie_left",
                "fileName": "selfie_left.jpg",
                "contentType": "image/jpeg",
                "downloadUrl": "https://dummy-link.com/selfie_left.jpg"
            },
            {
                "type": "selfie_right",
                "fileName": "selfie_right.jpg",
                "contentType": "image/jpeg",
                "downloadUrl": "https://dummy-link.com/selfie_right.jpg"
            },
            {
                "type": "selfie",
                "fileName": "selfie.jpg",
                "contentType": "image/jpeg",
                "downloadUrl": "https://dummy-link.com/selfie.jpg"
            }
        ],
        "identificationNumbers": [
            {
                "type": "drivers_license",
                "issuingCountryCode": "US",
                "identificationNumber": "I1234562"
            },
            {
                "type": "social_security_number",
                "issuingCountryCode": "US",
                "identificationNumber": "123-12-1234"
            }
        ]
    }
}
Important Considerations for Download URLs
The downloadUrl provided in the response is not valid indefinitely. It is a pre-signed URL with a limited lifespan. Therefore, you must not store these URLs. Instead, it is crucial to download the documents immediately after receiving the API response.
Modified at 2026-08-18 12:59:42
Previous
Entities/Customers
Next
RFI Scenarios for Customers
Built with