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
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)
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
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)
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
}