Saltar al contenido
Facturador

Generar retención

POST /api/retentions

Autenticación: Bearer del usuario del tenant (Authorization: Bearer <api_token>).

Cuerpo

Content-Type: application/json

{
  "serie_documento": "R001",
  "numero_documento": "#",
  "fecha_de_emision": "2018-10-09",
  "hora_de_emision": "10:11:11",
  "codigo_tipo_documento": "20",
  "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_proveedor": {
    "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_retencion": "01",
  "observaciones": "-",
  "totales": {
    "total_retenido": 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_retencion": "2018-10-09",
      "total_documento": 400.0,
      "total_retenido": 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_retencion": "2018-10-09",
      "total_retenido": 18.0,
      "total_a_pagar": 618.0,
      "total_pagado": 618.0
    }
  ]
}

Respuestas

200 — Retención generada

{
  "success": true,
  "data": {
    "number": "R001-3",
    "filename": "11111111111-20-R001-3",
    "external_id": "9d997b38-92a6-42f2-b827-4b73ec5ca1a3"
  },
  "links": {
    "xml": "https://{subdominio}/downloads/retention/xml/{external_id}",
    "pdf": "https://{subdominio}/downloads/retention/pdf/{external_id}",
    "cdr": "https://{subdominio}/downloads/retention/cdr/{external_id}"
  },
  "response": {
    "code": "0",
    "description": "El Comprobante numero R001-3 ha sido aceptado",
    "notes": []
  }
}

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 emitirRetencion.

Lenguaje Llamada
PHP TenantDominioDelClienteComprobantesApi::emitirRetencion
JavaScript TenantDominioDelClienteComprobantesApi.emitirRetencion
TypeScript TenantDominioDelClienteComprobantesApi.emitirRetencion
Java TenantDominioDelClienteComprobantesApi.emitirRetencion
Python TenantDominioDelClienteComprobantesApi.emitir_retencion
C# TenantDominioDelClienteComprobantesApi.EmitirRetencionAsync
Go TenantDominioDelClienteComprobantesAPIService.EmitirRetencion
Ruby TenantDominioDelClienteComprobantesApi.emitir_retencion
Kotlin TenantDominioDelClienteComprobantesApi.emitirRetencion
Dart TenantDominioDelClienteComprobantesApi.emitirRetencion
Swift TenantDominioDelClienteComprobantesAPI.emitirRetencion