Entornos de Integración

Signia B2B provee un único endpoint base. La plataforma enruta automáticamente los documentos a SUNAT Beta (Motor Nativo) o a Producción (Motor PSE) según la configuración del RUC en el Dashboard.

URL Base: https://signia.kore.pe/api/v1

Obtener Token

Permite obtener el access_token para los procesos. Puedes generar un token estático desde el dashboard, o solicitar uno dinámico que expira en 600 segundos enviando tus credenciales.

Endpoint

POST /auth/token

Body

CampoTipoDescripción
email string Correo electrónico de la agencia.
password string Contraseña de la agencia.

Respuesta exitosa (200)

{
  "access_token": "1|r4pw6Cqo9NyNJHsu...",
  "expires_in": 600
}

Emitir Comprobante

Este es nuestro endpoint estrella. Construye el comprobante enviando los datos estructurados en formato JSON. Signia se encarga de armar el XML UBL 2.1, firmarlo y enviarlo, todo en 1 solo paso.

Endpoint

POST /documents/send

Body

CampoTipoDescripción
company.ruc string(11) RUC de la empresa emisora registrada en Signia.
document.document_type_id string(2) Tipo de comprobante según catálogo SUNAT.
items[] array Lista de productos o servicios del comprobante.

Ejemplo de Código

curl -X POST https://signia.kore.pe/api/v1/documents/send \
  -H "Authorization: Bearer TU_TOKEN_API" \
  -H "Content-Type: application/json" \
  -d '{
    "company": {
      "ruc": "20123456789"
    },
    "document": {
      "document_type_id": "01",
      "series": "F001",
      "number": "1",
      "currency_type_id": "PEN"
    },
    "items": [
      {
        "quantity": 1,
        "unit_price": 118.00,
        "description": "Desarrollo Software"
      }
    ]
  }'
$client = new \GuzzleHttp\Client();
$response = $client->post('https://signia.kore.pe/api/v1/documents/send', [
    'headers' => [
        'Authorization' => 'Bearer TU_TOKEN_API',
        'Accept'        => 'application/json',
    ],
    'json' => [
        'company' => ['ruc' => '20123456789'],
        'document' => ['series' => 'F001', 'number' => '1'],
        'items' => [...]
    ]
]);

echo $response->getBody();
fetch('https://signia.kore.pe/api/v1/documents/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer TU_TOKEN_API',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    company: { ruc: "20123456789" },
    document: { series: "F001", number: "1" },
    items: [...]
  })
})
.then(res => res.json())
.then(console.log);

Consultar ticket

Nota: Para facturas, boletas y notas, el CDR se obtiene de forma síncrona en la respuesta de /send. La consulta de ticket solo aplica para resúmenes diarios, comunicaciones de baja y guías de remisión.

Endpoint

POST /documents/consult

Body

CampoTipoDescripción
ruc string(11) RUC emisor.
ticket string Número de ticket devuelto por SUNAT.

Interpretación rápida

Tabla de interpretación para las respuestas que retornan los endpoints de emisión y consulta.

Definiciones

CampoTipoDescripción
success boolean Salud técnica del proceso interno en Signia.
status string Veredicto de SUNAT (accepted, rejected, exception).

Catálogos SUNAT

Para mantener la compatibilidad con los estándares de SUNAT, utilizamos los mismos códigos de catálogo oficiales. Aquí tienes los más utilizados en las peticiones.

Tipo de Documento (Catálogo 01)

CódigoDescripción
01Factura
03Boleta
07Nota de Crédito
08Nota de Débito
09Guía de Remisión Remitente

Afectación al IGV (Catálogo 07)

CódigoDescripción
10Gravado - Operación Onerosa
20Exonerado - Operación Onerosa
30Inafecto - Operación Onerosa

Códigos de Error HTTP

Nuestra API utiliza códigos de estado HTTP convencionales para indicar el éxito o fracaso de una petición.

Código HTTPMensaje generalCausa común
400 Bad Request Error de validación Faltan campos obligatorios en el JSON o el RUC es inválido.
401 Unauthorized No autorizado El token Bearer no se envió, es inválido o expiró.
402 Payment Required Saldo insuficiente La agencia se ha quedado sin saldo de firmas disponible.
404 Not Found RUC no registrado El RUC enviado no está registrado bajo tu Agencia.
500 Server Error Error interno Error crítico en los servidores de Signia o caída total de SUNAT.