Build payments into your product with MyTPE Pay. Start integrating →
Logo
Get started

KYC — identification, brand & bank account

Submit the three building blocks MyTPE verifies before you can accept payments.

Before you can charge anyone, MyTPE must verify who you are. KYC is made of three resources, and a payment instance cannot be created until all three are accepted.

Each resource is reviewed by a MyTPE compliance officer and moves through the same status set: pendingaccepted or refused. When something is refused, the reason field explains why so you can fix and resubmit. See Statuses & enums for the full list.

Creating an identification automatically creates a first brand with the same name, so you usually only need to add a logo to it rather than create a brand from scratch.

Identification

The identification is your legal/commercial dossier. It references an establishment type, an authorization type, an optional activity, and an optional registration document (PDF).

Create an identification
curl -X POST https://api.mytpe.appp/api/ext/identifications \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET" \
  -F "name=Boutique Centrale SARL" \
  -F "establishment_type_id=2f1c..." \
  -F "authorization_type_id=7a9d..." \
  -F "activity_id=c4e2..." \
  -F "identification_file=@registre-commerce.pdf"
201 Created
{
  "data": {
    "id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
    "name": "Boutique Centrale SARL",
    "status": "pending",
    "reason": null,
    "has_file": true,
    "created_at": "2026-06-09T10:00:00.000000Z"
  }
}

Poll GET /identifications/{id} (or listen for the identification.approved / identification.rejected webhook) until status is accepted.

→ API: Identifications

Brand

A brand is what your customers see on the payment page — a display name, a logo, and a file (a supporting document). A brand belongs to one identification.

Create a brand
curl -X POST https://api.mytpe.appp/api/ext/brands \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET" \
  -F "name=Boutique Centrale" \
  -F "identification_id=0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f" \
  -F "logo=@logo.png" \
  -F "file=@brand-doc.png"
201 Created
{
  "data": {
    "id": "1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
    "name": "Boutique Centrale",
    "status": "pending",
    "reason": null,
    "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
    "created_at": "2026-06-09T10:05:00.000000Z"
  }
}

→ API: Brands

Bank account

This is the RIB that settlements are paid into. The account_number is the 20‑digit Algerian RIB; MyTPE derives the bank_code from it. A bank account belongs to one identification.

Create a bank account
curl -X POST https://api.mytpe.appp/api/ext/bank-accounts \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "account_number": "00799999000123456789",
    "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f"
  }'
201 Created
{
  "data": {
    "id": "2d3e4f5a-6b7c-8d9e-0f1a-2b3c4d5e6f7a",
    "account_number": "00799999000123456789",
    "bank_code": "007",
    "status": "pending",
    "reason": null,
    "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
    "created_at": "2026-06-09T10:10:00.000000Z"
  }
}

→ API: Bank accounts

When KYC is complete

Once your identification, brand, and bank account all read accepted, you can request a payment instance.

You cannot edit or delete a KYC resource that a payment instance already depends on. Detach or delete the instance first.

On this page