Consultar
Este método consulta el estado de un documento.
Valores
| Variable | Descripción | Prod | Demo |
|---|---|---|---|
URL_API | URL base de la API | https://api.emite.pe | https://api.demo.emite.pe |
EMITE_ID | Identificador asignado a la empresa | Proporcionado por Emite | Proporcionado por Emite |
EMITE_KEY | API Key asignada a la empresa | Proporcionado por Emite | Proporcionado por Emite |
Request
GET {{URL_API}}/anular/{{TIPO_BAJA}}/{{TICKET}}
GET {{URL_API}}/anular/{{TIPO_BAJA}}/{{FECHA}}/{{CORRELATIVO}}
Se puede consultar de ambas formas, los parámtros se obtienen de la respuesta al procesar la anulación
En la sección de Implementación se muestran ejemplos con ambas consultas.
Headers
emite_id: {{EMITE_ID}}
emite_key: {{EMITE_KEY}}
Content-Type: application/json
Path Params
El valor TIPO_BAJA correspone a la propiedad tipoDocumento del JSON de respuesta al procesar la anulación.
Comunicación de baja RA (Facturas y notas de facturas).
Resumen diario de bajas RC (Boletas y notas de boletas).
El valor TICKET correspone a la propiedad ticketSunat del JSON de respuesta al procesar la anulación.
El valor FECHA correspone a la propiedad fechaGeneracion del JSON de respuesta al procesar la anulación (Formato: YYYY-MM-DD).
El valor CORRELATIVO correspone a la propiedad correlativo del JSON de respuesta al procesar la anulación.
Implementación
- Shell
- Node
- Java
- PHP
curl "{{URL_API}}/anular/{{TIPO_BAJA}}/{{TICKET}}" -X GET \
-H "emite_id: {{EMITE_ID}}" \
-H "emite_key: {{EMITE_KEY}}" \
-H "Content-Type: application/json"
const axios = require('axios');
axios.get('{{URL_API}}/anular/{{TIPO_BAJA}}/{{FECHA}}/{{CORRELATIVO}}', {
headers: {
emite_id: '{{EMITE_ID}}',
emite_key: '{{EMITE_KEY}}',
'Content-Type': 'application/json'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error.response?.data || error.message);
});
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
URL url = new URL("{{URL_API}}/anular/{{TIPO_BAJA}}/{{TICKET}}");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("emite_id", "{{EMITE_ID}}");
conn.setRequestProperty("emite_key", "{{EMITE_KEY}}");
conn.setRequestProperty("Content-Type", "application/json");
int statusCode = conn.getResponseCode();
System.out.println("HTTP Status: " + statusCode);
}
}
<?php
$ch = curl_init('{{URL_API}}/anular/{{TIPO_BAJA}}/{{FECHA}}/{{CORRELATIVO}}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'emite_id: {{EMITE_ID}}',
'emite_key: {{EMITE_KEY}}',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);
Response
Si el código de estado es 200 la petición anterior retorna un JSON estructurado de la siguiente manera:
200 — Cuando el proceso se ejecute correctamente.
- Anulación de facturas y notas de facturas
- Anulación de boletas y notas de boletas
{
"ticketPeticion": "1537486212351-1024216",
"estado": 3,
"nombreEstado": "ACEPTADO",
"estadoSunat": "0",
"observacion": "La Comunicación de Baja número 20260101-1, ha sido aceptado"
}
{
"ticketPeticion": "1537486212351-1024216",
"estado": 3,
"nombreEstado": "ACEPTADO",
"estadoSunat": "0",
"observacion": "El Resumen Diario número 20260101-1, ha sido aceptado"
}
Cuando la anulación pasa a tener estado
3ACEPTADO, al consultar los documentos asociados en los distintos servicios de consulta la propiedadestaAnuladodel JSON de respuesta devuelve el valortrue.
| Propiedad | Condición | Tipo | Descripción |
|---|---|---|---|
| ticketPeticion | Siempre | string | Código identificador de la petición. |
| estado | Siempre | integer | Código interno de estado del documento. |
| nombreEstado | Siempre | string | Descripción de estado interno del documento. |
| estadoSunat | Siempre | string | Código de validación SUNAT. |
| observaciones | Siempre | string | mensaje asociado a la operación. |
Si el código de estado es 400, 401, 402, 403, 404 o 500 la petición anterior retorna un JSON estructurado de la siguiente manera:
400 - ERROR DE ESTRUCTURA JSON O EN LOS PARÁMETROS ENVIADOS.
401 - ERROR DE AUTORIZACIÓN.
402 - ERROR POR FALTA DE PAGO.
403 - ERROR POR VALIDACIONES.
404 - RECURSO NO ENCONTRADO.
500 - ERROR EN EL SERVIDOR.
- Anulación de facturas y notas de facturas
- Anulación de boletas y notas de boletas
{
"ticketPeticion": "1537486212351-1024216",
"estado": "NOT_FOUND",
"mensaje": "La Comunicación de Baja 20260101-1 no ha sido registrada"
}
{
"ticketPeticion": "1537486212351-1024216",
"estado": "NOT_FOUND",
"mensaje": "El Resumen Diario 20260101-1 no ha sido registrado"
}
| Propiedad | Condición | Tipo | Descripción |
|---|---|---|---|
| ticketPeticion | Siempre | string | Código identificador de la petición. |
| estado | Siempre | string | Nombre del estado HTTP retornado:BAD_REQUESTUNAUTHORIZEDPAYMENT_REQUIREDFORBIDDENNOT_FOUNDINTERNAL_SERVER_ERROR. |
| mensaje | Siempre | string | Descripción del resultado o error retornado por la API. |