curl https://api.onepay.la/v1/companies \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "Content-Type: application/json" \
-H "x-idempotency: company-001" \
-d '{
"type": "organization",
"name": "Acme Inc",
"legal_name": "Acme Inc S.A.S",
"document_type": "NIT",
"document_number": "123456789-1",
"phone": "+573001234567",
"email": "contacto@acme.co",
"website": "https://acme.co",
"economic_activity": "0111",
"industry": "0742",
"sales": 35,
"fiscal_responsibilities": ["O_47"],
"retention_rules": {
"iva": true,
"ica": false,
"fuente": true
},
"city_id": 1,
"address": {
"address": "Calle 100 #15-20",
"hint": "Oficina 301",
"zipcode": "170004"
},
"documents": {
"rut": "https://storage.example.com/rut.pdf",
"ccc": "https://storage.example.com/ccc.pdf",
"dni": "https://storage.example.com/dni.pdf",
"bank": "https://storage.example.com/bank.pdf",
"simple": "https://storage.example.com/simple.pdf"
},
"company_owner": {
"name": "Juan",
"last_name": "Pérez",
"phone": "+573001234568",
"email": "juan@acme.co",
"document_type": "cc",
"dni": "10000001"
},
"account": {
"type": "savings",
"bank_id": "9da58912-101d-46f8-86c9-20a52119c0bf",
"number": "1234567890",
"terms": true
}
}'
const response = await fetch('https://api.onepay.la/v1/companies', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
'x-idempotency': 'company-001'
},
body: JSON.stringify({
type: 'organization',
name: 'Acme Inc',
legal_name: 'Acme Inc S.A.S',
document_type: 'NIT',
document_number: '123456789-1',
phone: '+573001234567',
email: 'contacto@acme.co',
website: 'https://acme.co',
economic_activity: '0111',
industry: '0742',
sales: 35,
fiscal_responsibilities: ['O_47'],
retention_rules: { iva: true, ica: false, fuente: true },
city_id: 1,
address: {
address: 'Calle 100 #15-20',
hint: 'Oficina 301',
zipcode: '170004'
},
documents: {
rut: 'https://storage.example.com/rut.pdf',
ccc: 'https://storage.example.com/ccc.pdf',
dni: 'https://storage.example.com/dni.pdf',
bank: 'https://storage.example.com/bank.pdf',
simple: 'https://storage.example.com/simple.pdf'
},
company_owner: {
name: 'Juan',
last_name: 'Pérez',
phone: '+573001234568',
email: 'juan@acme.co',
document_type: 'cc',
dni: '10000001'
},
account: {
type: 'savings',
bank_id: '9da58912-101d-46f8-86c9-20a52119c0bf',
number: '1234567890',
terms: true
}
})
});
const company = await response.json();
console.log(company);
import requests
response = requests.post(
'https://api.onepay.la/v1/companies',
headers={
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
'x-idempotency': 'company-001'
},
json={
'type': 'organization',
'name': 'Acme Inc',
'legal_name': 'Acme Inc S.A.S',
'document_type': 'NIT',
'document_number': '123456789-1',
'phone': '+573001234567',
'email': 'contacto@acme.co',
'website': 'https://acme.co',
'economic_activity': '0111',
'industry': '0742',
'sales': 35,
'fiscal_responsibilities': ['O_47'],
'retention_rules': {'iva': True, 'ica': False, 'fuente': True},
'city_id': 1,
'address': {
'address': 'Calle 100 #15-20',
'hint': 'Oficina 301',
'zipcode': '170004'
},
'documents': {
'rut': 'https://storage.example.com/rut.pdf',
'ccc': 'https://storage.example.com/ccc.pdf',
'dni': 'https://storage.example.com/dni.pdf',
'bank': 'https://storage.example.com/bank.pdf',
'simple': 'https://storage.example.com/simple.pdf'
},
'company_owner': {
'name': 'Juan',
'last_name': 'Pérez',
'phone': '+573001234568',
'email': 'juan@acme.co',
'document_type': 'cc',
'dni': '10000001'
},
'account': {
'type': 'savings',
'bank_id': '9da58912-101d-46f8-86c9-20a52119c0bf',
'number': '1234567890',
'terms': True
}
}
)
company = response.json()
print(company)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/companies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_test_xxx",
"Content-Type: application/json",
"x-idempotency: company-001"
],
CURLOPT_POSTFIELDS => json_encode([
"type" => "organization",
"name" => "Acme Inc",
"legal_name" => "Acme Inc S.A.S",
"document_type" => "NIT",
"document_number" => "123456789-1",
"phone" => "+573001234567",
"email" => "contacto@acme.co",
"website" => "https://acme.co",
"economic_activity" => "0111",
"industry" => "0742",
"sales" => 35,
"fiscal_responsibilities" => ["O_47"],
"retention_rules" => ["iva" => true, "ica" => false, "fuente" => true],
"city_id" => 1,
"address" => [
"address" => "Calle 100 #15-20",
"hint" => "Oficina 301",
"zipcode" => "170004"
],
"documents" => [
"rut" => "https://storage.example.com/rut.pdf",
"ccc" => "https://storage.example.com/ccc.pdf",
"dni" => "https://storage.example.com/dni.pdf",
"bank" => "https://storage.example.com/bank.pdf",
"simple" => "https://storage.example.com/simple.pdf"
],
"company_owner" => [
"name" => "Juan",
"last_name" => "Pérez",
"phone" => "+573001234568",
"email" => "juan@acme.co",
"document_type" => "cc",
"dni" => "10000001"
],
"account" => [
"type" => "savings",
"bank_id" => "9da58912-101d-46f8-86c9-20a52119c0bf",
"number" => "1234567890",
"terms" => true
]
])
]);
$response = curl_exec($curl);
curl_close($curl);
$company = json_decode($response, true);
print_r($company);
?>
{
"id": "9da58912-101d-46f8-86c9-20a52119c0bf",
"name": "Acme Inc",
"legal_name": "Acme Inc S.A.S",
"phone": "+573001234567",
"document_type": "NIT",
"document_number": "123456789-1",
"status": "pending",
"industry": "0742",
"currency": "COP"
}
{
"message": "El campo nombre es obligatorio. (y 5 errores más)",
"code": 10001,
"code_name": "validation_error",
"errors": {
"name": ["El campo nombre es obligatorio."],
"document_type": ["El tipo de documento no es válido para el tipo de compañía seleccionado."],
"fiscal_responsibilities": ["El campo fiscal responsibilities es obligatorio."]
}
}
{
"message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
"code": 10003,
"code_name": "idempotency_error"
}
Crea una nueva empresa asociada a tu cuenta. Los usuarios con permiso switch_company serán vinculados automáticamente como miembros.
POST
/
companies
curl https://api.onepay.la/v1/companies \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "Content-Type: application/json" \
-H "x-idempotency: company-001" \
-d '{
"type": "organization",
"name": "Acme Inc",
"legal_name": "Acme Inc S.A.S",
"document_type": "NIT",
"document_number": "123456789-1",
"phone": "+573001234567",
"email": "contacto@acme.co",
"website": "https://acme.co",
"economic_activity": "0111",
"industry": "0742",
"sales": 35,
"fiscal_responsibilities": ["O_47"],
"retention_rules": {
"iva": true,
"ica": false,
"fuente": true
},
"city_id": 1,
"address": {
"address": "Calle 100 #15-20",
"hint": "Oficina 301",
"zipcode": "170004"
},
"documents": {
"rut": "https://storage.example.com/rut.pdf",
"ccc": "https://storage.example.com/ccc.pdf",
"dni": "https://storage.example.com/dni.pdf",
"bank": "https://storage.example.com/bank.pdf",
"simple": "https://storage.example.com/simple.pdf"
},
"company_owner": {
"name": "Juan",
"last_name": "Pérez",
"phone": "+573001234568",
"email": "juan@acme.co",
"document_type": "cc",
"dni": "10000001"
},
"account": {
"type": "savings",
"bank_id": "9da58912-101d-46f8-86c9-20a52119c0bf",
"number": "1234567890",
"terms": true
}
}'
const response = await fetch('https://api.onepay.la/v1/companies', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
'x-idempotency': 'company-001'
},
body: JSON.stringify({
type: 'organization',
name: 'Acme Inc',
legal_name: 'Acme Inc S.A.S',
document_type: 'NIT',
document_number: '123456789-1',
phone: '+573001234567',
email: 'contacto@acme.co',
website: 'https://acme.co',
economic_activity: '0111',
industry: '0742',
sales: 35,
fiscal_responsibilities: ['O_47'],
retention_rules: { iva: true, ica: false, fuente: true },
city_id: 1,
address: {
address: 'Calle 100 #15-20',
hint: 'Oficina 301',
zipcode: '170004'
},
documents: {
rut: 'https://storage.example.com/rut.pdf',
ccc: 'https://storage.example.com/ccc.pdf',
dni: 'https://storage.example.com/dni.pdf',
bank: 'https://storage.example.com/bank.pdf',
simple: 'https://storage.example.com/simple.pdf'
},
company_owner: {
name: 'Juan',
last_name: 'Pérez',
phone: '+573001234568',
email: 'juan@acme.co',
document_type: 'cc',
dni: '10000001'
},
account: {
type: 'savings',
bank_id: '9da58912-101d-46f8-86c9-20a52119c0bf',
number: '1234567890',
terms: true
}
})
});
const company = await response.json();
console.log(company);
import requests
response = requests.post(
'https://api.onepay.la/v1/companies',
headers={
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
'x-idempotency': 'company-001'
},
json={
'type': 'organization',
'name': 'Acme Inc',
'legal_name': 'Acme Inc S.A.S',
'document_type': 'NIT',
'document_number': '123456789-1',
'phone': '+573001234567',
'email': 'contacto@acme.co',
'website': 'https://acme.co',
'economic_activity': '0111',
'industry': '0742',
'sales': 35,
'fiscal_responsibilities': ['O_47'],
'retention_rules': {'iva': True, 'ica': False, 'fuente': True},
'city_id': 1,
'address': {
'address': 'Calle 100 #15-20',
'hint': 'Oficina 301',
'zipcode': '170004'
},
'documents': {
'rut': 'https://storage.example.com/rut.pdf',
'ccc': 'https://storage.example.com/ccc.pdf',
'dni': 'https://storage.example.com/dni.pdf',
'bank': 'https://storage.example.com/bank.pdf',
'simple': 'https://storage.example.com/simple.pdf'
},
'company_owner': {
'name': 'Juan',
'last_name': 'Pérez',
'phone': '+573001234568',
'email': 'juan@acme.co',
'document_type': 'cc',
'dni': '10000001'
},
'account': {
'type': 'savings',
'bank_id': '9da58912-101d-46f8-86c9-20a52119c0bf',
'number': '1234567890',
'terms': True
}
}
)
company = response.json()
print(company)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/companies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_test_xxx",
"Content-Type: application/json",
"x-idempotency: company-001"
],
CURLOPT_POSTFIELDS => json_encode([
"type" => "organization",
"name" => "Acme Inc",
"legal_name" => "Acme Inc S.A.S",
"document_type" => "NIT",
"document_number" => "123456789-1",
"phone" => "+573001234567",
"email" => "contacto@acme.co",
"website" => "https://acme.co",
"economic_activity" => "0111",
"industry" => "0742",
"sales" => 35,
"fiscal_responsibilities" => ["O_47"],
"retention_rules" => ["iva" => true, "ica" => false, "fuente" => true],
"city_id" => 1,
"address" => [
"address" => "Calle 100 #15-20",
"hint" => "Oficina 301",
"zipcode" => "170004"
],
"documents" => [
"rut" => "https://storage.example.com/rut.pdf",
"ccc" => "https://storage.example.com/ccc.pdf",
"dni" => "https://storage.example.com/dni.pdf",
"bank" => "https://storage.example.com/bank.pdf",
"simple" => "https://storage.example.com/simple.pdf"
],
"company_owner" => [
"name" => "Juan",
"last_name" => "Pérez",
"phone" => "+573001234568",
"email" => "juan@acme.co",
"document_type" => "cc",
"dni" => "10000001"
],
"account" => [
"type" => "savings",
"bank_id" => "9da58912-101d-46f8-86c9-20a52119c0bf",
"number" => "1234567890",
"terms" => true
]
])
]);
$response = curl_exec($curl);
curl_close($curl);
$company = json_decode($response, true);
print_r($company);
?>
{
"id": "9da58912-101d-46f8-86c9-20a52119c0bf",
"name": "Acme Inc",
"legal_name": "Acme Inc S.A.S",
"phone": "+573001234567",
"document_type": "NIT",
"document_number": "123456789-1",
"status": "pending",
"industry": "0742",
"currency": "COP"
}
{
"message": "El campo nombre es obligatorio. (y 5 errores más)",
"code": 10001,
"code_name": "validation_error",
"errors": {
"name": ["El campo nombre es obligatorio."],
"document_type": ["El tipo de documento no es válido para el tipo de compañía seleccionado."],
"fiscal_responsibilities": ["El campo fiscal responsibilities es obligatorio."]
}
}
{
"message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
"code": 10003,
"code_name": "idempotency_error"
}
Headers
Token único para garantizar la idempotencia de la petición
Body
Tipo de empresa. Valores permitidos:
organization (persona jurídica), individual (persona natural).Nombre comercial de la empresa (2-255 caracteres).
Razón social de la empresa (2-255 caracteres).
Tipo de documento. Para
organization: NIT, RUT. Para individual: CC, CE, PPT, PEP, PASSPORT.Número de documento de identidad (5-30 caracteres).
Número de teléfono en formato E.164 (ejemplo:
+573001234567).Correo electrónico de la empresa.
Sitio web de la empresa (URL válida).
Código de actividad económica CIIU (4 dígitos).
Código de industria (4 dígitos).
Rango de ventas anuales en millones COP. Valores permitidos:
10, 35, 110, 240, 500.Lista de códigos de responsabilidades fiscales DIAN (ejemplo:
["O_47", "R_99_PN"]).ID de la ciudad donde opera la empresa. Consulta el endpoint de ciudades para obtener los IDs válidos.
URLs de los documentos legales de la empresa. Cada URL debe ser accesible públicamente para su descarga.
Show Propiedades
Show Propiedades
URL del RUT de la empresa.
URL del certificado de cámara de comercio. Requerido si
type es organization.URL del documento de identidad del representante legal.
URL de la certificación bancaria. Requerido si
type es organization.URL del certificado de régimen simple. Requerido si
O_47 está en fiscal_responsibilities.Información del representante legal. Requerido si
type es organization.Show Propiedades
Show Propiedades
Nombre del representante legal.
Apellido del representante legal.
Teléfono del representante en formato E.164.
Correo electrónico del representante.
Tipo de documento del representante:
cc o ce.Número de documento del representante.
Cuenta bancaria para dispersiones. Opcional.
Show Propiedades
Show Propiedades
Tipo de cuenta:
SAVINGS (ahorros) o CHECKING (corriente).UUID del banco. Consulta el endpoint de bancos para obtener los IDs válidos.
Número de cuenta bancaria (5-40 caracteres).
Aceptación de los términos y condiciones.
Los usuarios de tu empresa que tengan el permiso
switch_company serán vinculados automáticamente como miembros de la nueva empresa.Response
Identificador único de la empresa.
Nombre comercial.
Razón social.
Teléfono de la empresa.
Tipo de documento.
Número de documento.
Estado de la empresa. Las empresas nuevas se crean con estado
pending.Código de industria.
Moneda de la empresa (por defecto
COP).{
"id": "9da58912-101d-46f8-86c9-20a52119c0bf",
"name": "Acme Inc",
"legal_name": "Acme Inc S.A.S",
"phone": "+573001234567",
"document_type": "NIT",
"document_number": "123456789-1",
"status": "pending",
"industry": "0742",
"currency": "COP"
}
{
"message": "El campo nombre es obligatorio. (y 5 errores más)",
"code": 10001,
"code_name": "validation_error",
"errors": {
"name": ["El campo nombre es obligatorio."],
"document_type": ["El tipo de documento no es válido para el tipo de compañía seleccionado."],
"fiscal_responsibilities": ["El campo fiscal responsibilities es obligatorio."]
}
}
{
"message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
"code": 10003,
"code_name": "idempotency_error"
}
curl https://api.onepay.la/v1/companies \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "Content-Type: application/json" \
-H "x-idempotency: company-001" \
-d '{
"type": "organization",
"name": "Acme Inc",
"legal_name": "Acme Inc S.A.S",
"document_type": "NIT",
"document_number": "123456789-1",
"phone": "+573001234567",
"email": "contacto@acme.co",
"website": "https://acme.co",
"economic_activity": "0111",
"industry": "0742",
"sales": 35,
"fiscal_responsibilities": ["O_47"],
"retention_rules": {
"iva": true,
"ica": false,
"fuente": true
},
"city_id": 1,
"address": {
"address": "Calle 100 #15-20",
"hint": "Oficina 301",
"zipcode": "170004"
},
"documents": {
"rut": "https://storage.example.com/rut.pdf",
"ccc": "https://storage.example.com/ccc.pdf",
"dni": "https://storage.example.com/dni.pdf",
"bank": "https://storage.example.com/bank.pdf",
"simple": "https://storage.example.com/simple.pdf"
},
"company_owner": {
"name": "Juan",
"last_name": "Pérez",
"phone": "+573001234568",
"email": "juan@acme.co",
"document_type": "cc",
"dni": "10000001"
},
"account": {
"type": "savings",
"bank_id": "9da58912-101d-46f8-86c9-20a52119c0bf",
"number": "1234567890",
"terms": true
}
}'
const response = await fetch('https://api.onepay.la/v1/companies', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
'x-idempotency': 'company-001'
},
body: JSON.stringify({
type: 'organization',
name: 'Acme Inc',
legal_name: 'Acme Inc S.A.S',
document_type: 'NIT',
document_number: '123456789-1',
phone: '+573001234567',
email: 'contacto@acme.co',
website: 'https://acme.co',
economic_activity: '0111',
industry: '0742',
sales: 35,
fiscal_responsibilities: ['O_47'],
retention_rules: { iva: true, ica: false, fuente: true },
city_id: 1,
address: {
address: 'Calle 100 #15-20',
hint: 'Oficina 301',
zipcode: '170004'
},
documents: {
rut: 'https://storage.example.com/rut.pdf',
ccc: 'https://storage.example.com/ccc.pdf',
dni: 'https://storage.example.com/dni.pdf',
bank: 'https://storage.example.com/bank.pdf',
simple: 'https://storage.example.com/simple.pdf'
},
company_owner: {
name: 'Juan',
last_name: 'Pérez',
phone: '+573001234568',
email: 'juan@acme.co',
document_type: 'cc',
dni: '10000001'
},
account: {
type: 'savings',
bank_id: '9da58912-101d-46f8-86c9-20a52119c0bf',
number: '1234567890',
terms: true
}
})
});
const company = await response.json();
console.log(company);
import requests
response = requests.post(
'https://api.onepay.la/v1/companies',
headers={
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
'x-idempotency': 'company-001'
},
json={
'type': 'organization',
'name': 'Acme Inc',
'legal_name': 'Acme Inc S.A.S',
'document_type': 'NIT',
'document_number': '123456789-1',
'phone': '+573001234567',
'email': 'contacto@acme.co',
'website': 'https://acme.co',
'economic_activity': '0111',
'industry': '0742',
'sales': 35,
'fiscal_responsibilities': ['O_47'],
'retention_rules': {'iva': True, 'ica': False, 'fuente': True},
'city_id': 1,
'address': {
'address': 'Calle 100 #15-20',
'hint': 'Oficina 301',
'zipcode': '170004'
},
'documents': {
'rut': 'https://storage.example.com/rut.pdf',
'ccc': 'https://storage.example.com/ccc.pdf',
'dni': 'https://storage.example.com/dni.pdf',
'bank': 'https://storage.example.com/bank.pdf',
'simple': 'https://storage.example.com/simple.pdf'
},
'company_owner': {
'name': 'Juan',
'last_name': 'Pérez',
'phone': '+573001234568',
'email': 'juan@acme.co',
'document_type': 'cc',
'dni': '10000001'
},
'account': {
'type': 'savings',
'bank_id': '9da58912-101d-46f8-86c9-20a52119c0bf',
'number': '1234567890',
'terms': True
}
}
)
company = response.json()
print(company)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/companies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer sk_test_xxx",
"Content-Type: application/json",
"x-idempotency: company-001"
],
CURLOPT_POSTFIELDS => json_encode([
"type" => "organization",
"name" => "Acme Inc",
"legal_name" => "Acme Inc S.A.S",
"document_type" => "NIT",
"document_number" => "123456789-1",
"phone" => "+573001234567",
"email" => "contacto@acme.co",
"website" => "https://acme.co",
"economic_activity" => "0111",
"industry" => "0742",
"sales" => 35,
"fiscal_responsibilities" => ["O_47"],
"retention_rules" => ["iva" => true, "ica" => false, "fuente" => true],
"city_id" => 1,
"address" => [
"address" => "Calle 100 #15-20",
"hint" => "Oficina 301",
"zipcode" => "170004"
],
"documents" => [
"rut" => "https://storage.example.com/rut.pdf",
"ccc" => "https://storage.example.com/ccc.pdf",
"dni" => "https://storage.example.com/dni.pdf",
"bank" => "https://storage.example.com/bank.pdf",
"simple" => "https://storage.example.com/simple.pdf"
],
"company_owner" => [
"name" => "Juan",
"last_name" => "Pérez",
"phone" => "+573001234568",
"email" => "juan@acme.co",
"document_type" => "cc",
"dni" => "10000001"
],
"account" => [
"type" => "savings",
"bank_id" => "9da58912-101d-46f8-86c9-20a52119c0bf",
"number" => "1234567890",
"terms" => true
]
])
]);
$response = curl_exec($curl);
curl_close($curl);
$company = json_decode($response, true);
print_r($company);
?>
Was this page helpful?
⌘I