Build payments into your product with MyTPE Pay. Start integrating →
Logo
API reference

Brands

Manage the customer-facing identities (name + logo) shown on payment pages.

A brand is what customers see on the payment page — a display name and a logo. Every brand belongs to one identification and must be accepted before it can back a payment instance.

Statuses reference

Brand status values (pending, accepted, refused) are defined in Statuses & enums → KYC.

Endpoints

MethodPathDescription
GET/brandsList brands (paginated).
POST/brandsCreate a brand.
GET/brands/{id}Retrieve one brand.
PUT/brands/{id}Update a brand.
DELETE/brands/{id}Delete a brand.

The brand object

FieldTypeDescription
idstring (uuid)Unique identifier.
namestringDisplay name shown to customers.
logostring | nullPublic logo URL.
filestring | nullSupporting document path.
statusstringKYC status — see statuses.
reasonstring | nullReason when refused.
identification_idstring (uuid)Parent identification.
identificationobject{ id, name } when loaded.
created_at / updated_atstring (ISO 8601)Timestamps.

List brands

Query parameters: search, sort_by, sort_dir, per_page.

Request
curl "https://api.mytpe.appp/api/ext/brands?search=centrale&per_page=15" \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET"
200 OK
{
  "data": [
    {
      "id": "1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
      "name": "Boutique Centrale",
      "logo": "https://api.mytpe.appp/storage/brands/1c2d.../logo.png",
      "file": "brands/1c2d.../doc.png",
      "status": "accepted",
      "reason": null,
      "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
      "created_at": "2026-06-09T10:05:00.000000Z",
      "updated_at": "2026-06-09T11:00:00.000000Z"
    }
  ],
  "links": { "first": "...?page=1", "last": "...?page=1", "prev": null, "next": null },
  "meta": { "current_page": 1, "from": 1, "to": 1, "per_page": 15, "last_page": 1, "total": 1 }
}

Create a brand

Send as multipart/form-data.

FieldTypeRequiredNotes
namestringyesMax 255.
identification_iduuidyesMust be an existing identification.
logofileyesImage, max 5 MB.
filefileyesImage, max 5 MB.
Request
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",
    "logo": "https://api.mytpe.appp/storage/brands/1c2d.../logo.png",
    "file": "brands/1c2d.../doc.png",
    "status": "pending",
    "reason": null,
    "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
    "created_at": "2026-06-09T10:05:00.000000Z",
    "updated_at": "2026-06-09T10:05:00.000000Z"
  }
}

Retrieve a brand

Request
curl https://api.mytpe.appp/api/ext/brands/1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET"
200 OK
{
  "data": {
    "id": "1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
    "name": "Boutique Centrale",
    "logo": "https://api.mytpe.appp/storage/brands/1c2d.../logo.png",
    "file": "brands/1c2d.../doc.png",
    "status": "accepted",
    "reason": null,
    "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
    "identification": { "id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f", "name": "Boutique Centrale SARL" },
    "created_at": "2026-06-09T10:05:00.000000Z",
    "updated_at": "2026-06-09T11:00:00.000000Z"
  }
}

Update a brand

Accepts the same fields as create (as multipart/form-data).

Request
curl -X PUT https://api.mytpe.appp/api/ext/brands/1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET" \
  -F "name=Boutique Centrale Alger" \
  -F "logo=@new-logo.png"
200 OK
{
  "data": {
    "id": "1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
    "name": "Boutique Centrale Alger",
    "logo": "https://api.mytpe.appp/storage/brands/1c2d.../new-logo.png",
    "status": "pending",
    "reason": null,
    "identification_id": "0b1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
    "created_at": "2026-06-09T10:05:00.000000Z",
    "updated_at": "2026-06-09T12:00:00.000000Z"
  }
}

Delete a brand

Request
curl -X DELETE https://api.mytpe.appp/api/ext/brands/1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f \
  -H "X-Api-Key: $MYTPE_API_KEY" \
  -H "X-Api-Secret: $MYTPE_API_SECRET"
200 OK
{ "message": "Brand deleted." }

A brand that a payment instance depends on cannot be deleted while the instance exists.

On this page