Skip to main content

KYB - EUR (Fiat)

To operate EUR fiat on a company subaccount, submit KYB EUR after KYB Level 1 has been approved.

info

KYB Level 1 must be approved before KYB EUR can be requested. See KYB Level 1 (Web SDK) or KYB Level 1 (API).

Sandbox Limitation

EUR fiat rails are not available in the sandbox environment. Submitting KYB EUR in sandbox will appear to succeed, but eurUnlocked on GET /v2/account/metadata will never become true. To test EUR flows end-to-end, use the production environment with a controlled test account.

The EUR rail has the same document prerequisites as the USD rail (Proof of Financial Capacity approved, Proof of Revenue uploaded).


Prerequisites​

ItemHow it is provided
Approved KYB Level 1Completed via KYB Level 1 (Web SDK) or KYB Level 1 (API).
CERTIFICATE-OF-INCORPORATION document uploadedUploaded in Step 2 of KYB Level 1 (API).
PROOF-OF-FINANCIAL-CAPACITY document uploaded & approvedSubmit for verification via KYB USD - Step 1. The approved PoFC is reused for the EUR rail.
PROOF-OF-REVENUE document uploadedUploaded via POST /v2/documents with documentType: PROOF-OF-REVENUE.
At least one UBO with hasControlRegistered at KYB Level 1.
Each UBO has an identification document of type ID, PASSPORT, or DRIVERS-LICENSEFor the EUR rail, RESIDENCE-PERMIT is not accepted; use one of the three types above.
Full company address on fileProvided at KYB Level 1; can be updated via the Address API.
Company websiteProvided at KYB Level 1; if blank, pass website in the KYB EUR request body.

Submit KYB EUR​

HTTP POST Request​

https://api.sandbox.avenia.io:10952/v2/kyc/eur/api?subAccountId={subAccountId}

Fields​

FieldTypeRequiredDescription
businessTypestringYesOne of: cooperative, corporation, llc, other, partnership, sole_prop, trust.
businessIndustriesarrayYesArray of NAICS industry codes (e.g. ["519290"]). Must contain at least one valid code.
proofOfRevenueDocIdstringYesID of the PROOF-OF-REVENUE document (must have ready: true).
websitestringCond.Required only if the company website was not captured at KYB Level 1.

Sample JSON Body​

{
"businessType": "llc",
"businessIndustries": ["519290"],
"proofOfRevenueDocId": "5f8d3c16-b2e7-4a9f-c834-1e6b0d5f2a91"
}

JSON Response​

{
"attemptId": "8a1c4f92-6d3e-4a7f-e358-7c1f0a8e4b63"
}

cURL Example​

curl -X POST "https://api.sandbox.avenia.io:10952/v2/kyc/eur/api?subAccountId=a3f2c891-7b4d-4e6a-9d15-c82e0f3a1b57" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"businessType": "llc",
"businessIndustries": ["519290"],
"proofOfRevenueDocId": "5f8d3c16-b2e7-4a9f-c834-1e6b0d5f2a91"
}'

Poll the KYB EUR Attempt​

GET https://api.sandbox.avenia.io:10952/v2/kyc/attempts/{attemptId}?subAccountId={subAccountId}
{
"attempt": {
"id": "8a1c4f92-6d3e-4a7f-e358-7c1f0a8e4b63",
"levelName": "eur-kyb",
"status": "COMPLETED",
"result": "APPROVED",
"resultMessage": "",
"retryable": false,
"createdAt": "2026-03-20T13:21:36.670096Z",
"updatedAt": "2026-03-20T13:21:36.670096Z"
}
}

Once result is APPROVED, EUR rail access is active for the subaccount.