- Criado por Usuário desconhecido (noeliac) em jul 12, 2023
Você está vendo a versão antiga da página. Ver a versão atual.
Comparar com o atual Ver Histórico da Página
Versão 1 Próxima »
![]()
AR Agente - Servicios Facturación electrónica
Este set de servicios permite la emisión y almacenamiento de comprobantes electrónicos respetando el régimen de factura electrónica según la resolución dispuesta por AFIP.
Fiscal Flow solicitará y obtendrá el CAE de los comprobantes generados con su correspondiente fecha de vencimiento, gracias a un enlace directo de webservices con los servidores de AFIP.
El siguiente diagrama es un flujo - muy sencillo - de operación del punto de venta y el sistema de emisión de comprobantes electrónicos Fiscal Flow.
Servicio: Autorizar documento electrónico (authorize)
Este método se utiliza para autorizar documentos electrónicos.
El agente intenta autorizar por CAE, en caso de encontrar un inconveniente, autoriza en forma offline (CAEA).
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "Authenticate".
Es un método REST basado en el formato JSON. Ejemplo:
| [post] http://[dirección-ip]:[puerto]/api/v1/invoice/authorize |
|---|
POST - REQUEST
header
| Elemento | Valor |
|---|---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
| x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
| Elemento | Descripción | Tipo | Requerido | Validación | Elemento AFIP |
| requestCredential | Detalle de la identificación de la terminal que solicita la autorización | Objeto | Sí | ||
|---|---|---|---|---|---|
| companyCode | Código de compañía, provisto para la empresa que contrata el servicio | String | Si | 992 | |
| terminalCode | Código de terminal / punto de venta | String | Si | 992 | |
| storeCode | Código de tienda | String | Si | 992 | |
| customer | Detalle del cliente | Objeto | Sí | ||
| documentType | Tipo de documento de identificación del cliente. Para comprobantes no nominados (consumidores finales con monto menor o igual a lo establecido por la RG 4444/2019), se debe enviar 99 (". | Integer (2) | Si. | Ver: FF - Datos maestros: Tipos de documentos | DocTipo |
| identificationNumber | Número de identificación del cliente. Para comprobantes no nominados (consumidores finales con monto menor o igual a lo establecido por la RG 4444/2019), se debe enviar 0. | Number | Si | DocNro | |
| taxCategory | Situación impositiva del cliente frente al IVA | Integer (1) | Si | Ver: FF - Datos maestros: Situación impositiva del cliente | |
| IBCategory | Situación impositiva del cliente frente a Ingresos Brutos | String | No | ||
| IBIdentificationNumber | Número de inscripción en Ingresos Brutos | Number | No | ||
| sendVoucher | Si desea marcar la factura para su posterior envío por correo electrónico. Por default es FALSE. | String | No | ||
| billingEmail | Dirección de correo electrónico del cliente adonde debe llegar la factura. Corresponde al mail de facturación. Es requerido para enviar factura por correo electrónico. | String | No | ||
| personalEmail | Dirección de correo electrónico del cliente. Es un dato de contacto, no es al que se enviará la factura. | String | No | ||
| code | Código del cliente | String | No | ||
| businessName | Nombre de la persona / Empresa cliente (Receptor del comprobante) No es requerido si se trata de un comprobante distinto de tipo A y se trata de Consumidor Final | String | No | ||
| civilStatus | Estado civil del cliente. No es necesario si es empresa. | String | No | ||
| fiscalAddress | Dirección fiscal de la persona / empresa | String | No | ||
| city | Nombre de la ciudad | String | No | ||
| state | Nombre de la provincia | String | No | ||
postalCode | Código postal | String | No | ||
| fiscalDocument | Información completa del comprobante | Objeto | Sí | ||
| internalId | Número de comprobante interno del punto de venta. Debe ser un identificador único de la transacción para la tienda y terminal. | Alfanumérico(40) | Si | ||
| conceptCode | Conceptos a facturar | Integer (2) | Si | Ver: FF - Datos maestros: Conceptos a facturar | Concepto |
| invoiceType | Tipo de Comprobante | Integer (3) | Si | Ver: FF - Datos maestros: Tipos de Comprobantes | CbteTipo |
| saleCondition | Condición de venta | String | Si | ||
| currency | Código de moneda | String | Si | Ver: FF - Datos maestros: Monedas | MonId |
| currencyChange | Cotización de la moneda informada | Number (10,6) | Si | MonCotiz | |
| invoiceDate | Fecha del documento Formato: yyyy-mm-dd hh:mm:ss | Date | Si | CbteFch | |
| paymentDueDate | Fecha de vencimiento del pago del documento. Formato: yyyy-mm-dd | Date | No | FchVtoPago | |
| periodStartDate | Fecha de inicio del servicio facturado (Formato: yyyy-mm-dd) Requerido si el tipo de concepto a facturar es un Servicio (conceptCode=2,3). | Date | No | FchServDesde | |
| periodEndDate | Fecha de fin del servicio facturado (Formato: yyyy-mm-dd) Requerido si el tipo de concepto a facturar es un Servicio (conceptCode=2,3). | Date | No | FchServHasta | |
businessDate | Fecha contable del documento (Formato: yyyy-mm-dd) Si no viene el valor por defecto es fecha del día formato yyyy-mm-dd | Date | No | ||
| zNumber | Numero de cierre Z Si no viene el valor por defecto es fecha del día formato yyyymmdd | Number | No | ||
| subtotalAmount | Importe total neto de descuentos e impuestos (IVA y otros impuestos: percepción, impuestos municipales, impuestos internos) (Comprobantes tipo A: importe sin IVA. Comprobantes tipos B: importe con IVA incluido) | Number (10,2) | Si | ||
| ticketDiscount | Descuento global sobre la venta (ticket). Importe sumatorio de todos los descuentos con scope: T (transaction) (Comprobantes tipo A: descuento neto sin IVA. Comprobantes tipos B: descuento con IVA incluido) | Number (10,2) | Si | ||
| discountAmount | Importe sumatorio de todos los descuentos de venta (a nivel ítems + a nivel factura o ticket) con scope: I (item) + T (transaction) (Comprobantes tipo A: total de descuentos neto sin IVA. Comprobantes tipos B: descuentos con IVA incluido) | Number (10,2) | Si | ||
| nonTaxedAmount | Importe conceptos no gravados | Number (10,2) | Si | ImpTotConc | |
| taxedAmount | Importe neto gravado del documento Suma de relatedTaxes.baseAmount | Number (10,2) | Si | ImpNeto | |
| amountIVA | Importe en concepto de IVA Suma de relatedTaxes.amount | Number (10,2) | Si | ImpIVA | |
| amountOtherTaxes | Importe en concepto de Otros Tributos Suma de relatedOtherTaxes.amount | Number (10,2) | Si | ImpTrib | |
| exemptAmount | Importe en concepto de valores exentos de impuestos | Number (10,2) | Si | ImpOpEx | |
| totalAmount | Importe total del documento | Number (10,2) | Si | ImpTotal | |
| orderNumber | Número de pedido | Number | No | ||
| operator | Código del operador o vendedor | String | No | ||
| fiscalDocument.relatedTaxes | Detalle de ivas, en caso de no ser exento o no gravado. | ARRAY | No | AlicIva | |
| amount | Importe liquidado según la alícuota de IVA Informar en 0 (cero) en caso de tratarse de IVA 0%. | Number (10,2) | Si | Importe | |
| baseAmount | Base imponible para la determinación de la alícuota | Number (10,2) | Si | BaseImp | |
| code | Código del Tipo de IVA | Integer (2) | Si | Ver: FF - Datos maestros: Tipos de IVA | Id |
| name | Descripción del impuesto | String | No | ||
| fiscalDocument.relatedOtherTaxes | Detalle de otros impuestos - percepciones de IVA, percepciones de Ingresos Brutos, Impuestos Internos, retenciones nacionales, municipales, etc.- | ARRAY | No | Tributos | |
| amount | Importe del impuesto | Number (10,2) | Sí | Importe | |
| baseAmount | Base imponible para la determinación del tributo | Number (10,2) | Sí | BaseImp | |
| code | Código del Tipo de Impuesto | Integer (2) | Sí | Ver: FF - Datos maestros: Códigos de Impuesto | Id |
| name | Descripción de impuesto | String | No | Desc | |
| aliquot | Alícuota | Number (3,2) | No | Alic | |
| fiscalDocument.optionals | Solo si se encuentra dentro del conjunto de emisores habilitados a informar opcionales. IMPORTANTE: si se trata de operaciones que no dan lugar al cómputo del crédito fiscal - F. 8001 | ARRAY | No | Opcionales | |
| code | Código identificador del Opcional de AFIP | String | No | Ver: FF - Datos maestros: Opcionales | Id |
| name | Valor del Parámetro opcional a informar | String | No | Valor | |
| fiscalDocument.relatedInvoices | Comprobantes asociados a las nota de crédito o nota de débito. Obligatorio si no se informa periodo asociado (relatedInvoicesPeriod) | ARRAY | No | CbtesAsoc | |
| invoiceType | Tipo de Comprobante asociado | Integer (3) | Sí | Ver: FF - Datos maestros: Tipos de Comprobantes | Tipo |
| pointOfSale | Punto de venta AFIP del comprobante asociado | String (5) | Sí | PtoVta | |
| invoiceNumber | Número del punto de venta del comprobante asociado | String (8) | Sí | Nro | |
| invoiceDate | Fecha del comprobante asociado (Formato: yyyy-mm-dd) | Date | Sí | CbteFch | |
| fiscalDocument.relatedInvoicesPeriod | Período de emisión del comprobante original, cuando es una nota de crédito o nota de débito. Obligatorio si no se informan comprobantes asociados (relatedInvoices)) | Objeto | No | PeriodoAsoc | |
| startDate | Fecha correspondiente al inicio del periodo del comprobante que se quiere identificar (Formato: yyyy-mm-dd) | Date | Sí | FchHasta | |
| endDate | Fecha correspondiente al fin del periodo del comprobante que se quiere identificar (Formato: yyyy-mm-dd) | Date | Sí | FchDesde | |
| fiscalDocument.Items | Listado de artículos | ARRAY | No | ||
| action | Concepto del ítem. S: Sale | R: Return S: cuando se trata de un producto que suma a la transacción, por ejemplo, un item que se vende. R: cuando se trata de un producto que resta a la transacción, por ejemplo, un item que se devuelve, o un envase de bebida. | char (1) | Si | ||
| sku | Código del producto | String | Si | ||
name | Nombre del producto | String | Si | ||
qty | Cantidad del producto | Number | Si | ||
| um | Unidad de medida del producto. Valor por defecto: UN | String(20) | No | ||
tax | Porcentaje de IVA asociado al ítem. Se deberá enviar en 0 (cero) si es exento o no gravado. | Number (4,2) | Si | ||
taxAmount | Importe de IVA asociado al ítem | Number (10,2) | Si | ||
| internalTax | Importe de impuestos internos aplicados al ítem (unitario) | Number (10,2) | Si | ||
| discount | Suma de descuentos aplicados. Suma de items.promotions.amount (Comprobantes tipo A: descuento neto sin IVA. Comprobantes tipos B: descuento con IVA incluido) | Number (10,2) | Sí | ||
unitPrice | Precio unitario del producto. (Comprobantes tipo A: precio neto sin IVA. Comprobantes tipos B: precio IVA incluido) | Number (10,2) | Si | ||
| totalPrice | Precio unitario del producto x cantidad (qty) (Comprobantes tipo A: precio neto sin IVA. Comprobantes tipos B: precio IVA incluido) | Number (10,2) | Si | ||
| code | Código secundario del producto. Se utiliza como codigoMtx: Deberán corresponder a la estructura provista por la ASOCIACION ARGENTINA DE CODIFICACION DE PRODUCTOS COMERCIALES —CODIGO—, códigos GTIN 13, GTIN 12 y GTIN 8, correspondientes a la unidad de consumo minorista o presentación al consumidor final | String(40) | No | ||
| serialNumber | Número de serie del producto en caso de requerir | String | No | ||
| lotNumber | Número de lote o partida del producto en caso de requerir | String | No | ||
| barCode | Código de barras del producto | String | No | ||
| fiscalDocument.Items.promotions | Detalle de promociones aplicadas a cada item | ARRAY | No | ||
| code | Código del descuento o Promoción | String | No | ||
| scope | Concepto de la promoción. I: Ítem | T: Transacción I: Cuando se trata de un descuento propio del ítem o producto/servicio T: Cuando se trata de un descuento a nivel transacción. Se informa de manera prorrateada | Char (1) | Si | ||
| name | Nombre / descripción del descuento | String | No | ||
| amount | Importe aplicado como descuento (Comprobantes tipo A: descuento neto sin IVA. Comprobantes tipos B: descuento con IVA incluido) | Number (10,2) | No | ||
| taxAmount | Importe de IVA asociado a la promoción | Number (10,2) | No | ||
| internalTax | Importe de impuestos internos asociado a la promoción | Number (10,2) | No | ||
| percent | Porcentaje de descuento aplicado. SI no se informa poner 0.0 | Number (4,2) | No | ||
| fiscalDocument.Items.itemInfo | Colección clave / valor libre para información específica del producto o del negocio. | ARRAY | No | ||
| key | Clave | String | Sí | ||
| value | Valor | String | Sí | ||
| fiscalDocument.benefits | Detalle de beneficios aplicados | ARRAY | No | ||
| code | Código del beneficio | String | No | ||
| name | Nombre / descripción del beneficio | String | No | ||
| benefitType | Nombre / descripción del tipo de beneficio | String | No | ||
| amount | Valor numérico, que representa importe, cantidad de cupones, o puntos | Number (10,2) | No | ||
| couponCode | Código del CUPÓN | String | No | ||
| cardType | Código del TIPO DE TARJETA | String | No | ||
| cardCode | Código de la TARJETA de beneficio | String | No | ||
| cardCurrentAmount | Monto del beneficio de la TARJETA | Number (10,2) | No | ||
| fiscalDocument.paymentMethods | Métodos de pago | ARRAY | No | ||
| code | Código del medio de pago | String | Si | ||
| name | Nombre del medio de pago | String | Si | ||
| amount | Importe | Number (10,2) | Si | ||
| surcharge | Alícuota de recargo | Number (3,2) | No | ||
| fiscalDocument.paymentMethods.paymentMethodsInfo | Colección clave / valor de objetos que representan información adicional del pago | ARRAY | No | ||
| key | Clave para identificar el método de pago | String | Sí | ||
| value | Valor del método de pago | String | Sí | ||
| fiscalDocument.documentInfo | Colección clave / valor de objetos que representan información adicional del documento. | ARRAY | No | ||
| key | Clave para identificar el dato | String | Sí | ||
| value | Valor del dato adicional | String | Sí |
Ejemplos:
Acceso a JSON de ejemplo por tipos de comprobante: FF - Ejemplos JSON comprobantes
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
| url | String | Contiene la URL para poder ver el comprobante online (para casos en donde el canal de venta imprime un ticket). |
| qr | String | Contiene la url a ser incluída en forma de QR en el comprobante, requerido por la AFIP. |
| authorizationDate | Date | Fecha de vencimiento del CAE | CAEA |
| authorizationType | String | CAE | CAEA |
| authorizationCode | String | Código de Autorización Electrónico (CAE) / Código de Autorización Electrónico Anticipado (CAEA) |
| pointOfSale | String | Punto de venta AFIP (5 dígitos) |
| invoiceNumber | String | Numero de comprobante enviado a la AFIP, se asocia con el centro emisor AFIP utilizado para facturar. |
| invoiceType | String | Tipo de comprobante autorizado |
| ack | Number | Valor "0" |
| message | String | Cuando se envía una operación previamente autorizada por CAE o CAEA con el mismo número de identificador único de la transacción (internalId), el sistema da como respuesta el mismo mensaje de la transacción original e incluye en este elemento la leyenda "Operacion previamente autorizada para el internalId informado." |
Ejemplo:
{ |
RESPONSE ERROR
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | Código de error. Siendo los valores posibles:
|
| message | String | Detalle del tipo del error. |
Ejemplo:
{ |
Servicio: Consultar documento fiscal (fiscalDocuments)
Este servicio permite consultar un documento fiscal de acuerdo a determinados filtros:
- companyCode (string)
- storeCode (string)
- terminalCode (string)
- invoiceType (number)
- internalId (string)
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "Authenticate".
Es un método REST basado en el formato JSON. Ejemplo:
| [get] http://[dirección-ip]:[puerto]/api/v1/fiscalDocuments?invoiceType=1&internalId=640 |
|---|
GET - REQUEST
HEADER
x-access-token | Token obtenido a través del servicio "Authenticate" |
internalId | Número de comprobante interno del punto de venta. |
Ejemplo:
"x-access-token": token |
BODY
| Elemento | Descripción | Tipo de dato | Requerido | Validación |
|---|---|---|---|---|
| requestCredential | ||||
| companyCode | Código de compañía, provisto para la empresa que contrata el servicio | String | Si | 992 |
| storeCode | Código de tienda | String | Si | 992 |
| terminalCode | Código de terminal / punto de venta | String | Si | 992 |
Ejemplo:
{
"requestCredential":{
"companyCode":"napse",
"storeCode":"1001",
"terminalCode":"1001"
}
}
RESPONSE
Ejemplo:
{
"authorizeInfo": [
{
"code": 10017,
"message": "Factura individual, DocTipo: 80, DocNro 30470827047 no se encuentra registrado en los padrones de AFIP o se encuentra inactivo.",
"date": "2020-10-26 23:22:40"
}
],
"attempts": 0,
"processed": true,
"_id": "5f975a4074f8103e0f082ab5",
"internalId": "7922124961",
"orderNumber": 1,
"operator": "ALE",
"conceptCode": 1,
"invoiceType": 1,
"saleCondition": "1",
"currency": "PES",
"currencyChange": 1,
"invoiceDate": "2020-10-26T00:00:00.000Z",
"paymentDueDate": "2020-10-26T00:00:00.000Z",
"periodStartDate": "2020-10-26T00:00:00.000Z",
"periodEndDate": "2020-10-26T00:00:00.000Z",
"businessDate": "2020-10-26T00:00:00.000Z",
"zNumber": 16768153,
"items": [
{
"um": "7",
"_id": "5f975a4074f8103e0f082ab6",
"action": "S",
"sku": "53094",
"code": "1",
"imageUrl": "",
"name": "Televisor Sony",
"qty": 1,
"serialNumber": "49938801",
"lotNumber": "12281",
"barCode": "779893164411834",
"tax": 21,
"taxAmount": 100.66,
"internalTax": 0,
"discount": 10.2,
"unitPrice": 587,
"totalPrice": 587,
"promotions": [
{
"_id": "5f975a4074f8103e0f082ab7",
"code": "PRS",
"scope": "I",
"name": "Dto 2x1",
"amount": 10.2,
"taxAmount": 0,
"internalTax": 0,
"percent": 0
}
],
"itemInfo": [
{
"_id": "5f975a4074f8103e0f082ab8",
"key": "Peso",
"value": "15kg"
},
{
"_id": "5f975a4074f8103e0f082ab9",
"key": "ModalidadEnvio",
"value": "Envío a Domicilio"
},
{
"_id": "5f975a4074f8103e0f082aba",
"key": "ContactoEntrega",
"value": "Preguntar por Francisco Perez"
}
]
}
],
"relatedTaxes": [
{
"_id": "5f975a4074f8103e0f082abb",
"amount": 100.66,
"baseAmount": 479.34,
"code": "5",
"name": "IVA 21%"
}
],
"relatedOtherTaxes": [],
"optionals": [],
"paymentMethods": [
{
"_id": "5f975a4074f8103e0f082abc",
"code": "VISACR",
"name": "Tarjeta VISA Credito",
"amount": 11.8,
"surcharge": 2,
"paymentMethodsInfo": [
{
"_id": "5f975a4074f8103e0f082abd",
"key": "DatosTC",
"value": "2345 01 123456 0044"
},
{
"_id": "5f975a4074f8103e0f082abe",
"key": "Tasas",
"value": "TNA: 0.00% TEA: 0.00% TEM: 0.00% CFT: 0.00%"
}
]
}
],
"documentInfo": [
{
"_id": "5f975a4074f8103e0f082abf",
"key": "footer",
"value": "Telefono gratuito CABA, area de defensa y proteccion al consumidor 0810-123-0000"
}
],
"benefits": [],
"subTotalAmount": 10,
"ticketDiscount": 8.6,
"discountAmount": 18.8,
"nonTaxedAmount": 0,
"taxedAmount": 479.34,
"amountIVA": 100.66,
"amountOtherTaxes": 0,
"exemptAmount": 0,
"totalAmount": 580,
"companyCode": "napse",
"storeCode": "1001",
"terminalCode": "1002",
"testMode": true,
"documentType": "80",
"identificationNumber": "30470827047",
"hasCustomer": true,
"relatedInvoices": [],
"authorizationCode": "70437875745658",
"authorizationType": "CAE",
"authorizationCodeDueDate": "2020-11-05T00:00:00.000Z",
"invoiceNumber": 2604,
"pointOfSale": 14,
"status": "ok",
"invoiceHour": 0,
"createdAt": "2020-10-26T23:22:40.643Z",
"updatedAt": "2020-10-26T23:23:00.095Z",
"__v": 0
}
- Sem rótulos