Ir al contenido

Recursos

Cada recurso lleva object con su tipo. Los importes son texto decimal ("118.00"), las fechas YYYY-MM-DD en hora de Lima y los instantes ISO 8601 en UTC. Los nombres son los mismos que el SDK exporta como tipos.

Customer

  • document_typetexto

    Catálogo 06 de SUNAT.

  • document_numbertexto
  • nametexto
  • addresstextopuede faltar
  • country_codetextopuede faltar
  • emailtextopuede faltar

Document

  • idtexto
  • object"document"
  • livemodebooleano
  • type"20" · "31" · "40" · "01" · "03" · "07" · "08" · "09"

    Catálogo 01 de SUNAT.

  • seriestexto
  • numberentero
  • status"pending" · "accepted" · "observed" · "rejected" · "voided"
  • issue_datetexto

    formato date

  • currencytexto o null

    ISO 4217; null en un comprobante sin importes, como una guía de remisión.

  • totaltexto o null

    Texto decimal; null en un comprobante sin importes.

  • amountsobjeto o null

    Lo que Emitay calculó para el comprobante, por tipo de operación y tributo, como texto decimal; null en un comprobante que no es una venta (guías, retenciones, percepciones). total es el importe a pagar.

    • taxedtexto

      Operaciones gravadas: la base imponible, con IGV o IVAP.

    • exempttexto

      Operaciones exoneradas.

    • unaffectedtexto

      Operaciones inafectas.

    • igvtexto

      IGV del comprobante.

    • exportedtextopuede faltar

      Exportación; presente solo cuando el comprobante la tiene.

    • freetextopuede faltar

      Valor referencial de las operaciones gratuitas; presente solo cuando las hay.

    • isctextopuede faltar

      ISC; presente solo cuando el comprobante lo tiene.

    • ivaptextopuede faltar

      IVAP; presente solo cuando el comprobante lo tiene.

    • icbpertextopuede faltar

      ICBPER; presente solo cuando el comprobante lo tiene.

  • customerCustomer
  • hashtexto

    Resumen de la firma: el hash que se imprime en el comprobante.

  • qrtexto o null

    Texto del QR de la representación impresa; null mientras no exista.

  • linksobjeto

    Enlaces públicos, que sirven sin llave de API; cdr es null hasta que SUNAT devuelve uno.

    • pdftexto

      formato uri

    • xmltexto

      formato uri

    • cdrtexto o null

      formato uri

  • sunatobjeto o null
    • codetexto
    • descriptiontexto
    • noteslista de textos
    • simulatedbooleano

      True cuando no existe un ambiente de SUNAT contra el que probar y la respuesta es de Emitay.

  • voidobjeto o null
    • status"pending" · "accepted" · "rejected"
    • reasontexto
    • requested_attexto

      formato date-time

    • sunatobjeto o null

      Respuesta de SUNAT a la baja, el resumen o la reversión; null mientras no haya respondido.

      • codetexto
      • descriptiontexto
  • last_errortexto o null

    Por qué falló el último intento de obtener la respuesta de SUNAT, mientras el comprobante está pending; en uno ya resuelto, lo que Emitay tiene que decir de cómo se resolvió: que el plazo de SUNAT venció sin respuesta, o que no se pudo recuperar su CDR.

  • metadataobjeto

    Pares clave-valor libres que se guardan con el recurso y vuelven en sus respuestas, eventos y webhooks; Emitay nunca los lee. Hasta 50 claves de 40 caracteres, con valores de hasta 500.

  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

Email

  • idtexto
  • object"email"
  • livemodebooleano
  • document_idtexto
  • tolista de textos
  • cclista de textos
  • subjecttexto o null
  • messagetexto o null
  • status"queued" · "sent" · "failed"
  • attemptsentero

    0 o más

  • message_idtexto o null

    Id que el servidor SMTP dio al mensaje al aceptarlo.

  • last_errortexto o null
  • sent_attexto o null

    formato date-time

  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

Event

  • idtexto
  • object"event"
  • type"document.accepted" · "document.observed" · "document.rejected" · "document.voided" · "document.void_failed" · "email.sent" · "email.failed"
  • created_attexto

    formato date-time

  • livemodebooleano
  • dataobjeto

WebhookEndpoint

  • idtexto
  • object"webhook_endpoint"
  • livemodebooleano
  • urltexto
  • descriptiontexto o null
  • eventslista de "*" · "document.accepted" · "document.observed" · "document.rejected" · "document.voided" · "document.void_failed" · "email.sent" · "email.failed"

    de 1 a 8 elementos

  • enabledbooleano
  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

WebhookEndpointWithSecret

  • idtexto
  • object"webhook_endpoint"
  • livemodebooleano
  • urltexto
  • descriptiontexto o null
  • eventslista de "*" · "document.accepted" · "document.observed" · "document.rejected" · "document.voided" · "document.void_failed" · "email.sent" · "email.failed"

    de 1 a 8 elementos

  • enabledbooleano
  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

  • secrettexto

    whsec_<base64>, la clave de la firma Standard Webhooks.

WebhookDelivery

  • idtexto
  • object"webhook_delivery"
  • livemodebooleano
  • endpoint_idtexto
  • event_idtexto
  • status"pending" · "succeeded" · "failed"
  • attemptsentero

    0 o más

  • next_attempt_attexto o null

    Cuándo toca el siguiente intento; null cuando ya tuvo éxito o agotó sus reintentos.

    formato date-time

  • response_statusentero o null

    Estado HTTP del último intento, cuando el endpoint respondió.

  • response_bodytexto o null

    Primeros 2 KB del cuerpo de la última respuesta.

  • duration_msentero o null

    0 o más

  • last_errortexto o null
  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

Layout

  • idtexto
  • object"layout"
  • nametexto
  • format"a4" · "ticket80" · "ticket58"
  • is_defaultbooleano
  • versionentero

    Versión vigente; un comprobante recuerda aquella con la que se imprimió por primera vez.

    mayor que 0

  • templateobjeto
  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

Company

  • idtexto
  • object"company"
  • organization_idtexto o null

    Organización dueña de la empresa; null cuando se creó sin el panel.

  • ructexto
  • legal_nametexto
  • trade_nametexto o null
  • addressobjeto
    • ubigeotexto

      Código INEI de 6 dígitos.

    • linetexto

      de 1 a 200 caracteres

    • districttexto

      de 1 a 100 caracteres

    • provincetexto

      de 1 a 100 caracteres

    • departmenttexto

      de 1 a 100 caracteres

    • urbanizationtextopuede faltar

      de 1 a 100 caracteres

    • establishment_codetextopuede faltar

      Código de establecimiento de SUNAT (código de local anexo); "0000" si se omite.

    • country_codetextopuede faltar

      ISO 3166-1 alfa-2; "PE" si se omite.

  • emailtexto o null
  • phonetexto o null
  • logo_urltexto o null

    De dónde lee el panel el logo con su sesión; null si no hay logo.

  • certificateobjeto o null
    • subjecttexto
    • not_aftertexto

      formato date-time

  • sol_credentialsobjeto o null
    • usertexto
  • gre_credentialsobjeto o null
    • client_idtexto
  • smtpobjeto o null
    • hosttexto
    • portentero
    • usertexto
    • fromtexto
  • settingsobjeto
    • auto_emailbooleano

      Envía un correo al cliente cuando SUNAT acepta un comprobante que trae su correo.

    • email_subjecttexto o null

      Null usa la redacción por defecto de Emitay.

      de 1 a 200 caracteres

    • email_messagetexto o null

      de 1 a 5000 caracteres

  • created_attexto

    formato date-time

  • updated_attexto

    formato date-time

Series

  • object"series"
  • livemodebooleano
  • type"20" · "31" · "40" · "01" · "03" · "07" · "08" · "09"
  • seriestexto
  • next_numberentero

    Número que toma el siguiente comprobante de la serie cuando la petición no trae uno.

    mayor que 0

RequestLog

  • idtexto
  • object"request_log"
  • livemodebooleano
  • api_key_idtexto o null

    Null cuando la petición vino de una sesión del panel y no de una llave.

  • methodtexto
  • pathtexto
  • statusentero
  • duration_msentero

    0 o más

  • request_idtexto o null
  • idempotency_keytexto o null
  • error_typetexto o null

    type del documento del problema, cuando la petición falló.

  • created_attexto

    formato date-time

Problem

  • typetexto
  • titletexto
  • statusentero
  • detailtextopuede faltar
  • errorslista de objetospuede faltar
    • fieldtexto
    • messagetexto

Lo que recibe un webhook

POSTla URL de tu endpoint

Lo que Emitay envía a cada endpoint de webhook habilitado que escucha el tipo del evento. Sigue Standard Webhooks: verifica webhook-signature (HMAC-SHA256 de {webhook-id}.{webhook-timestamp}.{cuerpo} con el secreto del endpoint) antes de confiar en el cuerpo. Responde 2xx en menos de 10 segundos; cualquier otra cosa se reintenta, hasta 8 intentos, con el mismo webhook-id.

Cabeceras

  • webhook-idtextoobligatorio

    Id del evento; el mismo en cada reintento.

  • webhook-timestamptextoobligatorio

    Hora Unix, en segundos, de este intento.

  • webhook-signaturetextoobligatorio

    v1,<base64 del HMAC-SHA256>.

Cuerpo application/json

  • idtextoobligatorio
  • object"event"obligatorio
  • type"document.accepted" · "document.observed" · "document.rejected" · "document.voided" · "document.void_failed" · "email.sent" · "email.failed"obligatorio
  • created_attextoobligatorio

    formato date-time

  • livemodebooleanoobligatorio
  • dataobjetoobligatorio

Respuestas

  • 200Recibido