Create users
Register Cobru users from your product, fetch categories, and complete email and phone verification.
This page consolidates legacy Cobru documentation. Before using it in production, confirm current required fields, document codes, and verification behavior with your Cobru team.
Creation endpoint
POST https://dev.cobru.co/user/This endpoint registers a new user in the platform.
brand field
The brand field identifies the brand under which the user is registered. This value links
the registration to a company, partner, or specific product.
{
"brand": "MY_BRAND"
}username field
During registration, username is sent with the user's phone number or another identifier if
your integration requires it.
{
"username": "09906786442"
}After the user is created, Cobru may return the username with the brand prefix.
{
"username": "MY_BRAND-09906786442"
}The brand prefix on username applies in the response or final stored value, not in the
initial creation payload.
Categories and subcategories
Before registering the user, fetch the categories and subcategories that will be sent in the payload.
Get categories
GET https://prod.cobru.co/category/{
"error": false,
"message": [
{
"id": 99,
"name": "Actividades De Organizaciones Y Entidades Extraterritoriales."
},
{
"id": 98,
"name": "Actividades No Diferenciadas De Los Hogares Individuales Como Productores De Bienes Y Servicios Para Uso Propio."
},
{
"id": 97,
"name": "Actividades De Los Hogares Individuales Como Empleadores De Personal Doméstico."
},
{
"id": 96,
"name": "Otras Actividades De Servicios Personales."
}
]
}Get subcategories by category
GET https://prod.cobru.co/subcategory?category_id=66{
"error": false,
"message": [
{
"id": 556,
"name": "6630 Actividades De Administración De Fondos."
},
{
"id": 555,
"name": "663 Actividades De Administración De Fondos."
},
{
"id": 554,
"name": "6629 Evaluación De Riesgos Y Daños, Y Otras Actividades De Servicios Auxiliares."
}
]
}Category rules
categorymust be sent with the selected categoryid.subcategorymust be sent with the matching subcategoryid.- Subcategories must be fetched with the previously selected
category_id.
Example payload
{
"username": "09906786442",
"first_name": "Test Testeo",
"last_name": "Apellido Testeo",
"email": "Teste@testecobruuuuu.com",
"password": "12345678",
"phone": "09906786442",
"document_type": "0",
"document_number": "11111122223",
"country_code": "+57",
"gender": 2,
"date_birth": "2001-08-08",
"type_person": 1,
"date_expiration": "2019-08-08",
"subcategory": 745,
"profile_picture": "url_profile",
"documents": [
{
"id": 2,
"url": "url_documento"
},
{
"id": 1,
"url": "url_documento"
},
{
"id": 3,
"url": "url_documento"
}
],
"category": 99,
"platform": "ios",
"referal_code": "",
"brand": "MY_BRAND"
}Main fields
| Field | Type | Description |
|---|---|---|
username | string | User sent during registration, usually the phone number. |
first_name | string | User first name. |
last_name | string | User last name. |
email | string | User email address. |
password | string | User password. |
phone | string | Phone number. |
document_type | string | Document type. |
document_number | string | Document number. |
country_code | string | Country calling code. |
gender | number | User gender. |
date_birth | string | Birth date. |
type_person | number | Person type. |
date_expiration | string | Issue or expiration date according to system logic. |
subcategory | number | Selected subcategory ID. |
profile_picture | string | Profile picture URL. |
documents | array | User document array. |
category | number | Selected category ID. |
platform | string | Platform where the user is registered. |
referal_code | string | Referral code, if applicable. |
brand | string | Brand identifier associated with the registration. |
documents structure
The documents field receives an array of objects for the user's documents. Each object must
include:
id: document type identifier.url: uploaded document URL.
[
{
"id": 2,
"url": "url_documento"
},
{
"id": 1,
"url": "url_documento"
}
]Expected response
When the information is valid and the process completes successfully, the user is created with
a 201 response.
{
"error": false,
"message": {
"email": "Teste@testecobruuuuu.com",
"first_name": "Edeiver Testeo",
"gender": null,
"gender_legal": null,
"id": 2093,
"last_name": "Apellido Testeo",
"username": "MY_BRAND-09906786442"
},
"status": 201
}Email and phone confirmation
To send confirmation codes, call the confirmation request service first.
POST http://dev.cobru.co/request_confirmation/
Content-Type: application/json| Field | Type | Description |
|---|---|---|
phone | boolean | Indicates whether the code will be sent to the phone. |
email | boolean | Indicates whether the code will be sent to the email address. |
Then confirm each channel with a separate API call.
Confirm email
POST http://dev.cobru.co/verify_email/
Content-Type: application/json| Field | Type | Description |
|---|---|---|
code | integer | Code received by email. |
Confirm phone
POST http://dev.cobru.co/verify_phone/
Content-Type: application/json| Field | Type | Description |
|---|---|---|
code | integer | Code received by phone. |
Important notes
documentsmust be sent as an array of objects.- Each document must be sent with a valid URL in the
urlfield. profile_picturemust also be sent as a valid URL.brandmust contain the brand identifier associated with the registration.- The initial payload
usernameis sent without the brand prefix. - Cobru may return or store the final
usernamewith the brand prefix after registration. - Categories and subcategories must be fetched beforehand so the correct IDs are sent.
Use the user in transfers
After registration and verification, you can use the user in money transfer flows:
The user sending money must have email and phone in a verified state.