Facturación instantánea por Lotes
Utilizá la API de facturación electrónica de TusFacturas.app, para enviar a procesar lotes y obtener la respuesta al instante.
Una vez configurada tu cuenta y creado tu CUIT+PDV, podrás comenzar a emitir facturas electrónicas. Te sugerimos revisar el apartado de ¿Cómo empiezo? y luego "Facturación", para conocer la estructura de cada request que envíes.
Podes enviar a facturar comprobantes de tipo A,B,C y M; ya sean facturas, notas de crédito, notas de débito y hasta facturas-recibos. No podrás enviar comprobantes de tipo E ni de Factura de crédito electrónica (FEC) en ésta modalidad.
Tenés alguna duda del servicio? checkea las API FAQs, y si no encontrás lo que buscabas, contactanos por los canales de atención que tenemos disponibles en la plataforma web www.tusfacturas.app
Al utilizar éste servicio, los comprobantes que emitas, impactarán de inmediato en nuestra plataforma y obtendrás la respuesta al instante, ya que utiliza el servicio de facturación por lotes de AFIP (siempre y cuando los servicios de dicho organismo se encuentren funcionando).
Es importante que controles los errores, dado que los servicios de AFIP se caen muy seguido y según funcionen sus servicios, la generación de un comprobante puede llegar a demorar hasta 1,30 minutos 😰. Para evitar éste tipo de problemas, te sugerimos utilizar la facturación por lotes asincrónica (encolada)
Es necesario leer primero, la documentación de "Facturación", para conocer cómo debe componerse cada request que envíes.
post
https://www.tusfacturas.app/app/api
/v2/facturacion/lotes
Facturación por Lotes
"requests debe ser un array, que contiene cada uno de los comprobantes a emitir, según se define en la documentación de "Facturación".
Datos a tener en cuenta
- La cantidad máxima de requests (por lote) debe ser de 20, pero debes tener en cuenta que por cuestiones de seguridad, nuestra plataforma funciona limitando su tiempo de procesamiento y según funcionen los servicios de AFIP, puedes obtener una respuesta de timeout (524). En caso de recibir un 524, ten en cuenta que los comprobantes que enviaste, seguirán siendo procesados en background, pero no recibirás la respuesta. Te sugerimos utilizar la modalidad de Facturación encolada por lotes para evitar éste tipo de errores.
- Todos los requests de ésta llamada, deben ser del mismo tipo de comprobante. Ej: todos deben ser FACTURA A
- Los request deben venir ordenados por número ascendente, de la misma manera que si los enviarás a procesar uno por uno.
- No podrás enviar comprobantes de tipo E ni de Factura de crédito electrónica (FEC) en ésta modalidad.
- Si se detecta al menos un (1) error de validación de datos de nuestro lado, el lote no se mandará a procesar.
La estructura de cada "request" debe ser acorde a los siguientes tipos de comprobante a generar (comprobantes de tipo A, comprobantes de tipo B, comprobantes de tipo C ) .
JSON
{
"apitoken": "xxxx",
"apikey": "xxxx",
"usertoken": "xxxxx",
"requests": [{
"apitoken": "xxxxx",
"apikey": "xxxxx",
"usertoken": "xxxxx",
"cliente": {
"documento_tipo": "CUIT",
"condicion_iva": "M",
"domicilio": "Av Sta Fe 23132",
"condicion_pago": "211",
"documento_nro": "3071229384",
"razon_social": "VOUSYS",
"provincia": "2",
"email": "[email protected]",
"envia_por_mail": "N"
},
"comprobante": {
"external_reference": "AAAA",
"rubro": "Sevicios web",
"percepciones_iva": 0,
"tipo": "FACTURA B",
"numero": 1,
"percepciones_iibb": 0,
"bonificacion": 0,
"operacion": "V",
"detalle": [{
"cantidad": 1,
"producto": {
"descripcion": "Hosting pagina web ",
"codigo": 37,
"lista_precios": "standard",
"leyenda": "",
"unidad_bulto": 1,
"alicuota": 21,
"precio_unitario_sin_iva": 114.88
}
}],
"fecha": "28/03/2018",
"rubro_grupo_contable": "Sevicios",
"total": 139.0,
"cotizacion": 1,
"moneda": "PES",
"punto_venta": 3,
"exentos": "0",
"tributos": [],
"impuestos_internos": "0",
"impuestos_internos_base": "0",
"impuestos_internos_alicuota": "0"
}
},
{
"apitoken": "xxxxx",
"apikey": "xxxxx",
"usertoken": "xxxxx",
"cliente": {
"documento_tipo": "CUIT",
"condicion_iva": "M",
"domicilio": "Av Sta Fe 23132",
"condicion_pago": "211",
"documento_nro": "3071229384",
"razon_social": "VOUSYS",
"provincia": "2",
"email": "[email protected]",
"envia_por_mail": "N"
},
"comprobante": {
"rubro": "Sevicios web",
"percepciones_iva": 0,
"tipo": "FACTURA B",
"external_reference": "ABC124",
"numero": 2,
"percepciones_iibb": 0,
"bonificacion": 0,
"operacion": "V",
"detalle": [{
"cantidad": 1,
"producto": {
"descripcion": "Hosting pagina web ",
"codigo": 37,
"lista_precios": "standard",
"leyenda": "",
"unidad_bulto": 1,
"alicuota": 21,
"precio_unitario_sin_iva": 114.88
}
}],
"fecha": "28/03/2018",
"rubro_grupo_contable": "Sevicios",
"total": 139.0,
"cotizacion": 1,
"moneda": "PES",
"punto_venta": 3,
"tributos": [],
"exentos": "0",
"impuestos_internos": "0",
"impuestos_internos_base": "0",
"impuestos_internos_alicuota": "0"
}
},
{
"apitoken": "xxxxx",
"apikey": "xxxxx",
"usertoken": "xxxxx",
"cliente": {
"documento_tipo": "CUIT",
"condicion_iva": "M",
"domicilio": "Av Sta Fe 23132",
"condicion_pago": "211",
"documento_nro": "3071229384",
"razon_social": "VOUSYS",
"provincia": "2",
"email": "[email protected]",
"envia_por_mail": "N"
},
"comprobante": {
"rubro": "Sevicios web",
"percepciones_iva": 0,
"tipo": "FACTURA B",
"external_reference": "ABC125",
"numero": 3,
"percepciones_iibb": 0,
"bonificacion": 0,
"operacion": "V",
"detalle": [{
"cantidad": 1,
"producto": {
"descripcion": "Hosting pagina web ",
"codigo": 37,
"lista_precios": "standard",
"leyenda": "",
"unidad_bulto": 1,
"alicuota": 21,
"precio_unitario_sin_iva": 114.88
}
}],
"fecha": "28/03/2018",
"rubro_grupo_contable": "Sevicios",
"total": 139.0,
"cotizacion": 1,
"moneda": "PES",
"punto_venta": 3,
"tributos": [],
"exentos": "0",
"impuestos_internos": "0",
"impuestos_internos_base": "0",
"impuestos_internos_alicuota": "0"
}
}
]
}
PHP
// ENVIO REQUEST
$url ="https://www.tusfacturas.app/api/v2/facturacion/lotes" ;
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($facturacion_json) );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$json_rta_curl = json_decode( curl_exec($ch) ) ;
curl_close($ch);
Ej: una llamada con 3 requests, donde segundo el comprobante enviado tiene un tipo de comprobante diferente.
JSON
{
"error": "S",
"errores": ["El comprobante enviado en la fila 1 (comenzando en 0) tiene un tipo de comprobante diferente."]
}
En el caso que se envíe a AFIP el lote a procesar y un comprobante venga rechazado, todos los comprobantes subsiguientes del lote, vendrán rechazados. Ésta funcionalidad está determinada por AFIP.
JSON
{
"error": "S",
"errores": [],
"response": [{
"error": "N",
"errores": [],
"cae": "68466696512853 ",
"comprobante_nro": "00003-00000074",
"cae_vencimiento": "26\/11\/2018",
"observaciones": "AFIP genero el comprobante pero lo ha marcado como observado por los siguientes motivos: Observacion: Factura individual, DocTipo: 80, DocNro 22222222222 no se encuentra inscripto en condicion ACTIVA en el impuesto (IVA). [ codigo: 10063 ]. Dichas observaciones no requieren accion de su parte.",
"envio_x_mail": "N",
"envio_x_mail_direcciones": "",
"rta": "El comprobante FACTURA A 00003-00000074 (XXXXXX) se ha guardado correctamente ",
"vencimiento_cae": "26\/11\/2018",
"vencimiento_pago": "16\/11\/2018",
"comprobante_tipo": "FACTURA A",
"afip_codigo_barras": "111111111110010000368466696512853201811262 ",
"comprobante_pdf_url": "https:\/\/www.dominio.com\/074.pdf",
"micrositios": {
"cliente": "url-del-micrositio",
"descarga":"url-del-micrositio"
},
"external_reference":"AAAA"
}, {
"error": "S",
"errores": [" AFIP Factura electronica, rechazo el comprobante - ERROR: AFIP rechazo la generacion del comprobante Cod: 0", " AFIP Factura electronica, rechazo el comprobante - ERROR: El campo FchServDesde no puede ser posterior al campo FchServHasta. Cod: 10032"],
"cae": "",
"comprobante_nro": "00003-00000082",
"external_reference":"ABC124",
"cae_vencimiento": "",
"observaciones": "",
"envio_x_mail": "",
"envio_x_mail_direcciones": ""
}, {
"error": "S",
"errores": [" AFIP Factura electronica, rechazo el comprobante - ERROR: AFIP rechazo la generacion del comprobante Cod: 0"],
"cae": "",
"comprobante_nro": "00003-00000083",
"external_reference":"ABC125",
"cae_vencimiento": "",
"observaciones": "",
"envio_x_mail": "",
"envio_x_mail_direcciones": ""
}]
}
No se realiza rollback, ya que se utiliza el método por lotes provisto por AFIP. Si un comprobante tiene error, ese comprobante y los siguientes vendrán rechazados.
Si.
No, los comprobantes deben ser enviados bajo el criterio de:
- 1.Mismo tipo de comprobante
- 2.Fecha (ascendente)
- 3.Número de comprobante (ascendente)
Anterior
Facturación asincrónica e individual (encolada)
Próximo
Facturación asincrónica por Lotes (encolada)
Última actualización 2mo ago