Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Manual Servicios Factoring 15122021

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 26

MANUAL DE SERVICIOS WEB

PLATAFORMA DE CONFORMIDAD DE
COMPROBANTES DE PAGO ELECTRONICOS
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

INDICE

1. GENERALIDADES................................................................................................................3
1.1. Tipo de servicio.............................................................................................................3
1.2. Autenticación................................................................................................................3
1.3. Manejo de errores.........................................................................................................5
2. SERVICIOS DISPONIBLES.....................................................................................................7
2.1. Consulta de comprobantes por estado.........................................................................7
2.2. Envío masivo de comprobantes..................................................................................13
2.3. Consulta de envío masivo de comprobantes...............................................................15
2.4. Envío de sustento de disconformidad.........................................................................16
ANEXOS....................................................................................................................................18
I. Relación de errores generales.....................................................................................18
II. Errores específicos del servicio de consulta de comprobantes...................................18
III. Errores específicos del servicio de envío masivo de comprobantes............................19
IV. Errores específicos del servicio de consulta de envíos masivos..................................20
V. Errores específicos del servicio de envío de sustento de disconformidad..................20
VI. Estrsuctura del archivo para Conformidad/Disconformidad de comprobantes
Pendientes...........................................................................................................................21
VII. Estructura del archivo para Aceptar/No aceptar comprobantes Subsanados.............22
VIII. Estructura del archivo para Subsanar/Atender comprobantes Disconformes............23

2
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

1. GENERALIDADES

1.1. Tipo de servicio


Los servicios web descritos en el presente manual son de tipo REST.
Las URI colocadas en cada servicio son referenciales.

1.2. Autenticación
Los servicios web utilizan la autenticación basada en tokens. Para hacer uso de los servicios, el
usuario debe seguir los siguientes pasos:

a) Generación de credenciales
En el menú SOL, debe inscribir la aplicación que usará los servicios REST y generar sus
credenciales (client_id y client_secret). Este paso se realizará por única vez.
La ubicación de la opción en el menú sol es la siguiente: Credenciales de API SUNAT/
Credenciales de API SUNAT/ Credenciales de API SUNAT/ Credenciales de API SUNAT.

b) Generación del token


Con las credenciales generadas en el punto anterior, generará un token a través de un
servicio que pondrá disponible SUNAT para tal fin. Este token tendrá una vigencia la cual
se indica en el retorno del servicio (actualmente es de 1 hora) y dentro de este periodo,
podrá utilizarse las veces que requiera invocar los servicios.

Se deberá acceder a la siguiente URL, como “POST”:


https://api-seguridad.sunat.gob.pe/v1/clientessol/<client_id >/oauth2/token/

Donde:
- <client_id>: Es el client_id generado en menú SOL
- La URI colocada es referencial

3
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

En la cabecera (Header) se debe enviar el siguiente parámetro:

Content-Type Application/json

El cuerpo (Body) de la consulta deberá ser de tipo “x-www-form-urlencoded” y se debe


enviar los siguientes parámetros:

grant_type password
client_id <client_id> generado en menú SOL
client_secret <client_secret> generado en menú SOL
username <Número de RUC> + <Usuario SOL>
password <Contraseña SOL>

Donde:
- El parámetro grant_type tiene valor fijo

Y como datos de respuesta se tendrá:

access_token (token generado)


token_type (tipo de token)
expires_in (tiempo de expiración del token - El tiempo de expiración
es en segundos. Concluído el tiempo podrá generar un
nuevo token)

A continuación, se muestra un ejemplo del JSON para la generación de token usando la


herramienta REST “POSTMAN”1 :

4
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

(*) Los datos de la imagen son referenciales


1
Disponible para los sistemas operativos: Windows, Mac y Linux.

Respuesta de la consulta:

5
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

c) Uso del token


Para el uso de los servicios, se deberá haber generado previamente el token en la sección
anterior. El token se usará de la siguiente forma en la invocación del servicio:

En las Cabeceras (Headers) se deberá enviar lo siguiente:

Authorization Bearer + token

Se debe enviar la palabra “Bearer” concatenado con un espacio y luego el token


generado.

1.3. Manejo de errores


Se tienen dos niveles de verificación, uno general relacionado a la invocación y conectividad y es
común a todos los servicios, y un segundo nivel específico acorde a las características propias del
servicio que se está usando.

A) Nivel general

Cuando se presenta un error de tipo general, el servicio responde con los siguientes parámetros:

Response Header  

Parámetros Valor
HTTP status Código de Error HTTP

Content-Type application/json

Response Body    

Parámetros de Salida Descripcion Tipo dato


String
cod Código de error
msg Mensaje de error para el usuario String

exc Traza del error String

Ejemplo de Response

6
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

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

La relación de los principales errores generales se encuentra en el Anexo I.

B) Nivel específico

Si se trata de un error propio del servicio que se está invocando, el sistema retornará un error
similar al anterior con el código de error HTTP igual a 422. Adicionalmente, mostrará el código de
error específico de las validaciones funcionales del servicio.

Response Body    
Parámetros de Salida Descripcion Tipo dato
cod Código de error (Mostrará 422) String
msg Mensaje de error para el usuario String
exc Traza del error String
errors Array de errores y descripción del error String

Ejemplo de Response
{
"cod": "422",
"msg": "Unprocessable Entity - Se presentaron errores de validacion que impidieron
completar el Request",
"exc": null,
"errors": [
{
"codError": "166",
"desError": "Código de ticket no enviado."
}
]
}

Las validaciones y códigos de error específicos por servicios se encuentran en los Anexos II, III, IV y
V.

7
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

2. SERVICIOS DISPONIBLES

2.1. Consulta de comprobantes por estado


Este servicio permite obtener la relación de facturas o recibos por honorarios que corresponden a
un rango de fechas y estado determinado.

Consideraciones

 Se deben ingresar todos los parámetros de entrada.


 El rango máximo entre la fecha de inicio y la fecha de fin es 15 días.
 El servicio retornará por cada página, 50 o 100 comprobantes (dependiendo del valor
enviado en el parámetro numRegPag). El sistema que hace uso del servicio debe calcular
la cantidad de invocaciones que deberá hacer para obtener la totalidad de comprobantes.
Para ello el servicio siempre retorna la cantidad total de comprobantes que cumplen con
el filtro solicitado. Dividiendo esta cantidad total entre la cantidad de comprobantes por
página, se obtendrá la cantidad de páginas totales, la cual representa la cantidad de
invocaciones que debe hacer el sistema cliente. Cada invocación debe ir con los mismos
parámetros, excepto el Número de página (numPag) que debe tener el número de página
que se desea obtener.
 En caso no haya errores en la petición, el servicio responderá con un código 200 y en el
detalle remitirá la información de la página solicitada.
 Dependiendo del estado que se consulte, el servicio retornará los campos que
correspondan. En la sección siguiente Parámetros de retorno, se detalla cada tipo de
response.
 De presentarse algún error, se procede de acuerdo a lo indicado en el numeral 1.3
Manejo de errores.

Parámetros de entrada

Operación Listar comprobantes


Método HTTP GET
URI https://api-cpe.sunat.gob.pe/v1/contribuyente/controlcpe/comprobantes ?
codCpe={codCpe}&fecInicio={f1}&fecFin={f2}&indTipoPedido={indTipoPedido}&
codEstado={codEstado}&numPag={numPagina}&numRegPag={numRegPagina}

Request URI

8
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

Parámetros de   Tipo
Entrada Descripción Formato dato
codCpe Código de tipo de comprobante, solo se permite: Alfanumérico String
01: Factura
02: Recibo por Honorarios

fecInicio Fecha de emisión AAAA-MM-DD Date


fecFin Fecha de emisión AAAA-MM-DD Date
indTipoPedido Indicador de tipo de pedido: Alfanumérico String
C: Compras (cuando el contribuyente es el Adquirente)
V: Ventas (cuando el contribuyente es el Emisor)

codEstado Código de estado del comprobante en la Plataforma de Confirmación de Alfanumérico String


CPE.
Solo se permite:
Cuando se trata de indTipoPedido = “C: Compras”
01: PENDIENTE
03: SUBSANADO
06: PENDIENTE POR REINICIO

Cuando se trata de indTipoPedido = “V: Ventas”


02: DISCONFORME
numPag Número de página Numérico Integer

numRegPag Número de registros que nos devuelve cada página, solo se permite: 50, Numérico Integer
100

Parámetros de retorno
Response Header  
Parámetros valor
HTTP status 200
Content-Type application/json

a) Si se trata de los estados 01-Pendiente y 06-Pendiente por Reinicio

Response Body
Parámetros de Salida Descripción Formato Tipo dato
numTotalReg Número total de registros Numérico Integer
numPag Número de página Numérico Integer
numRegPag Número de registros que nos devuelve cada página Numérico Integer
comprobantes Listado de comprobantes Array
comprobantes.numRuc Número de RUC del emisor del comprobante Alfanumérico String
comprobantes.codCpe Código del tipo de comprobante Alfanumérico String
comprobantes.numSerie Serie del comprobante Alfanumérico String
comprobantes.numCpe Número del comprobante Numérico Integer
comprobantes.fecEmision Fecha de emisión del comprobante AAAA-MM- Date
DDThh:mm:ss.SS
S

9
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

comprobantes.fecPuesta Fecha puesta a disposición en la Plataforma MIGE - AAAA-MM- Date


Disposicion Confirmación de CPE. DDThh:mm:ss.SS
S
Para el caso del estado "06" PENDIENTE POR REINICIO,
se mostrará la fecha de puesta a disposición de la Nota
de crédito de tipo "13: Ajustes - montos y/o fechas de
pago" seleccionada en la subsanación

comprobantes.fecPlazoPago Plazo de pago acordado (fecha de la última cuota) AAAA-MM- Date


Este dato corresponderá a la fecha de pago acordado DDThh:mm:ss.SS
de la Factura/RHE original o, de la última fecha de pago S
acordado registrado en la Nota de crédito de tipo "13:
Ajustes - montos y/o fechas de pago" emitida hacia la
Factura/RHE (de existir).

Para el caso del estado "06" PENDIENTE POR REINICIO,


se mostrará el Plazo de pago acordado de la Nota de
crédito de tipo "13: Ajustes - montos y/o fechas de
pago" seleccionada en la subsanación.

comprobantes.mtoPago Monto neto pendiente de pago Numérico Decimal(12,2


Pendiente Este dato corresponderá al monto neto pendiente de )
pago de la Factura/RHE original o, del último monto
neto pendiente de pago registrado en la Nota de
crédito de tipo "13: Ajustes - montos y/o fechas de
pago" emitida hacia la Factura/RHE (de existir).

Para el caso del estado "06" PENDIENTE POR REINICIO,


se mostrará el Monto neto pendiente de pago de la
Nota de crédito de tipo "13: Ajustes - montos y/o
fechas de pago" seleccionada en la subsanación.

comprobantes.codMoneda Código del tipo de moneda. Ejemplo: PEN, USD, etc Alfanumérico String
comprobantes.mtoImporte Monto del importe total de la Factura Numérico Decimal(12,2
TotalFactura Solo se mostrará el monto de la factura si codCpe = 01 )
Factura, caso contrario mostrará 0.00

comprobantes.mtoTotalRhe Monto total por honorarios del RHE Numérico Decimal(12,2


Solo se mostrará el monto total por honorarios si )
codCpe = 02 Recibo por Honorarios, caso contrario
mostrará 0.00
comprobantes.mtoRetencio Monto de retención del RHE Numérico Decimal(12,2
n Solo se mostrará el monto de retención si codCpe = 02 )
Rhe Recibo por Honorarios, caso contrario mostrará 0.00

comprobantes.mtoTotal Monto total neto recibido del RHE Numérico Decimal(12,2


NetoRecibidoRhe Solo se mostrará el monto total neto recibido si codCpe )
= 02 Recibo por Honorarios, caso contrario mostrará
0.00
comprobantes.cuotas Listado de cuotas del comprobante Array
En caso existe una Nota de crédito de tipo "13: Ajustes
- montos y/o fechas de pago", se mostrará la
información de esa última Nota de crédito de tipo 13.
Si no mostrará la información de la Factura/RHE
original.

comprobantes.cuotas.num Número de cuota Alfanumérico String


Cuota
comprobantes.cuotas.mto Monto de la cuota Numérico Decimal(12,2
Cuota )

10
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

comprobantes.cuotas.fec Fecha de vencimiento de la cuota AAAA-MM- Date


VencimientoCuota DDThh:mm:ss.SS
S

Ejemplo JSON Response Body (para el caso de consulta de comprobantes con estado PENDIENTE)
{
"numTotalReg":321,
"numPag":1,
"numRegPag":50,
"comprobantes": [{
"numRuc":"20433901127",
"codCpe":"01",
"numSerie":"F001",
"numCpe":1980,
"fecEmision":"2021-05-17T15:21.01",
"fecPuestaDisposicion":"2021-05-17T15:22.01",
"fecPlazoPago":"2021-06-17T00:00:00",
"mtoPagoPendiente":3450.96,
"codMoneda":"PEN",
"mtoImporteTotalFactura":3500.00,
"mtoTotalRhe":0.00,
"mtoRetencionRhe":0.00,
"mtoTotalNetoRecibidoRhe":0.00,
"cuotas": [{
"numCuota":"001",
"mtoCuota":2000.00,
"fecVencimientoCuota":"2021-05-30T00:00:00"
},
{
"numCuota":"002",
"mtoCuota":1450.96,
"fecVencimientoCuota":"2021-06-17T00:00:00"
}]
},
{
"numRuc":"20433901127",
"codCpe":"01",
"numSerie":"F001",
"numCpe":1980,
"fecEmision":"2021-05-17T15:21.01",
"fecPuestaDisposicion":"2021-05-17T15:22.01",
"fecPlazoPago":"2021-06-17T00:00:00",
"mtoPagoPendiente":3450.96,
"codMoneda":"PEN",
"mtoImporteTotalFactura":3500.00,
"mtoTotalRhe":0.00,
"mtoRetencionRhe":0.00,
"mtoTotalNetoRecibidoRhe":0.00,
"cuotas": [{
"numCuota":"001",
"mtoCuota":2000.00,
"fecVencimientoCuota":"2021-05-30T00:00:00"
},
{
"numCuota":"002",
"mtoCuota":1450.96,
"fecVencimientoCuota":"2021-06-17T00:00:00"
}]

11
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

}
]
}

b) Si se trata del estado 02-Disconforme

Response Body
Parámetros de Salida Descripcion Formato Tipo dato
numTotalReg Número total de registros Numérico Integer
numPag Número de página Numérico Integer
numRegPag Número de registros que nos devuelve cada página Numérico Integer
comprobantes Listado de comprobantes Array
comprobantes.numRuc Número de RUC del emisor del comprobante Alfanumérico String
comprobantes.codCpe Código del tipo de comprobante Alfanumérico String
comprobantes.numSerie Serie del comprobante Alfanumérico String
comprobantes.numCpe Número del comprobante Numérico Integer
comprobantes.fecPuesta Fecha puesta a disposición en la Plataforma MIGE - AAAA-MM- Date
Disposicion Confirmación de CPE. DDThh:mm:ss.SS
S
comprobantes.disconformidad Detalle de la disconformidad. Object Object
Debe devolver la última disconformidad realizada

comprobantes.disconformidad Fecha de disconformidad AAAA-MM- String


. DDThh:mm:ss.SS
fecDisconformidad S
comprobantes.disconformidad Lista de códigos de motivos de disconformidad Array Array
.
motivos
comprobantes.disconformidad Sustento de disconformidad Alfanumérico String
.
sustento

Ejemplo JSON Response Body

12
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

{
"numTotalReg": 321,
"numPag": 1,
"numRegPag": 50,
"comprobantes": [
{
"numRuc": "20433901127",
"codCpe": "01",
"numSerie": "F001",
"numCpe": 1980,
"fecPuestaDisposicion": "2021-05-17T15:22:01.000",
"disconformidad": {
"fecDisconformidad": "2021-05-17T15:22:01.456",
"motivos": [
"1",
"2"
],
"sustento": "Disconformidad, se ha puesto los motivos"
}
}
]
}

c) Si se trata del estado 03-Subsanado

Response Body
Parámetros de Salida Descripción Formato Tipo dato
numTotalReg Número total de registros Numérico Integer
numPag Número de página Numérico Integer
numRegPag Número de registros que nos devuelve cada página Numérico Integer
comprobantes Listado de comprobantes Array
comprobantes.numRuc Número de RUC del emisor del comprobante Alfanumérico String
comprobantes.codCpe Código del tipo de comprobante Alfanumérico String
comprobantes.numSerie Serie del comprobante Alfanumérico String
comprobantes.numCpe Número del comprobante Numérico Integer
comprobantes.fecPuesta Fecha puesta a disposición en la Plataforma MIGE - AAAA-MM- Date
Disposicion Confirmación de CPE. DDThh:mm:ss.SS
S
comprobantes.subsanacion Detalle de la subsanación. object
Debe devolver la última subsanación realizada

comprobantes.subsanacion. Fecha de subsanación AAAA-MM- String


fecSubsanacion DDThh:mm:ss.SS
S
comprobantes.subsanacion. Listado de los comprobantes que subsanan la Array Array
notasCpe disconformidad
comprobantes.subsanacion. Código del tipo de comprobante que sustenta la Alfanumérico String
notasCpe.codCpe subsanación. Puede ser:
07: Nota de crédito
08: Nota de débito
comprobantes.subsanacion. Serie del comprobante que sustenta la subsanación Alfanumérico String

13
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

notasCpe.numSerie
comprobantes.subsanacion. Número del comprobante que sustenta la subsanación Numérico Integer
notasCpe.numCpe
comprobantes.subsanacion. Lista de códigos de motivos de disconformidad Array Array
notasCpe.motivos
comprobantes.subsanacion Comentario que sustenta la subsanación Alfanumérico String
.notasCpe.comentario

Ejemplo JSON Response Body


{
"numTotalReg": 321,
"numPag": 1,
"numRegPag": 50,
"comprobantes": [
{
"numRuc": "20433901127",
"codCpe": "01",
"numSerie": "F001",
"numCpe": 1980,
"fecPuestaDisposicion": "2021-05-17T15:22:01.000",
"subsanacion": {
"fecSubsanacion": "2021-05-17T15:22:01.456",
"notasCpe" : [ {
"codCpe": "07",
"numSerie": "F001",
"numCpe": 1980,
"motivos": [
"1",
"2"
],
"comentario": "Subsanar a travez de una nota de credito 15"
}, {
"codCpe": "07",
"numSerie": "F001",
"numCpe": 1981,
"motivos": [
"1",
"2"
],
"comentario": "Subsanar a travez de una nota de credito 15"
}
]
}
}
]
}

2.2. Envío masivo de comprobantes


Mediante este servicio, se enviarán los archivos planos que contendrán los comprobantes.

Consideraciones

14
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

 El proceso de envío de archivos es asíncrono, por ello, este servicio recibirá el pedido de
procesamiento del archivo y retornará un número de ticket con el cual se podrá consultar
el resultado del proceso.
 El archivo a enviar debe tener formato txt y cumplir con la estructura definida. Las
estructuras se encuentran en los Anexos VI, VII y VIII.
 Para efectos del envío, el archivo txt debe comprimirse y enviarse con el mismo nombre
del archivo txt, pero con extensión .zip.
 Debe calcularse el hash del archivo txt haciendo uso del algoritmo SHA-256, el cual será
enviado como parámetro de entrada.

Parámetros de entrada

Operación Registrar envios masivos


Método HTTP POST
URI pública https://api-cpe.sunat.gob.pe/v1/contribuyente/controlcpe/enviosmasivoext/registro

Request FormData
Parámetros Descripcion Formato Tipo dato
de   Entrada
archivo Archivo plano Binario File
El nombre del archivo debe cumplir con el siguiente formato:
“99999999999-TTT-AAAAMMDD-99.txt” donde:
• 99999999999: Número de RUC del contribuyente (Adquirente) que
da la conformidad/disconformidad
• TTT: Identificador de archivo
- PND: Identifica a comprobantes en estado Pendiente
- PNR: Identifica a comprobantes en estado Pendiente por reinicio
- SUB: Identifica a comprobantes en estado Subsanado
- DIS: Identifica a comprobantes en estado Disconforme

• AAAAMMDD: Fecha de envío del archivo en formato


“AAAAMMDD”, ejemplo: 20200826
• 99: Número correlativo de envío del archivo, se espera un mínimo
de 1 y máximo de 2 dígitos.
Ejemplo:
20433901128-PND-20200908-99.txt

El archivo debe enviarse comprimido con el mismo nombre del


archivo txt, pero con extensión .zip
Ejemplo:
20433901128-PND-20200908-99.zip

valHash Valor Hash del archivo txt Alfanumérico Text

Parámetros de retorno

Response Header  

15
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

Parámetros valor
HTTP status 200

Content-Type application/json

Response Body
Parámetros Descripcion Formato Tipo dato
de Salida
numTicket El formato del número de ticket de respuesta es: Alfanumérico String
“AAAA99999999” donde:
• AAAA: Año actual
• 99999999: Número correlativo de envío, inicia en 1 por año,
completar con ceros a la izquierda para completar los 8 dígitos.

Ejemplo JSON Response Body


{
"numTicket":"AAAA99999999"
}

2.3. Consulta de envío masivo de comprobantes


Este servicio es complementario al servicio de envío de archivos y permite conocer el estado y
resultado final del proceso de envío del archivo con los comprobantes.

Consideraciones

 El proceso de recepción del archivo con los comprobantes realiza una serie de
verificaciones previos a su aceptación. En caso de existir comprobantes con algún tipo de
inconsistencia, estos no serán cargados a la plataforma y serán reportados en un archivo
de errores, el cual será enviado como parte de la respuesta de este servicio. El archivo
retornará en un campo codificado en base 64.
 El nombre del archivo de errores es el mismo que el enviado, pero con el prefijo
“_ERROR”
Ejemplo:
Archivo txt enviado : 20433901128-PND-20200908-99.txt
Archivo txt con comprobantes con error : 20433901128-PND-20200908-99_ERROR.txt

 La estructura del archivo es la misma que el archivo enviado, pero incluirá una columna
adicional con los códigos y descripción del error detectado. En caso se detecte más de un
error, estos irán separados por una coma.

 Los estados 01 y 02 indican que todavía se encuentra en proceso la recepción del archivo,
y los estados 03 y 04 indican que el proceso ha concluido.

16
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

Parámetros de entrada

Operación Consultar estado de envío masivo


Método HTTP GET
URI pública https://api-cpe.sunat.gob.pe/v1/contribuyente/controlcpe/enviosmasivoext?NumTicket={ticket}

Request URI
Parámetros de   Entrada Descripción Formato Tipo dato
numTicket Número de ticket Alfanumérico String

Parámetros de retorno

Response Header  
Parámetros valor
HTTP status 200
Content-Type application/json

Response Body

Parámetros de Salida Descripcion Formato Tipo dato


codEstadoProceso Estado proceso: se muestra el estado Alfanumérico String
del proceso de envío. Los estados
pueden ser:
01: CARGADO
02: VALIDANDO ARCHIVO
03: PROCESADO CON ERRORES
04: PROCESADO
desArchivo Descripción de nombre del archivo Alfanumérico String
fecRegis Fecha de registro del txt AAAA-MM- Date
DDThh:mm:ss.SSS
cntRegistrosEnviados Cantidad de Registros enviados Numérico Integer
cntRegistrosCorrectos Cantidad de Registros correctos Numérico Integer
cntRegistrosErrores Cantidad de Registros con error solo Numérico Integer
cuando presente errores
arcErrores Archivo txt con la lista de errores Alfanumérico String
codificado en base64, en caso exista
(cntRegistros > 0)

Ejemplo JSON Response Body


{
"codEstadoProceso": "04",
"desArchivo": "20433901128-PND-20200908-99.txt",
"valHash": "928djjdii2100ksajkajhcd",
"fecRegis": "2020-09-09",

17
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

"cntRegistrosCpe": 100,
"cntRegistrosCorrectos": 80,
"cntRegistrosErrores": 20,
"arcErrores": "9021jddkk190902100kksdajdnc "
}

2.4. Envío de sustento de disconformidad


Este servicio permite enviar un documento de sustento de disconformidad para uno o varios
comprobantes.

Consideraciones

 Los tipos de archivos que se pueden cargar son: pdf, doc, docx, xls, xlsx, ppt, pptx, jpg,
jpeg o txt
 Se debe enviar los datos de identificación del comprobante: Ruc emisor, tipo de
comprobante, serie y número del comprobante. Un documento puede servir de sustento
de disconformidad de más de un comprobante, de ser el caso se enviarán las
identificaciones de todos los comprobantes involucrados en un Json.
 En caso no haya errores en la petición, el servicio responderá con un código 200 y no
mostrará ningún detalle adicional.
 El tamaño máximo del sustento será de 5 MB.

Parámetros de entrada

Operación Envío de archivo de sustento


Método HTTP POST
URI pública https://api-cpe.sunat.gob.pe/v1/contribuyente/controlcpe/comprobantes/sustento

Request FormData
Parámetros de   Entrada Descripcion Formato Tipo dato
archivo Archivo de sustento Binario File
comprobantes Archivo de json Json Text
Ejemplo de la estructura json:
[
{
"numRuc": "20145236524",
"codCpe": "01",
"numSerie": "E001",
"numCpe": 81
},
{
"numRuc": "20145236524",
"codCpe": "02",
"numSerie": "E002",
"numCpe": 90

18
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

}
]

Parámetros de retorno

Response Header  
Parámetros valor
HTTP status 200
Content-Type application/json

19
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

ANEXOS
I. Relación de errores generales

Código de error Descripción del mensaje de error

400 Bad Request - El Request no puede ser entendido por el Servidor debido a errores de Sintaxis, El
cliente no debe repetir el Request sin modificaciones

401 Unauthorized - Fallo en la autenticación del Cliente

403 Forbidden - El Cliente no tiene autorización para acceder al Recurso

404 Not Found - El Recurso Solicitado no puede ser encontrado

405 Not Allowed - El Método HTTP utilizado en el Request no es soportado por el Recurso

406 Not Acceptable - El Recurso no puede responder al Cliente en el Media Type solicitado en el
Request

415 Unsupported Media Type - La Entidad en el Body del Request está en un Media Type que no es
soportado por el Recurso

422 Unprocessable Entity - Se presentaron errores de validacion que impidieron completar el Request

500 Internal Server Error - Se presento una condición inesperada que impidió completar el Request

503 Service Unavailable - El Servidor no está disponible temporalmente o está muy ocupado para
responder al Request

II. Errores específicos del servicio de consulta de comprobantes


Cuadro de mensajes de Error
Campo Validación Código y descripción del
mensaje de error
codCpe No existe el campo o es vacío. 102 - Código de comprobante no
enviado o es vacío.
codCpe Código de tipo de comprobante, solo se permite: 103 - Código de comprobante no
01 Factura. permitido o no valido.
02 Recibo por Honorarios.
fecInicio No existe el campo o es vacío. 150 - Fecha de Emisión/Puesta a
disposición de inicio del comprobante
no enviado o es vacío.
fecInicio Debe cumplir con el siguiente formato “AAAA-MM-DD”. 151 - Formato de fecha de
Emisión/Puesta a disposición de inicio
no permitido o no válido

20
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

fecInicio Fecha de Emisión/Puesta a disposición de inicio no puede ser NN1 - Fecha de Emisión/Puesta a
mayor a la fecha de Emisión/Puesta a disposición fin disposición de inicio no puede ser
mayor a la fecha de Emisión/Puesta a
disposición fin
fecFin No existe el campo o es vacío. 152 - Fecha de Emisión/Puesta a
disposición fin del comprobante no
enviado o es vacío.
fecFin Debe cumplir con el siguiente formato “AAAA-MM-DD”. 153 - Formato de fecha de
emisión/Puesta a disposición fin no
permitido o no válido
fecFin Fecha de Emisión/Puesta a disposición fin no puede ser menor NN2 - Fecha de Emisión/Puesta a
a la fecha de Emisión/Puesta a disposición de inicio disposición fin no puede ser menor a
la fecha de Emisión/Puesta a
disposición de inicio
fecInicio/ Rango máximo de consulta es 15 días NN3 - Rango máximo de consulta es
fecFin 15 días
codEstado No existe el campo o es vacío. 115 - Código de estado de la condición
no enviado o es vacío.
Solo se permite: 116 - Código de estado de la condición
Cuando se trata de indTipoPedido = “C: Compras” no permitido.
01: PENDIENTE
03: SUBSANADO
06: PENDIENTE POR REINICIO
Cuando se trata de indTipoPedido = “V: Ventas”
02: DISCONFORME

numRuc No existe el campo o es vacío. 158 - Número de RUC del emisor no


enviado o es vacío.

numRuc Es diferente a numérico de 11 dígitos. 159 - Solo se permite dato numérico


de 11 dígitos para el número de RUC
del emisor.
numPag No existe el campo o es vacío. 183 - Número de página no enviado o
vacío.
numPag Dato numérico de 1 a 8 dígitos, mayor a cero. 184 - Número de página tiene dato o
formato no válido, solo se permite
dato numérico
numRegPag No existe el campo o es vacío. 185 - Número de registros por página
no enviado o vacío.

numRegPag Dato numérico, mayor a cero. Solo se permite: 50 o 100 186 - Número de registros por página
tiene dato o formato no válido, solo
se permite dato numérico.
indTipoPedido No existe el campo o es vacío. 192 - Indicador de tipo de pedido no
enviado o es vacío.

Solo se permite: 193 - Indicador de tipo de pedido no


C: Compras válido.
V: Ventas

III. Errores específicos del servicio de envío masivo de comprobantes


Cuadro de mensajes de Error
Campo Validación Código y descripción del
mensaje de error
archivo El nombre del archivo debe cumplir con las reglas de 183 - Error con el nombre del archivo,
nomenclatura. verifique las reglas de nomenclatura
del archivo.

21
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

Debe existir consistencia entre el número de RUC del nombre 184 - Error con el nombre del archivo,
del archivo y el número de RUC del contribuyente autenticado el número de RUC del archivo no
en el sistema. corresponde con el número de RUC
del contribuyente.
Identificador del archivo (TTT) no valido, solo se permite “PND”,
190 - Error con el nombre del archivo,
“PNR”, “SUB”, “DIS” según sea el caso.
el identificador del archivo debe ser
<<identificador del archivo>>.
La fecha de envío del archivo debe tener el formato 185 - Error con el nombre del archivo,
“AAAAMMDD” y debe ser una fecha valida. la fecha de envío no corresponde a
una fecha valida.
La fecha de envío del archivo debe corresponder a la fecha 186 - Error con el nombre del archivo,
actual. la fecha de envío debe ser igual a la
fecha actual.
El número correlativo de envío debe ser un dato numérico 187 - Error con el nombre del archivo,
entre 1 y hasta 2 caracteres. el número correlativo del archivo debe
ser numérico y debe tener entre 1 y
hasta 2 caracteres.
No debe enviar un archivo duplicado con el mismo nombre. 195 - El archivo <nombre del archivo
txt> fue previamente enviado.
El archivo TXT enviado, debe ser mayor a 0 bytes. 191 - El archivo <nombre del archivo
txt> debe ser mayor a 0 bytes.
valHash Valor hash no enviado. 193 - Se debe enviar el hash del
archivo.
El valor Hash no coincide con el archivo enviado 194 - El valor Hash no coincide con el
archivo enviado.

IV. Errores específicos del servicio de consulta de envíos masivos


Cuadro de mensajes de Error
Campo Validación Código y descripción del
mensaje de error
No existe el campo o es vacío 166 - Código de ticket no enviado.
Debe cumplir con lo siguiente: cantidad de caracteres igual a 12 167 - Sólo se permite dato numérico
numTicket de 12 dígitos.
Debe existir el número de ticket. 194 - El número de ticket enviado no
existe

V. Errores específicos del servicio de envío de sustento de


disconformidad
Cuadro de mensajes de Error
Campo Validación Código y descripción del
mensaje de error
archivo No existe el campo o es vacío. 172 - Archivo no enviado o es vacio
El archivo enviado sea del tipo pdf, doc, docx, xls, xlsx, ppt, pptx, 201 - El sistema muestra el siguiente
jpg, jpeg o txt (considerar las mayúsculas o minúsculas) mensaje: “Solo está permitido cargar
archivos de tipo: pdf, doc, docx, xls,
xlsx, ppt, pptx, jpg, jpeg o txt”, y se

22
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

detiene el proceso.
El tamaño máximo del archivo que se desea cargar es de 5 Mb 202 - El sistema muestra el siguiente
mensaje: “El tamaño máximo del
archivo no debe superar a 5 Mb”, y se
detiene el proceso.
El archivo enviado, debe ser mayor a 0 bytes 203 - El sistema muestra el siguiente
mensaje: “El archivo enviado debe ser
mayor a 0 bytes”, y se detiene el
proceso.
numRucCpe Es diferente a numérico de 11 dígitos. 101 - Solo se permite dato numérico de
11 dígitos para el número de RUC.
codCpe Código de tipo de comprobante, solo se permite: 103 - Código de comprobante no
01 Factura electrónica permitido o no valido.
02 Recibo por Honorarios electrónico
numSerieCpe Número de serie del comprobante , Solo se permite: 105 - Número de serie del
E001 Serie de facturas y recibos por honorarios comprobante no permitido o no valido.
F### Serie de facturas
numCpe Dato numérico de 1 a 8 dígitos 107 - Número de comprobante tiene
tipo de dato o formato no valido. Solo
se permite dato numérico de 1 hasta 8
dígitos.
No existe el comprobante electrónico solicitado. No existe el 108 - El Comprobante no existe.
comprobante electrónico solicitado.
Solo en caso de encontrar el comprobante seguir con las demás
“Validaciones del comprobante”.

VI. Estructura del archivo para Conformidad/Disconformidad de


comprobantes Pendientes

Camp Longitud Descripción Formato Comentarios/Observaciones


o

1 11 RUC del Emisor del Numérico  


comprobante

2 2 Código de tipo de Alfanumérico Solo se permite:


comprobante 01: Factura
02: Recibo por Honorarios

3 4 Serie del comprobante Alfanumérico Solo se permite:


E001
F###

4 Hasta 8 Número del comprobante Numérico  

5 1 Indicador de Numérico Solo se permite:


Conformidad/Disconformidad 1: Conformidad
2: Disconformidad

6 Hasta 20 Motivos de disconformidad Alfanumérico Solo se permite los siguientes motivos:


1: Plazo de pago acordado
2: Monto neto pendiente de pago

23
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

3: Reclamo respecto de bienes adquiridos o servicios


prestados

Solo indicar los números de motivos de


disconformidad separados por "," (coma) cuando el
campo "Indicador de Conformidad/Disconformidad"
es 2.
En caso el campo "Indicador de
Conformidad/Disconformidad" es 1, solo indicar "-"
(guion)

7 Hasta Sustento de disconformidad Alfanumérico En caso el campo "Indicador de


500 Conformidad/Disconformidad" es 1, solo indicar "-"
(guion)

Ejemplo de archivo txt

1 2 3 4 5 6 7

NUM RUC COD NUM NUM CPE CONDICION: MOTIVOS: DEL SUSTENTO DE
CPE SERIE 1: CONFIRMIDAD 1 AL 3 DISCONFORMIDAD
CPE 2: DISCONFORMIDAD

20433901127 01 E001 255 1 - -

20562390108 01 F001 7651 2 1,2,3 SUSTENTO 1

VII. Estructura del archivo para Aceptar/No aceptar comprobantes


Subsanados

Camp Longitud Descripción Formato Comentarios/Observaciones


o

1 11 RUC del Emisor del Numérico  


comprobante

2 2 Código de tipo de Alfanumérico Solo se permite:


comprobante 01: Factura
02: Recibo por Honorarios

3 4 Serie de comprobante Alfanumérico Solo se permite:


E001
F###

4 Hasta 8 Número de comprobante Numérico  

5 1 Indicador de Aceptación de Numérico Solo se permite:


Subsanación 1: Aceptar Subsanación
2: No Aceptar Subsanación

24
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

6 Hasta Comentario Alfanumérico Comentario respecto de la aceptación o no aceptación


500 de la subsanación

Ejemplo de archivo txt

1 2 3 4 5 6

NUM RUC COD NUM NUM CONDICION: COMENTARIO


CPE SERIE CPE 1: ACEPTAR SUBSANACION
CPE 2: NO ACEPTAR SUBSANACION

20433901127 01 E001 255 1 COMENTARIO 1

20562390108 01 E001 259 2 COMENTARIO 2

VIII. Estructura del archivo para Subsanar/Atender comprobantes


Disconformes

Camp
o Longitud Descripción Formato Comentarios/Observaciones

1 11 RUC del Emisor del Numérico  


comprobante

2 2 Código de tipo de Alfanumérico Solo se permite:


comprobante 01: Factura
02: Recibo por Honorarios

3 4 Serie del comprobante Alfanumérico Solo se permite:


E001
F###

4 Hasta 8 Número del comprobante Numérico  

5 1 Indicador de Numérico Solo se permite:


Subsanación/Atención 1: Subsanar
2: Atender

6 2 Código de tipo de Alfanumérico Solo se permite:


comprobante sustento de 07: Nota de crédito - Factura
subsanación 08: Nota de débito - Factura
R7: Nota de crédito - Recibo por Honorarios

En caso el campo "Indicador de Subsanación/Atención"


es 2, solo indicar "-" (guion)

7 4 Serie de comprobante Alfanumérico Solo se permite:


E001

25
PLATAFORMA DE CONFORMIDAD DE COMPROBANTES – SERVICIOS WEB

sustento de subsanación F###


En caso el campo "Indicador de Subsanación/Atención"
es 2, solo indicar "-" (guion)

8 Hasta 8 Número de comprobante Numérico En caso el campo "Indicador de Subsanación/Atención"


sustento de subsanación es 2, solo indicar "-" (guion)

9 Hasta 20 Motivos de Alfanumérico Solo se permite los siguientes motivos:


disconformidad sustento 1: Plazo de pago acordado
de la subsanación 2: Monto neto pendiente de pago
3: Reclamo respecto de bienes adquiridos o servicios
prestados

Solo indicar los números de motivos de disconformidad


separados por "," (coma) cuando el campo "Indicador de
Subsanación/Atención" es 1.
En caso el campo "Indicador de Subsanación/Atención"
es 2, solo indicar "-" (guion)

10 Hasta Comentario Alfanumérico  


500

Ejemplo de archivo txt

1 2 3 4 5 6 7 8 9 10

NUM RUC COD NUM NUM CONDICION: TIPO DE SERIE DE NUMERO DE MOTIVOS COMENTARIO
CPE SERIE CPE 1: SUBSANAR COMP. COMP. COMP. QUE
CPE 2: ATENDER SUSTENTO DE SUSTENTO DE SUSTENTO DE SUSTENTA
SUBSANACION SUBSANACION SUBSANACION

COMENTARIO
20433901127 01 E001 255 1 07 F001 345 1,2 1

COMENTARIO
20433901127 01 E001 255 1 07 F001 346 3 2

20433901127 01 F002 900 2 - - - - COMENTARIO

26

También podría gustarte