Generar percepción
POST /api/perceptions
Autenticación: Bearer del usuario del tenant (Authorization: Bearer <api_token>).
Cuerpo
Content-Type: application/json
{
"serie_documento": "P001",
"numero_documento": "#",
"fecha_de_emision": "2018-10-09",
"hora_de_emision": "10:11:11",
"codigo_tipo_documento": "40",
"datos_del_emisor": {
"codigo_pais": "PE",
"ubigeo": "150101",
"direccion": "Av. 2 de Mayo",
"correo_electronico": "demo@gmail.com",
"telefono": "427-1148",
"codigo_del_domicilio_fiscal": "0000"
},
"datos_del_cliente_o_receptor": {
"codigo_tipo_documento_identidad": "6",
"numero_documento": "10414711225",
"apellidos_y_nombres_o_razon_social": "EMPRESA XYZ S.A.",
"nombre_comercial": "EMPRESA XYZ",
"codigo_pais": "PE",
"ubigeo": "150101",
"direccion": "Av. 2 de Mayo",
"correo_electronico": "demo@gmail.com",
"telefono": "427-1148"
},
"codigo_tipo_percepcion": "01",
"observaciones": "-",
"totales": {
"total_percibido": 30.0,
"total_pagado": 1000.0
},
"documentos": [
{
"codigo_tipo_documento": "01",
"serie_documento": "F001",
"numero_documento": "3",
"fecha_de_emision": "2018-10-09",
"codigo_tipo_moneda": "PEN",
"pagos": [
{
"fecha_de_pago": "2018-10-09",
"total_pago": 200.0,
"codigo_tipo_moneda": "PEN"
}
],
"tipo_de_cambio": {
"codigo_tipo_moneda_referencia": "PEN",
"codigo_tipo_moneda_objetivo": "PEN",
"factor": 1,
"fecha_tipo_de_cambio": "2018-10-09"
},
"fecha_de_percepcion": "2018-10-09",
"total_documento": 400.0,
"total_percibido": 12.0,
"total_a_pagar": 412.0,
"total_pagado": 412.0
},
{
"codigo_tipo_documento": "01",
"serie_documento": "F001",
"numero_documento": "4",
"fecha_de_emision": "2018-10-09",
"codigo_tipo_moneda": "USD",
"total_documento": 200.0,
"pagos": [
{
"fecha_de_pago": "2018-10-09",
"total_pago": 200.0,
"codigo_tipo_moneda": "USD"
}
],
"tipo_de_cambio": {
"codigo_tipo_moneda_referencia": "USD",
"codigo_tipo_moneda_objetivo": "PEN",
"factor": 3.0,
"fecha_tipo_de_cambio": "2018-10-09"
},
"fecha_de_percepcion": "2018-10-09",
"total_percibido": 18.0,
"total_a_pagar": 618.0,
"total_pagado": 618.0
}
]
}
Respuestas
200 — Comprobante generado
La respuesta típica de POST /api/documents incluye success, data (número, external_id, QR) y links a XML, PDF y CDR.
{
"success": true,
"data": {
"number": "F001-1",
"filename": "20123456789-01-F001-1",
"external_id": "uuid"
},
"links": {
"xml": "https://{subdominio}/downloads/document/xml/{external_id}",
"pdf": "https://{subdominio}/downloads/document/pdf/{external_id}",
"cdr": "https://{subdominio}/downloads/document/cdr/{external_id}"
}
}
Nombre en el SDK
El cuerpo de la consulta es el JSON de la sección Cuerpo. Si instalas el paquete generado en sdks/, esa misma petición es el método emitirPercepcion.
| Lenguaje | Llamada |
|---|---|
| PHP | TenantDominioDelClienteComprobantesApi::emitirPercepcion |
| JavaScript | TenantDominioDelClienteComprobantesApi.emitirPercepcion |
| TypeScript | TenantDominioDelClienteComprobantesApi.emitirPercepcion |
| Java | TenantDominioDelClienteComprobantesApi.emitirPercepcion |
| Python | TenantDominioDelClienteComprobantesApi.emitir_percepcion |
| C# | TenantDominioDelClienteComprobantesApi.EmitirPercepcionAsync |
| Go | TenantDominioDelClienteComprobantesAPIService.EmitirPercepcion |
| Ruby | TenantDominioDelClienteComprobantesApi.emitir_percepcion |
| Kotlin | TenantDominioDelClienteComprobantesApi.emitirPercepcion |
| Dart | TenantDominioDelClienteComprobantesApi.emitirPercepcion |
| Swift | TenantDominioDelClienteComprobantesAPI.emitirPercepcion |