La API REST más simple y potente para tu sistema de ventas, ERP o aplicativo móvil.
Olvídate de XMLs, firmas digitales y certificados. Tú envías un JSON, nosotros hacemos el resto.
<?php
$url = 'https://api.igfact.com/api/factura'; // o api/boleta
$payload = json_encode([
'tipo' => 'factura', // factura o boleta
'venta' => ['tipo_documento_codigo' => '01', 'serie' => 'F001', 'numero' => '133'],
'cliente' => ['numero_documento' => '20100000001', 'codigo_tipo_entidad' => '6', 'razon_social_nombres' => 'EMPRESA SAC'],
'items' => [['producto' => 'Producto 1', 'cantidad' => 1, 'precio' => 118.00, 'tipo_igv_codigo' => 10]]
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-KEY: {{ $cliente->api_key }}',
'Content-Type: application/json'
]);
echo curl_exec($ch);
curl_close($ch);
<?php
$payload = json_encode([
'venta' => ['tipo_documento_codigo' => '07', 'serie' => 'FC01', 'numero' => '1', 'cod_motivo' => '01', 'des_motivo' => 'Anulacion de la operacion'],
'cliente' => ['numero_documento' => '20100000001', 'codigo_tipo_entidad' => '6', 'razon_social_nombres' => 'EMPRESA SAC'],
'documento_referencia' => ['tipo_documento_codigo' => '01', 'serie' => 'F001', 'numero' => '133'],
'items' => [['producto' => 'Producto 1', 'cantidad' => 1, 'precio' => 118.00, 'tipo_igv_codigo' => 10]]
]);
$ch = curl_init('https://api.igfact.com/api/nota-credito');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-KEY: {{ $cliente->api_key }}', 'Content-Type: application/json']);
echo curl_exec($ch);
<?php
$url = 'https://api.igfact.com/api/guia-remision';
$payload = json_encode([
'guia' => [
'serie' => 'T001',
'numero' => '123',
'fecha_emision' => date('Y-m-d'),
'hora_emision' => date('H:i:s'),
'fecha_traslado' => date('Y-m-d'),
'guia_motivo_traslado' => '01',
'peso_total' => 10.5,
'partida_direccion' => 'Av. Los Ficus 123',
'partida_ubigeo' => '150101',
'llegada_direccion' => 'Av. Las Palmas 456',
'llegada_ubigeo' => '150101',
'destinatario_numero_documento' => '20100000001',
'destinatario_nombres_razon' => 'Empresa Cliente SAC',
'vehiculo_placa' => 'ABC-123',
'conductor_numero_documento' => '40000000',
'conductor_nombres' => 'Juan',
'conductor_apellidos' => 'Perez'
],
'items' => [
['cantidad' => 1, 'codigo_unidad' => 'NIU', 'descripcion' => 'Producto Transportado 1']
]
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-KEY: tu_api_key_aqui',
'Content-Type: application/json'
]);
echo curl_exec($ch);
curl_close($ch);
pdf_url y xml_url) listos para descargar.
El archivo CDR (Constancia de Recepción) se forma agregando el prefijo "R-" al nombre del archivo zip.{
"success": true,
"numero_comprobante": "F001-00000133",
"nombre_archivo": "{{ $cliente->ruc }}-01-F001-00000133",
"codigo_sunat": "0",
"mensaje_sunat": "La Factura numero F001-00000133, ha sido aceptada",
"estado": "ACEPTADO",
"xml_url": "https://api.igfact.com/storage/...",
"pdf_url": "https://api.igfact.com/storage/..."
}
R- + nombre_archivo + .ziphttps://api.igfact.com/storage/...{{ $cliente->ruc }}-01-F001-00000133.zip