You are on page 1of 33

FORMATO DE ESP

Descripción del Recurso

Método HTTP
URI pública

Request URI
Parámetros de Entrada
numRucEmisor

codCpe

numSerie

numCpe

Request Header
Parámetros
Authorization
(*) El token debe ser obtenido a través de la invocación del servicio api-seguridad descrito en el "Manual de servicios

Request Body
Parámetros de Entrada
archivo

archivo.nomArchivo
archivo.arcGreZip

archivo.hashZip

Ejemplo Request
JSON en el body
{
"archivo" : {
"nomArchivo" : "20480072872-31-VA28-407.zip",
"arcGreZip" : "UEsDBBQAAAAIAHd8i1QWA3AR2QwAAPVNAAAbAAAAMjA0ODAwNzI4NzItMzEtVkEy
"hashZip" : "bAAAAMjA0ODAwNzI4NzItMzEtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t"
}
}
{
"archivo" : {
"nomArchivo" : "20480072872-31-VA28-407.zip",
"arcGreZip" : "UEsDBBQAAAAIAHd8i1QWA3AR2QwAAPVNAAAbAAAAMjA0ODAwNzI4NzItMzEtVkEy
"hashZip" : "bAAAAMjA0ODAwNzI4NzItMzEtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t"
}
}

Response Header
Parámetros
HTTP status
Content-Type

Response Body
Parámetros de Salida

numTicket

fecRecepcion

Ejemplo JSON Response Body

{
"numTicket": "7f7b00ab-4fee-4ae2-9e04-fbd16ca18677",
"fecRecepcion": "2022-04-11T15:37:41"
}

Formato de mensaje de ERROR 500

Response Header
Parámetros
HTTP status
Content-Type

Response Body
Parámetros de Salida
cod
msg
exc

Ejemplo de Response
{
"cod":"500",

Formato de mensaje de ERROR 422

Response Header
Parámetros
HTTP status
Content-Type
Response Body
Parámetros de Salida
cod
msg
errors
errors.cod
errors.msg

Ejemplo de Response
{
"cod": 422,
"msg": "Unprocessable Entity - Se presentaron errores de validación que impidieron completar el Reque
"errors": [
{
"cod": 501,
"msg": "El valor de codCpe no permitido o no válido"
}
]
}

Campo

codCpe

numSerie
archivo.nomArchivo

archivo.nomArchivo
archivo.arcGreZip
archivo.hashZip
archivo.hashZip
archivo.arcGreZip
archivo.arcGreZip
archivo.arcGreZip
archivo.arcGreZip

archivo.arcGreZip
archivo.arcGreZip
archivo.arcGreZip
FORMATO DE ESPECIFICACION DE SERVICIO REST

Permite realizar el envío del comprobante

POST
https://api-cpe.sunat.gob.pe/v1/contribuyente/gem/comprobantes/{numRucEmisor}-{codCpe}-{numSerie}-{numCpe}

REQUEST

Descripción
RUC del contribuyente Emisor
Solo se permite
09: Guía de Remisión Remitente - Electrónica
31: Guía de Remisión Transportista - Electrónica
Numero de serie de comprobante:
Solo se permite:
Si codCpe 09:
T###
Si codCpe 31:
V###

Número de comprobante
De 1 hasta 8 valores numéricos

Valor
Bearer + token(*)
és de la invocación del servicio api-seguridad descrito en el "Manual de servicios web Plataforma Nueva GRE"

Descripcion

Nombre del archivo zip enviado.


Estructura: RRRRRRRRRRR-TT-SSSS-NNNNNNNN.zip
Donde:
RRRRRRRRRR: Número de RUC, de 11 valores numéricos
TT: Tipo de comprobante, solo se permite 09 y 31
SSSS: Serie del comprobante, solo se permite T### y V###
NNNNNNNN: Número de comprobante, se permite de 1 hasta 8 valores
numéricos
Base 64 del archivo zip enviado
Hash del archivo zip enviado
Debe calcularse el hash del archivo zip haciendo uso del algoritmo SHA-
256.

72-31-VA28-407.zip",
AIAHd8i1QWA3AR2QwAAPVNAAAbAAAAMjA0ODAwNzI4NzItMzEtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t",
AwNzI4NzItMzEtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t"
72-31-VA28-407.zip",
AIAHd8i1QWA3AR2QwAAPVNAAAbAAAAMjA0ODAwNzI4NzItMzEtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t",
AwNzI4NzItMzEtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t"

RESPONSE

valor
200
application/json

Descripcion
Número de ticket (UUID) generado por el envío realizado.
UUID se expresa mediante 32 dígitos hexadecimales divididos en cinco
grupos separados por guiones de la forma 8-4-4-4-12. Ejemplo:
550e8400-e29b-41d4-a716-446655440026
Fecha de recepción de envío del comprobante.
Formato: 'yyyy-mm-dd,'T','hh:ii:ss'

2-9e04-fbd16ca18677",
37:41"

valor
Revisar la tabla de codigos de Error
application/json

Descripción
codigo de error(Revisar la tabla de codigos de Error)
mensaje de error para el usuario
traza del error

Valor
Revisar la tabla de codigos de Error
application/json
Descripción
Código de error(Revisar la tabla de codigos de Error)
Mensaje de error para el usuario
Array de errores y descripcion del error
Código de error encontrado
Descripción de error encontrado

Se presentaron errores de validación que impidieron completar el Request",

ermitido o no válido"

Cuadro de mensajes de Error


Validación
Solo se permite
09: Guía de Remisión Remitente - Electrónica
31: Guía de Remisión Transportista - Electrónica
Numero de serie de comprobante:
Solo se permite:
Si codCpe 09:
T###
Si codCpe 31:
V###

El valor no enviado o es vacio

Debe tener el siguiente formato:


{numRucEmisor}-{codCpe}-{numSerie}-{numCpe}.zip
La extension ".zip" en minusculas, y
Debe coincidir con los datos del comprobante que viene en la URL del
servicio.

El valor no enviado o es vacio


El valor no enviado o es vacio
El valor Hash no coincide con el archivo zip enviado
El archivo ZIP esta vacío
El archivo ZIP esta corrupto
El archivo ZIP no tiene archivos
El archivo ZIP tiene más de un archivo
El nombre del archivo XML no tiene la estructura RRRRRRRRRRR-09-
SSSS-NNNNNNNN.xml o RRRRRRRRRRR-31-SSSS-
NNNNNNNN.XML
(Donde: RRRRRRRRRR: RUC, SSSS: Serie, NNNNNNNN: Número)
El archivo XML esta vacío
El nombre del archivo XML no coincide con el nombre del archivo ZIP
DE ESPECIFICACION DE SERVICIO REST

ntes/{numRucEmisor}-{codCpe}-{numSerie}-{numCpe}

REQUEST

Formato
alfanumerico (11)

alfanumerico (2)

alfanumerico (4)

numérico (1..8)

rvicios web Plataforma Nueva GRE"

Formato

EtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t",
9t"
EtVkEyOC00MDcueG1s7RztcqM28Hc703dQ3T/tD59t",
9t"

RESPONSE

Formato

alfanumerico

Date

Formato
Formato

Request",

Cuadro de mensajes de Error


Ámbito
Validaciones de forma

Validaciones de forma

Validaciones de obligatoriedad

Validaciones de forma
Validaciones de obligatoriedad
Validaciones de obligatoriedad
Validaciones de forma
Validaciones de forma
Validaciones de forma
Validaciones de forma
Validaciones de forma

Validaciones de forma
Validaciones de forma
Validaciones de forma
Obs

Tipo dato Condición


string M

string M

string M

number M

Tipo dato Condición


object M

string M
string M

string M

9t",
9t",

Tipo dato

string

string

Tipo dato
String
String
String
Tipo dato
number
String
String
number
string

Código y descripción del mensaje de error Condición


501 : El valor de codCpe no permitido o no válido
M

502 : El valor de numSerie no permitido o no válido

503 : El campo nomArchivo no enviado o es vacío M

504 : El campo nomArchivo no cumple con el formato establecido o nombre incorrecto


505 : El campo arcGreZip no enviado o es vacío M
506 : El campo hashZip no enviado o es vacío M
507 : El valor Hash no coincide con el archivo zip enviado M
155 : El archivo ZIP esta vacio
156 : El archivo ZIP esta corrupto
157 : El archivo ZIP no contiene comprobantes
158 : El archivo ZIP contiene demasiados comprobantes para este tipo de envío
159 : El nombre del archivo XML es incorrecto

160 : El archivo XML esta vacio


161 : El nombre del archivo XML no coincide con el nombre del archivo ZIP
FORMATO DE ESPECIFICACI

Descripción del Recurso

Operación
Método HTTP
URI pública

Request URI
Parámetros de   Entrada

numTicket

Request Header
Parámetros
Authorization
(*) El token debe ser obtenido a través de la invocación del servicio api-seguridad descrito en el "Manual de servicios web Plat

Request Body
Parámetros de Entrada

Ejemplo Request
JSON en el body

RE

Response Header
Parámetros
HTTP status
Content-Type

Response Body
Parámetros de Salida

codRespuesta
error
error.numError
error.desError

arcCdr

indCdrGenerado

Ejemplo JSON Response Body


response 1: Envío en proceso
{
"codRespuesta": "98"
}
response 2: Envio ok
{
"codRespuesta": "0",
"arcCdr": "nhjn898bunun9niniini9",
"indCdrGenerado": "1"
}

response 3: Envío con Error, con generación de CDR


{
"codRespuesta": "99",
"error": {
"numError":"2345",
"desError":"El RUC no valido"
},
"arcCdr": "nhjn898bunun9niniini9",
"indCdrGenerado": "1"
}

response 4: Envío con Error, no genera CDR


{
"codRespuesta": "99",
"error": {
"numError":"1345",
"desError":"El RUC no valido"
},
"indCdrGenerado": "0"
}

Formato de mensaje de ERROR 500


Response Header
Parámetros
HTTP status
Content-Type

Response Body
Parámetros de Salida
cod
msg
exc

Ejemplo de Response
{
"cod":"500",
"msg":"Internal Server Error - Se presento una condicion inesperada que impidio completar el Request",
"exc":"java.lang.NullPointerException at ..."
}

Formato de mensaje de ERROR 422

Response Header
Parámetros
HTTP status
Content-Type

Response Body
Parámetros de Salida
cod
msg
exc
errors
errors.cod
errors.msg

Ejemplo de Response
{
"cod": "422",
"msg": "Unprocessable Entity - Se presentaron errores de validación que impidieron completar el Request",
"exc": null,
"errors": [
{
"codError": "508",
"desError": "Número de ticket no válido o no cumple con el formato establecido"
}
]
}

Cuadro de
campo

numTicket

numTicket
FORMATO DE ESPECIFICACION DE SERVICIO REST

Permite realizar la consulta del envío realizado

consultarTicket
GET
https://api-cpe.sunat.gob.pe/v1/contribuyente/gem/comprobantes/envios/{numTicket}

REQUEST

Descripción

Número de ticket (UUID) generado por el envío realizado.


UUID se expresa mediante 32 dígitos hexadecimales divididos en cinco
grupos separados por guiones de la forma 8-4-4-4-12. Ejemplo:
550e8400-e29b-41d4-a716-446655440026

Valor
Bearer + token(*)
avés de la invocación del servicio api-seguridad descrito en el "Manual de servicios web Plataforma Nueva GRE"

Descripcion

RESPONSE

valor
200
application/json
Descripcion
Codigo de respuesta.
98: en proceso, 99: envío con error, 0: envío OK
Solo se generará este nodo si codRespuesta es 99
Número de error encontrado para el envío realizado
Detalle del error encontrado para el envío realizado

Base64 del CDR generado (Constancia de Recepción)


Solo se generará este campo si codRespuesta es 0 o 99 e indCdrGenerado
es 1
Indicador de generación de CDR.
1: Si genera CDR, 0: No genera CDR

i9",

generación de CDR

i9",

enera CDR
valor
Revisar la tabla de codigos de Error
application/json

Descripcion
codigo de error(Revisar la tabla de codigos de Error)
mensaje de error para el usuario
traza del error

Se presento una condicion inesperada que impidio completar el Request",


xception at ..."

valor
Revisar la tabla de codigos de Error
application/json

Descripcion
codigo de error(Revisar la tabla de codigos de Error)
mensaje de error para el usuario
traza del error
array de errores y descripcion del error
Código de error encontrado
Descripción de error encontrado
- Se presentaron errores de validación que impidieron completar el Request",

t no válido o no cumple con el formato establecido"

Cuadro de mensajes de Error


Validación

Número de ticket (UUID) generado por el envío realizado.


UUID se expresa mediante 32 dígitos hexadecimales divididos en
cinco grupos separados por guiones de la forma 8-4-4-4-12.
Ejemplo:
550e8400-e29b-41d4-a716-446655440026

El número de ticket no existe o no fue enviado por el RUC que


realizó el envío
E ESPECIFICACION DE SERVICIO REST

es/envios/{numTicket}

REQUEST

Formato

alfanumerico (32)

rvicios web Plataforma Nueva GRE"

Formato

RESPONSE
Formato

alfanumerico

alfanumerico
alfanumerico

alfanumerico

alfanumerico
Formato

quest",

Formato
Request",

Cuadro de mensajes de Error


Ámbito

Validaciones de forma

Validaciones de negocio
Tipo dato Condición

string M

Tipo dato
Tipo dato

string
object
string
string

string

string
Tipo dato
String
String
String

Tipo dato
string
String
String
String
number
string
codigo y descripcion del mensaje de error

0508 : Número de ticket no válido o no cumple con


el formato establecido

0509 : Número de ticket no existe o no fue enviado


por el RUC que realizó el envío

You might also like