Skip to main content
POST
/
api
/
proveedores
Crear Proveedor
curl --request POST \
  --url https://api.example.com/api/proveedores \
  --header 'Content-Type: application/json' \
  --data '
{
  "ruc": "<string>",
  "razon_social": "<string>",
  "direccion": "<string>",
  "telefono": "<string>",
  "email": "<string>",
  "departamento": "<string>",
  "provincia": "<string>",
  "distrito": "<string>",
  "ubigeo": "<string>"
}
'
{
  "422": {},
  "500": {},
  "success": true,
  "message": "<string>",
  "data": {
    "proveedor_id": 123,
    "ruc": "<string>",
    "razon_social": "<string>",
    "direccion": "<string>",
    "telefono": "<string>",
    "email": "<string>",
    "departamento": "<string>",
    "provincia": "<string>",
    "distrito": "<string>",
    "ubigeo": "<string>",
    "id_empresa": 123,
    "estado": 123,
    "created_at": "<string>",
    "updated_at": "<string>"
  }
}

Autenticación

Este endpoint requiere autenticación mediante token Bearer y el permiso proveedores.create.

Parámetros del Body

ruc
string
required
Número de RUC del proveedor. Debe ser único por empresa. Máximo 11 caracteres.
razon_social
string
required
Razón social o nombre comercial del proveedor. Máximo 200 caracteres.
direccion
string
Dirección del proveedor. Máximo 100 caracteres.
telefono
string
Número de teléfono. Máximo 100 caracteres.
email
string
Correo electrónico válido. Máximo 150 caracteres.
departamento
string
Nombre del departamento. Máximo 100 caracteres.
provincia
string
Nombre de la provincia. Máximo 100 caracteres.
distrito
string
Nombre del distrito. Máximo 100 caracteres.
ubigeo
string
Código de ubigeo de 6 dígitos.

Ejemplo de Solicitud

curl -X POST \
  https://tudominio.com/api/proveedores \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "ruc": "20123456789",
    "razon_social": "DISTRIBUIDORA LIMA S.A.C.",
    "direccion": "Av. Industrial 890",
    "telefono": "01-2345678",
    "email": "[email protected]",
    "departamento": "Lima",
    "provincia": "Lima",
    "distrito": "Ate",
    "ubigeo": "150103"
  }'

Respuesta

success
boolean
Indica si la operación fue exitosa
message
string
Mensaje de confirmación: “Proveedor creado exitosamente”
data
object
Datos del proveedor creado

Ejemplo de Respuesta Exitosa

{
  "success": true,
  "message": "Proveedor creado exitosamente",
  "data": {
    "proveedor_id": 15,
    "ruc": "20123456789",
    "razon_social": "DISTRIBUIDORA LIMA S.A.C.",
    "direccion": "Av. Industrial 890",
    "telefono": "01-2345678",
    "email": "[email protected]",
    "departamento": "Lima",
    "provincia": "Lima",
    "distrito": "Ate",
    "ubigeo": "150103",
    "id_empresa": 1,
    "estado": 1,
    "created_at": "2024-03-05T16:45:00.000000Z",
    "updated_at": "2024-03-05T16:45:00.000000Z"
  }
}

Errores de Validación

422
object
Error de validación
{
  "success": false,
  "message": "Errores de validación",
  "errors": {
    "ruc": [
      "El campo ruc es obligatorio"
    ],
    "razon_social": [
      "El campo razon social es obligatorio"
    ]
  }
}

Validación de RUC Único

El RUC debe ser único por empresa. Si ya existe un proveedor con el mismo RUC en la empresa:
{
  "success": false,
  "message": "Errores de validación",
  "errors": {
    "ruc": [
      "The ruc has already been taken."
    ]
  }
}

Asignación Automática de Empresa

El campo id_empresa se asigna automáticamente desde el usuario autenticado:
$data['id_empresa'] = $user->id_empresa;
$data['estado'] = 1; // Siempre activo al crear
No es necesario (ni permitido) enviar estos campos en el body de la solicitud.

Flujo de Integración con SUNAT

  1. Usuario ingresa RUC en el formulario
  2. Consultar API de SUNAT para obtener datos del RUC
  3. Autocompletar formulario con razón social, dirección, ubigeo desde SUNAT
  4. Llamar a este endpoint con todos los datos para crear el proveedor

Códigos de Error

422
object
Error de validación (ver ejemplos arriba)
500
object
Error interno del servidor
{
  "success": false,
  "message": "Error al crear proveedor: [mensaje específico]"
}

Build docs developers (and LLMs) love