KYC - COP (Fiat)
To operate COP fiat (Colombian Peso) with Avenia, the user must complete COP KYC in addition to standard identity verification.
KYC Level 1 must be completed and approved before you can request COP KYC. Complete Level 1 first using the KYC Level 1 guide.
You can request COP KYC from the Avenia dashboard or via the API described below.
The status lifecycle of a COP KYC attempt is the same as for KYC Level 1 (for example PENDING, PROCESSING, COMPLETED, with result APPROVED or REJECTED). Track progress with List All KYC Attempts and Get KYC Attempt by ID in the KYC Level 1 guide. If webhooks are enabled for your account, you will receive the same KYC event types as for other KYC flows.
COP KYC is processed by Mural Pay, our COP fiat rail provider. When approval completes, the user's COP rail is unlocked and they can create COP payins / payouts via the Operations endpoints.
Request COP KYC via API
Use this endpoint to start a COP KYC request programmatically. No request body is required.
HTTP POST Request
https://api.sandbox.avenia.io:10952/v2/kyc/cop/api
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subAccountId | string | No | When requesting COP KYC for a subaccount, pass the subaccount ID as a query parameter. |
cURL Example (main account)
curl -X POST "https://api.sandbox.avenia.io:10952/v2/kyc/cop/api" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
cURL Example (subaccount)
curl -X POST "https://api.sandbox.avenia.io:10952/v2/kyc/cop/api?subAccountId=1ee0a663-922b-4389-9f84-074ccff7085d" \
-H "Authorization: Bearer eyJhdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
For subaccounts, the same subAccountId query parameter pattern applies when listing or fetching KYC attempts for that user.
Response
201 Created with a JSON body identifying the KYC attempt. Poll the attempt via the Level 1 endpoints to watch the status transition to COMPLETED / APPROVED.
Scenarios
The endpoint is idempotent per user and adapts to the current Mural KYC state:
| Current state for this user | What happens on POST /v2/kyc/cop/api |
|---|---|
| No Mural KYC yet | A new Mural organization is created, KYC documents from Level 1 are submitted to Mural, and a new KYC attempt is returned. You will receive KYC_STARTED → KYC_PROCESSING → KYC_COMPLETED webhooks. |
Mural KYC already approved (e.g. user previously passed for ARS or MXN) | Skips the Mural round-trip, enables the COP rail immediately, and emits the full KYC_STARTED → KYC_PROCESSING → KYC_COMPLETED (APPROVED) webhook lifecycle so the client experience is identical. |
Mural KYC pending (still awaiting Mural verification) | Registers the COP currency as part of the in-flight workflow and returns the attempt ID. Approval webhooks fire when Mural finishes. |
Related documentation
- KYC Level 1 — document upload, selfie / liveness, Web SDK, and shared KYC attempt APIs
- Operations — COP to Crypto / Crypto to COP — what the user can do once COP KYC is approved
- Beneficiary Bank Accounts — COP — required to receive COP via payout
- Webhook events — KYC subscription and event types