NOTA DE DÉBITO

Generación de nota de débito

Para poder continuar con este proceso, previamente debe haber generado una factura, tenga en cuenta que si desea realizar la nota de débito esta debe emitirse dentro de los 15 días hábiles de emitido la factura. Si quiere aumentar al monto de pago de la factura, esta es la opción correcta. De igual modo puedes obtener más información de la misma SUNAT.

Como endpoint para este poceso se tiene:

            
https://billing.codideep.com/debitnote/generatexml
            
            
            Copiado!
        

Como siguiente punto se tiene algunos ejemplos de como se debería consumir de la API:

                    
                    
            {
                "dto_codigoUnicoVenta": 1,
                "dto_serieNumeroComprobanteEf": "F001-00000001",
                "dto_codigoMotivoNota": "01",
                "dto_descripcionMotivoNota": "Add product",
                "dto_serieNumeroComprobanteVentaEf": "F001-00000001",
                "dto_rucEmpresaEf": "00000000000",
                "dto_razonSocialEmisorEf": "CODIDEEP E.I.R.L.",
                "dto_userNameEf": "",
                "dto_passwordEf": "",
                "dto_documentoClienteEf": "10707485863",
                "dto_denominacionClienteEf": "Kevin Arnold Arias Figueroa",
                "dto_divisaEf": "Soles",
                "dto_totalNotaEf": 118.00,
                "dto_subTotalNotaEf": 100,
                "dto_listaProductoEf": [
                    {
                        "nombreProductoEf": "cuaderno",
                        "cantidadProductoEf": 1,
                        "precioTotalVentaProductoEf": 118,
                        "subTotalVentaProductoEf": 100,
                        "impuestoTotalVentaProductoEf": 18,
                        "precioUnitarioVentaProductoEf": 118,
                        "subTotalPrecioUnitarioVentaProductoEf": 100,
                        "situacionImpuestoProductoEf": "Afecto",
                        "porcentajeTributacionProductoEf": 18
                    }
                ]
            }
                        
                        
            
            $data = array(
                    "dto_codigoUnicoVenta"=> 1,
                    "dto_serieNumeroComprobanteEf"=> "F001-00000001",
                    "dto_codigoMotivoNota"=> "01",
                    "dto_descripcionMotivoNota"=> "Add product",
                    "dto_serieNumeroComprobanteVentaEf"=> "F001-00000001",
                    "dto_rucEmpresaEf"=> "00000000000",
                    "dto_razonSocialEmisorEf"=> "CODIDEEP E.I.R.L.",
                    "dto_userNameEf"=> "",
                    "dto_passwordEf"=> "",
                    "dto_documentoClienteEf"=> "10707485863",
                    "dto_denominacionClienteEf"=> "Kevin Arnold Arias Figueroa",
                    "dto_divisaEf"=> "Soles",
                    "dto_totalNotaEf"=> 118.00,
                    "dto_subTotalNotaEf"=> 100,
                    "dto_listaProductoEf" array(
                        array(
                            "nombreProductoEf"=> "cuaderno",
                            "cantidadProductoEf"=> 1,
                            "precioTotalVentaProductoEf"=> 118,
                            "subTotalVentaProductoEf"=> 100,
                            "impuestoTotalVentaProductoEf"=> 18,
                            "precioUnitarioVentaProductoEf"=> 118,
                            "subTotalPrecioUnitarioVentaProductoEf"=> 100,
                            "situacionImpuestoProductoEf"=> "Afecto",
                            "porcentajeTributacionProductoEf"=> 18
                            )
                    )
            );
            
            $options = array(
                'http' => array(
                    'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                    'method'  => 'POST',
                    'content' => http_build_query($data)
                )
            );
            $context  = stream_context_create($options);
            $result = file_get_contents("https://billing.codideep.com/debitnote/generatexml", false, $context);
            echo $result;
                        
                        
                        
            // La URL de la API a la que se enviará la solicitud
            const url = 'https://billing.codideep.com/debitnote/generatexml';
            // Los datos de la nota de crédito en formato JSON
            const data = {
                "dto_codigoUnicoVenta": 1,
                "dto_serieNumeroComprobanteEf": "F001-00000001",
                "dto_codigoMotivoNota": "01",
                "dto_descripcionMotivoNota": "Add product",
                "dto_serieNumeroComprobanteVentaEf": "F001-00000001",
                "dto_rucEmpresaEf": "00000000000",
                "dto_razonSocialEmisorEf": "CODIDEEP E.I.R.L.",
                "dto_userNameEf": "",
                "dto_passwordEf": "",
                "dto_documentoClienteEf": "10707485863",
                "dto_denominacionClienteEf": "Kevin Arnold Arias Figueroa",
                "dto_divisaEf": "Soles",
                "dto_totalNotaEf": 118.00,
                "dto_subTotalNotaEf": 100,
                "dto_listaProductoEf": [
                    {
                        "nombreProductoEf": "cuaderno",
                        "cantidadProductoEf": 1,
                        "precioTotalVentaProductoEf": 118,
                        "subTotalVentaProductoEf": 100,
                        "impuestoTotalVentaProductoEf": 18,
                        "precioUnitarioVentaProductoEf": 118,
                        "subTotalPrecioUnitarioVentaProductoEf": 100,
                        "situacionImpuestoProductoEf": "Afecto",
                        "porcentajeTributacionProductoEf": 18
                    }
                ]
            };
            // Opciones de la solicitud, incluyendo el método y el cuerpo
            const options = {
                method: 'POST',
                headers: {
                'Content-Type': 'application/json'
                },
                // Convierte el objeto a una cadena JSON
                body: JSON.stringify(data)
            };
            // Envia la solicitud y maneja la respuesta
            fetch(url, options)
                .then(response => response.json())
                .then(data => {
                // Imprime la respuesta en la consola
                console.log(data);
                })
                .catch(error => {
                // Si ocurre un error, lo muestra en la consola 
                console.error(error);
                });
            
                        
                        
            import requests

            # Establecemos los datos a enviar en la petición
            data =  {
                "dto_codigoUnicoVenta": 1,
                "dto_serieNumeroComprobanteEf": "F001-00000001",
                "dto_codigoMotivoNota": "01",
                "dto_descripcionMotivoNota": "Add product",
                "dto_serieNumeroComprobanteVentaEf": "F001-00000001",
                "dto_rucEmpresaEf": "00000000000",
                "dto_razonSocialEmisorEf": "CODIDEEP E.I.R.L.",
                "dto_userNameEf": "",
                "dto_passwordEf": "",
                "dto_documentoClienteEf": "10707485863",
                "dto_denominacionClienteEf": "Kevin Arnold Arias Figueroa",
                "dto_divisaEf": "Soles",
                "dto_totalNotaEf": 118.00,
                "dto_subTotalNotaEf": 100,
                "dto_listaProductoEf": [
                    {
                        "nombreProductoEf": "cuaderno",
                        "cantidadProductoEf": 1,
                        "precioTotalVentaProductoEf": 118,
                        "subTotalVentaProductoEf": 100,
                        "impuestoTotalVentaProductoEf": 18,
                        "precioUnitarioVentaProductoEf": 118,
                        "subTotalPrecioUnitarioVentaProductoEf": 100,
                        "situacionImpuestoProductoEf": "Afecto",
                        "porcentajeTributacionProductoEf": 18
                    }
                ]
            }
            
            # Realizamos la petición POST a la URL especificada
            response = requests.post('https://billing.codideep.com/debitnote/generatexml', data=data)
            
            # Imprimimos la respuesta
            print(response.text)
                    
                    
                    Copiado!
                

Como respuesta del servidor en caso de que la petición sea satisfactoria, se obtendrá un JSON con la siguiente estructura:

            
            {
                "mo": {
                    "listMessage": [
                        "Operación realizada correctamente."
                    ],
                    "type": "success"
                },
                "dto": {
                    "hash": "s+nJUstKOS+0SHBj4JRYAI4psJg="
                },
                "listDto": null
            }
            
        

Envío de XML a SUNAT

En este punto ya tienes generado dentro del sistema el XML con los datos de tu factura, para enviar el XML generado a la SUNAT, se debe realizar una petición POST a la siguiente URL:

            
https://billing.codideep.com/debitnote/send
            
            
            Copiado!

        

Para ello se debe de adjuntar datos de la factura y estructurarse de la siguiente manera:

                    
                    
            {
                "dto_codigoUnicoVenta" : 1,
                "dto_rucEmpresaEf" :  "00000000000",
                "dto_userNameEf": "",
                "dto_passwordEf": "",
                "dto_serieNumeroComprobanteEf":"F001-00000001" ,
                "dto_demoEf": true
            }
                        
                        
            
            $data = array(
                'dto_codigoUnicoVenta' => 1,
                'dto_rucEmpresaEf' => '00000000000',
                'dto_userNameEf' => '',
                'dto_passwordEf' => '',
                'dto_serieNumeroComprobanteEf' => 'F001-00000001',
                'dto_demoEf' => true
            );
            
            $options = array(
                'http' => array(
                    'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                    'method'  => 'POST',
                    'content' => http_build_query($data)
                )
            );
            $context  = stream_context_create($options);
            $result = file_get_contents("https://billing.codideep.com/debitnote/send", false, $context);
            echo $result;
                        
                        
                        
            // La URL de la API a la que se enviará la solicitud
            const url = 'https://billing.codideep.com/debitnote/send';
            // Los datos de la nota de crédito en formato JSON
            const data = {
                "dto_codigoUnicoVenta" : 1,
                "dto_rucEmpresaEf" :  "00000000000",
                "dto_userNameEf": "",
                "dto_passwordEf": "",
                "dto_serieNumeroComprobanteEf":"F001-00000001" ,
                "dto_demoEf": true
            };
            // Opciones de la solicitud, incluyendo el método y el cuerpo
            const options = {
                method: 'POST',
                headers: {
                'Content-Type': 'application/json'
                },
                // Convierte el objeto a una cadena JSON
                body: JSON.stringify(data)
            };
            // Envia la solicitud y maneja la respuesta
            fetch(url, options)
                .then(response => response.json())
                .then(data => {
                // Imprime la respuesta en la consola
                console.log(data);
                })
                .catch(error => {
                // Si ocurre un error, lo muestra en la consola 
                console.error(error);
                });
            
                        
                        
            import requests

            # Establecemos los datos a enviar en la petición
            data =  {
                "dto_codigoUnicoVenta" : 1,
                "dto_rucEmpresaEf" :  "00000000000",
                "dto_userNameEf": "",
                "dto_passwordEf": "",
                "dto_serieNumeroComprobanteEf":"F001-00000001" ,
                "dto_demoEf": true
            }
            
            # Realizamos la petición POST a la URL especificada
            response = requests.post('https://billing.codideep.com/debitnote/send', data=data)
            
            # Imprimimos la respuesta
            print(response.text)
                    
                    
                    Copiado!
                

Como respuesta de parte del servidor se tendrá un JSON con la siguiente estructura:

            
                {
                    "mo": {
                        "listMessage": [
                            "Operación realizada correctamente."
                        ],
                        "type": "success"
                    },
                    "dto": {
                        "codigoCdr": "0",
                        "estadoEnvioSunat": "Aprobado",
                        "descripcionCdr": "La Nota de Debito numero F001-00000001, ha sido aceptada"
                    },
                    "listDto": null
                }