Ir al contenido

Sucursales

Ver .md

¿Qué es una sucursal y por qué la necesitas?

Sección titulada «¿Qué es una sucursal y por qué la necesitas?»

Una sucursal (office) es un punto de venta de tu comercio. Puede ser una tienda física, una línea de negocio o simplemente una forma de separar la operación.

Es lo primero que necesitas para integrarte. Casi todos los endpoints que crean algo —cobros, planes, suscriptores, cupones, reservas de cupo— piden un campo office con el id de una de tus sucursales. Si estás empezando, llama a GET /api/v1/offices/get, toma el id de la sucursal que corresponda y guárdalo en tu configuración.

Todo comercio tiene al menos una sucursal creada desde el registro, así que normalmente no necesitas crear ninguna.

GET /api/v1/offices/get

Descripción: Devuelve las sucursales a las que tiene acceso el usuario de tu token. Si tu token solo alcanza una sucursal, verás una.

GEThttps://sag.efipay.co/api/v1/offices/get
Ventana de terminal
curl -X GET \
'/api/v1/offices/get' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H "Content-type: application/json"
200OK
[
{
"id": 1,
"name": "Sede principal",
"description": "Punto de venta principal",
"email": "principal@mi-comercio.com",
"area_code": "+57",
"number_phone": "3001234567",
"website": "https://mi-comercio.com",
"voucher_information": true,
"independent_billing": false,
"main": true,
"active": true,
"commerce_id": 42
}
]

POST /api/v1/offices

Descripción: Crea una sucursal. Solo name es obligatorio; el resto sirve para que el comprobante de pago muestre los datos de esa sucursal en lugar de los del comercio.

Nombre del campo Descripción Reglas
name Nombre de la sucursal. Solo letras, números y espacios. Único dentro de tu comercio ['required', 'max:50', 'regex:/^[\pL\pN\s]+$/u', 'unique:offices,name']
description Para qué es la sucursal. Uso interno ['nullable', 'string', 'max:250']
image Logo de la sucursal. JPG, PNG, GIF o SVG, hasta 5 MB ['nullable', 'image', 'max:5120']
email Correo de contacto de la sucursal ['nullable', 'required_if:independent_billing,1,true', 'email', 'max:190']
area_code Indicativo telefónico con + (por ejemplo +57) ['nullable', 'required_with:number_phone', 'string', 'max:6', 'regex:/^\+\d{1,3}$/i']
number_phone Teléfono de la sucursal. Se valida como número real del país de iso_code ['nullable', 'required_with:area_code', 'numeric', 'digits_between:6,15', 'phone']
iso_code País del teléfono en ISO2. CO por defecto ['nullable', 'string', 'size:2', 'in:CO,US,MX,...']
website Sitio web de la sucursal ['nullable', 'string', 'url', 'max:190']
voucher_information true para que el comprobante muestre los datos de esta sucursal en vez de los del comercio ['nullable', 'boolean']
independent_billing true si esta sucursal factura por su cuenta. Activa cinco campos obligatorios: email, nit, verification_code, city, address y rut ['nullable', 'boolean']
nit NIT de la sucursal ['nullable', 'required_if:independent_billing,1,true', 'numeric', 'max_digits:9']
verification_code Dígito de verificación del NIT ['nullable', 'required_if:independent_billing,1,true', 'digits:1']
city Ciudad de la sucursal ['nullable', 'required_if:independent_billing,1,true', 'string', 'max:255']
address Dirección de la sucursal ['nullable', 'required_if:independent_billing,1,true', 'string', 'max:255']
rut RUT de la sucursal, como archivo. Solo obligatorio con independent_billing en true ['required', 'file', 'mimes:pdf,doc,docx,xls,xlsx,csv', 'max:5120']
POSThttps://sag.efipay.co/api/v1/offices
Ventana de terminal
curl -X POST \
'/api/v1/offices' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H "Content-type: application/json" \
-d '{
"name": "Sede norte",
"description": "Punto de venta calle 140",
"email": "norte@mi-comercio.com",
"area_code": "+57",
"number_phone": "3001234567",
"voucher_information": true
}'

Con logo, en multipart/form-data:

Ventana de terminal
curl -X POST \
'/api/v1/offices' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-F 'name=Sede norte' \
-F 'description=Punto de venta calle 140' \
-F 'image=@logo-sede-norte.png'
200OK
{
"saved": true,
"office": {
"id": 7,
"name": "Sede norte",
"description": "Punto de venta calle 140",
"email": "norte@mi-comercio.com",
"area_code": "+57",
"number_phone": "3001234567",
"voucher_information": true,
"independent_billing": false,
"commerce_id": 42,
"active": true
}
}
422Unprocessable Entity
{
"message": "El campo name ya ha sido tomado.",
"errors": {
"name": ["El campo name ya ha sido tomado."]
}
}

Última actualización: