Documentation

Customers (KYB)

Submit business-customer KYB packages for Bitstac review, then react to approve or reject webhooks.

Lifecycle

  1. draft — create and patch profile fields; upload documents and stakeholders.
  2. under_review — after a successful submit.
  3. approved or rejected — after Bitstac compliance review (webhook fired).
  4. From rejected, you may update the package and submit again.

Only type: business customers are supported today. Use external_reference to store your own CRM id.

Create a draft

curl -X POST "https://api.bitstac.io/api/v1/merchant/customers" \
  -H "Authorization: Bearer $BITSTAC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{  "type": "business",  "external_reference": "crm-1001",  "business_name": "Northwind Trading Ltd",  "registration_country": "NG",  "business_email": "ops@northwind.example"}'

Documents

Upload via multipart POST /customers/{id}/documents. Allowed types: cac, memart, status_report, scuml, proof_of_funds, utility_bill. Files: PDF/JPEG/PNG, max 5 MB.

Stakeholders

At least one stakeholder is required before submit, each with identity and address document files (identity_document, address_document).

Submit checklist

Submit fails with kyb_incomplete until gaps are filled. Required at minimum:

  • Profile: business_name, registration_country, registration_number, business_address, business_country, and business_email or business_phone
  • Documents: cac, proof_of_funds, and either memart or status_report
  • At least one stakeholder with both identity and address files

Webhooks

On approve/reject Bitstac sends merchant.customer.approved / merchant.customer.rejected. See Webhooks.

Endpoint field reference: Customers API.