- Criado por Usuário desconhecido (noeliac), última alteração por Rodrigo Nicolás González em set 05, 2023
![]()
AR Server - Servicios generales
Servicio: Autorizar terminal (authenticate)
Servicio de seguridad que permite a una terminal ser autorizada para utilizar el restos de los servicios del sistema.
Este servicio requiere que se brinden las claves de acceso (un id y un secret), las cuales pueden obtenerse a través de la Consola de Administración en la sección "Clientes API" del módulo de seguridad.
Retornará un token, el cual es requerido al invocar los servicios de negocio.
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/api/v1/oauth2/authenticate |
|---|
POST - REQUEST
BODY
| Elemento | Tipo | Detalle |
|---|---|---|
clientId | String | Envia el valor clientId |
clientSecret | String | Envia el valor clientSecret |
Ejemplo:
|
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
| token | String | Token de seguridad devuelto por el sistema. |
| expiresIn | Number | Tiempo de expiración del token medido en unidad de expiración. |
expUnit | String | Unidad de expiración. |
Ejemplo:
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNWU5NDczZGU4YTk2NDI5MzlkMzVkYzhiIn0sImlhdCI6MTU5NTk0NzkyOSwiZXhwIjoxNTk1OTUxNTI5fQ.yrMsmYgyPtii59moYgujKE96ZeFNhHuZnwt3OeE59fM", "expiresIn": 3600000, "expUnit": "miliseconds"} |
RESPONSE ERROR
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | |
| message | String | Detalle del tipo del error. |
Ejemplo:
{ |
Servicio: Información de la tienda (storeInfo)
Este servicio se utiliza para obtener la información de la compañía, canal de venta y tienda necesarios para ser utilizados por los sistemas externos.
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/storeInfo |
|---|
PRE-REQUISITO
Para el uso del servicio es necesario informar en el header de la petición el token obtenido a través del servicio "Authenticate" con el parámetro x-access-token
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
| Descripción | Tipo de dato | Requerido | |
| requestCredential | |||
|---|---|---|---|
| companyCode | Código de compañía, provisto para la empresa que contrata el servicio | String | Si |
| terminalCode | Código de terminal / punto de venta | String | Si |
| storeCode | Código de tienda | String | Si |
Ejemplo:
{ |
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | Valor "0" |
| message | Objeto JSON | Datos de Compañia: - companyCode: código - companyName: nombre - taxCategory: categoría impositiva - address: dirección - city: ciudad - province: provincia - phone: telefono - email: correo electronico - identificationNumber: número de identificación (CUIT) - iibbNumber: número de inscripción en IIBB - legalAddress: dirección adicional - iibbPerceptionAgentNumber: número de inscripción como agente de percepción IIBB Datos de tienda: - active: si se encuentra activo o no - storeName: nombre de la tienda - channelCode: código del canal de venta asociado a esa tienda - storeAddres: dirección - city: ciudad - province: provincia - phone: teléfono - email: correo electrónico - activitiesStartDate: fecha de inicio de actividad comercial - stablishmentNumber: número de establecimiento Datos de canal de venta: - channelName: nombre del canal de venta |
Ejemplo:
{ |
RESPONSE ERROR
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | |
| message | String | Detalle del tipo del error. |
Ejemplo:
{ |
Servicio: Verificar estado de servicios (clientStatus)
Este servicio debe ser invocado por el punto de venta para verificar el estado de los servicios expuestos por Fiscal Flow.
En el caso de terminales con impresoras 2G, solicita datos adicionales, los cuales son utilizados para dar de alta automáticamente la terminal. (Ver: Consola de administración, módulo "Negocio", sección "Terminales").
Asimismo, permite notificar que el punto de venta se encuentra activo y actualiza la información local de la configuración de la terminal. (Ver: Consola de administración, módulo "Monitoreo", sección "Monitoreo de terminales").
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/clientStatus |
|---|
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 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 |
| printerInfo | Esta información debe ser enviada SOLO para terminales 2G | |||
pointOfSale | 2G: Punto de Venta (Centro emisor) | String | Sí | |
fiscalSerial | 2G: Nro serie impresora | String | Sí | |
Ejemplo:
{ |
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | Valor "0" |
| message | String | Valor "OK" |
minTimeOut | Number | Tiempo mínimo que debe esperar el PDV para reintentar una autorización. Este elemento se envía cuando se trata de una terminal electrónica. |
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: Obtener configuración (config)
Este servicio es invocado por el software cliente para obtener las configuraciones de la tienda consultada.
Estos parámetros son configurables desde la consola de administración. Desde el manual de usuario de dicha consola se puede conocer el significado de cada uno.
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/config |
|---|
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
| Descripción | Tipo de dato | Requerido | |
| requestCredential | |||
|---|---|---|---|
| companyCode | Código de compañía, provisto para la empresa que contrata el servicio | String | Si |
| terminalCode | Código de terminal / punto de venta | String | Si |
| storeCode | Código de tienda | String | Si |
Ejemplo:
{ |
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | Valor "0" |
| configs | Array | |
| _id | String | Código interno |
| code | String | Código del parámetro |
| name | String | Nombre del parámetro |
| value | String | Valor del parámetro |
| companyCode | String | Compañía a la que pertence el parámetro. |
Ejemplo:
{ |
RESPONSE ERROR
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | |
| message | String | Detalle del tipo del error. |
Ejemplo:
{ |
Servicio: Obtener informe Z (zReport)
Este servicio se debe utilizar para obtener el informe Z de la terminal. Requiere que se indique el período deseado.
El proceso generateZReport es el encargado de disponibilizar la información para este servicio, contabilizando cada operación ingresada en el sistema. El indicadoc "Cierre Z" de cada documento fiscal (que se puede consultar desde la consola de administración, sección Facturación, opción "Documentos fiscales") nos indica que ya ha sido incluida en el informe.
En el caso de que al momento de solicitar este informe existan documentos de la terminal que lo solicita, que no han sido contabilizados por este proceso, el servicio informará que no se puede obtener el reporte aún, indicando código de error 2066.
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/zReport |
|---|
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 de dato | Requerido |
| zNumber | El número de cierre Z | String | Si |
| requestCredential | |||
|---|---|---|---|
| companyCode | Código de compañía, provisto para la empresa que contrata el servicio | String | Si |
| storeCode | Código de tienda | String | Si |
| terminalCode | Código de terminal / punto de venta | String | Si |
Ejemplo:
{ |
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
ack | Number | Valor "0" |
| pointOfSaleCAE | Number (5) | Se informa solo para las terminales que operan con facturación electrónica. |
| pointOfSaleCAEA | Number (5) | Se informa solo para las terminales que operan con facturación electrónica. |
| result | Array | |
| _id | Number | |
lastInvoiceNumber | Number | |
totalAuthorized | Number | |
nonTaxedAmount | Number | |
exemptAmount | Number | |
companyCode | String | |
storeCode | String | |
terminalCode | String | |
afipPosCode | String | |
invoiceType | Number | |
zNumber | Number | |
firstInvoiceNumber | Number | |
relatedTaxes | ARRAY | |
_id | String | |
amount | Number | |
baseAmount | Number | |
code | String | |
name | String | |
| ARRAY | |
| String | |
| Number | |
| Number | |
| String | |
| String | |
| Date | |
updatedAt | Date | |
| Number |
Ejemplo:
{ "pointOfSaleCAE": 156, "pointOfSaleCAEA": 263, "result": [ |
RESPONSE ERROR
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | |
| message | String | Detalle del error. |
Ejemplo:
{ |
Servicio: Consultar documentos duplicados (duplicatedFiscalDocuments)
Servicio disponible para la obtención de los registros de comprobantes duplicados que se han reversado, para una unidad de negocios en particular, de una compañía, en un período específico.
Disponibiliza un registro por conjunto de comprobantes: caea + cae (duplicado) + cae (reverso).
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://{{ip}}/api/v1/duplicatedFiscalDocuments?companyCode={{companyCode}}&channelCode={{channelCode}}&reversedDateFrom={{reversedDateFrom}}&reversedDateTo={{reversedDateTo}} |
|---|
GET - REQUEST
QUERY paramETERS
| Elemento | Tipo | Requerido | Detalle |
|---|---|---|---|
| companyCode | String | Sí | Código de la compañía. |
| channelCode | String | Sí | Código de la unidad de negocio. |
| reversedDateFrom | String | Sí | Fecha de registro de reversa. Formato: "YYYYMMDD". Período no mayor a 30 días. |
| reversedDateTo | String | Sí |
header
| Elemento | Valor |
|---|---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
RESPONSE OK
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | Código de tipo de respuesta: 0 |
| message | String | Detalle de la respuesta: "ok" |
duplicatedFiscalDocument | Array(duplicatedFiscalDocument) |
Documento duplicado (duplicatedFiscalDocument)
| Elemento | Tipo | Requerido | Detalle |
|---|---|---|---|
| date | Date | Sí | Fecha de registro de duplicado |
| companyCode | String | Sí | Código de compañía |
| storeCode | String | Sí | Código de tienda |
| terminalCode | String | Sí | Código de terminal |
| invoiceType | Number | Sí | Código de tipo de documento |
| internalId | String(40) | Sí | Nro interno |
| alertDate | Date | No | Fecha de alerta de duplicados |
| alertTo | String | No | Usuarios alertados por duplicados |
| fiscalDocumentOffline | fiscalDocument | Sí | Documento original (sin items) |
| fiscalDocumentOnline | fiscalDocument | Sí | Documento duplicado (sin items) |
| reversed | Boolean | No | Flag que indica si hay reverso |
| userReversedCode | String | No | Usuario que realizó el reverso |
| reversedDate | Date | No | Fecha de reverso |
| reverseNotes | String | No | Comentarios de reverso |
| fiscalDocumentReversed | fiscalDocument | No | Si reversed = true, es el Documento reverso que anula el duplicado (sin items). Si reversed = false será vacio |
Documento fiscal (fiscalDocument)
| Elemento | Tipo | Requerido | Detalle | Ejemplo |
|---|---|---|---|---|
invoiceType | Number | Sí | Código de tipo de documento | |
invoiceTypeName | String | Sí | Descripción de tipo de documento |
|
authorizationType | String | Sí | Tipo de autorización |
|
authorizationCode | String | Sí | Código de autorización | |
invoiceDate | String | Sí | Fecha |
|
invoiceNumber | Number | Sí | N° Comprobante | |
pointOfSale | Number | Sí | Centro emisor | |
identificationNumber | String | Sí | Cliente | |
operator | String | No | Operador | |
subTotalAmount | Number | Sí | SubTotal | |
ticketDiscount | Number | Sí | Desc.Global | |
discountAmount | Number | Sí | Desc.Ticket | |
nonTaxedAmount | Number | Sí | No Gravado | |
taxedAmount | Number | Sí | Gravado | |
amountIVA | Number | Sí | IVA | |
amountOtherTaxes | Number | Sí | IIBB | |
exemptAmount | Number | Sí | Exento | |
totalAmount | Number | Sí | Total |
Ejemplo:
{
"ack": 0,
"message": "ok",
"duplicatedFiscalDocuments": [
{
"date": "2023-04-25T11:00:20.762Z",
"companyCode": "testqa",
"storeCode": "1001",
"terminalCode": "1006",
"invoiceType": 6,
"internalId": "299019",
"alertDate": null,
"alertTo": "La alerta con código alertInvoiceDuplicated está deshabilitada. No se informo a ningún destinatario",
"fiscalDocumentOffline": {
"invoiceType": 6,
"invoiceTypeName": "Factura B",
"authorizationType": "CAEA",
"authorizationCode": "33155107421920",
"invoiceDate": "2023-04-25T10:58:37.192Z",
"invoiceNumber": 605,
"pointOfSale": "8037",
"identificationNumber": "0",
"subTotalAmount": 4000.01,
"ticketDiscount": 480,
"discountAmount": 480,
"nonTaxedAmount": 0,
"taxedAmount": 2549.05,
"amountIVA": 535.3,
"amountOtherTaxes": 435.66,
"exemptAmount": 0,
"totalAmount": 3520.01
},
"fiscalDocumentOnline": {
"invoiceType": 6,
"invoiceTypeName": "Factura B",
"authorizationType": "CAE",
"authorizationCode": "73175289293133",
"invoiceDate": "2023-04-25T10:58:37.192Z",
"invoiceNumber": 107243,
"pointOfSale": "8036",
"identificationNumber": "0",
"subTotalAmount": 4000.01,
"ticketDiscount": 480,
"discountAmount": 480,
"nonTaxedAmount": 0,
"taxedAmount": 2549.05,
"amountIVA": 535.3,
"amountOtherTaxes": 435.66,
"exemptAmount": 0,
"totalAmount": 3520.01
},
"reversed": true,
"userReversedCode": "SYS",
"reversedDate": "2023-04-25T11:05:09.646Z",
"reverseNotes": "Reverso automático mediante el proceso automaticReversedDuplicates, fecha: Tue Apr 25 2023 08:05:09 GMT-0300 (Argentina Standard Time)",
"fiscalDocumentReversed": {
"invoiceType": 8,
"invoiceTypeName": "Factura B",
"authorizationType": "CAE",
"authorizationCode": "73175289609282",
"invoiceDate": "2023-04-25T11:05:09.501Z",
"invoiceNumber": 747,
"pointOfSale": "8036",
"identificationNumber": "0",
"subTotalAmount": 4000.01,
"ticketDiscount": 480,
"discountAmount": 480,
"nonTaxedAmount": 0,
"taxedAmount": 2549.05,
"amountIVA": 535.3,
"amountOtherTaxes": 435.66,
"exemptAmount": 0,
"totalAmount": 3520.01
}
},
{
"date": "2023-04-25T11:10:15.119Z",
"companyCode": "OPESSA",
"storeCode": "00315",
"terminalCode": "04",
"invoiceType": 6,
"internalId": "552621",
"alertDate": null,
"alertTo": "La alerta con código alertInvoiceDuplicated está deshabilitada. No se informo a ningún destinatario",
"fiscalDocumentOffline": {
"invoiceType": 6,
"invoiceTypeName": "Factura B",
"authorizationType": "CAEA",
"authorizationCode": "33155107421920",
"invoiceDate": "2023-04-25T10:57:09.445Z",
"invoiceNumber": 1026,
"pointOfSale": "8039",
"identificationNumber": "0",
"subTotalAmount": 1000.01,
"ticketDiscount": 0,
"discountAmount": 0,
"nonTaxedAmount": 0,
"taxedAmount": 772.78,
"amountIVA": 162.28,
"amountOtherTaxes": 64.95,
"exemptAmount": 0,
"totalAmount": 1000.01
},
"fiscalDocumentOnline": {
"invoiceType": 6,
"invoiceTypeName": "Factura B",
"authorizationType": "CAE",
"authorizationCode": "73175289245460",
"invoiceDate": "2023-04-25T10:57:09.445Z",
"invoiceNumber": 171880,
"pointOfSale": "8038",
"identificationNumber": "0",
"subTotalAmount": 1000.01,
"ticketDiscount": 0,
"discountAmount": 0,
"nonTaxedAmount": 0,
"taxedAmount": 772.78,
"amountIVA": 162.28,
"amountOtherTaxes": 64.95,
"exemptAmount": 0,
"totalAmount": 1000.01
},
"reversed": true,
"userReversedCode": "SYS",
"reversedDate": "2023-04-25T11:15:09.951Z",
"reverseNotes": "Reverso automático mediante el proceso automaticReversedDuplicates, fecha: Tue Apr 25 2023 08:15:09 GMT-0300 (Argentina Standard Time)",
"fiscalDocumentReversed": {
"invoiceType": 8,
"invoiceTypeName": "Factura B",
"authorizationType": "CAE",
"authorizationCode": "73175290242497",
"invoiceDate": "2023-04-25T11:15:09.779Z",
"invoiceNumber": 732,
"pointOfSale": "8038",
"identificationNumber": "0",
"subTotalAmount": 1000.01,
"ticketDiscount": 0,
"discountAmount": 0,
"nonTaxedAmount": 0,
"taxedAmount": 772.78,
"amountIVA": 162.28,
"amountOtherTaxes": 64.95,
"exemptAmount": 0,
"totalAmount": 1000.01
}
},
"date": "2023-04-25T12:00:14.479Z",
"companyCode": "OPESSA",
"storeCode": "02992",
"terminalCode": "04",
"invoiceType": 6,
"internalId": "249454",
"alertDate": null,
"alertTo": "La alerta con código alertInvoiceDuplicated está deshabilitada. No se informo a ningún destinatario",
"fiscalDocumentOffline": {
"invoiceType": 6,
"invoiceTypeName": "Factura B",
"authorizationType": "CAEA",
"authorizationCode": "33155107421920",
"invoiceDate": "2023-04-25T11:53:41.292Z",
"invoiceNumber": 1582,
"pointOfSale": "7507",
"identificationNumber": "0",
"subTotalAmount": 780,
"ticketDiscount": 0,
"discountAmount": 0,
"nonTaxedAmount": 0,
"taxedAmount": 644.63,
"amountIVA": 135.37,
"amountOtherTaxes": 0,
"exemptAmount": 0,
"totalAmount": 780
},
"fiscalDocumentOnline": {
"invoiceType": 6,
"invoiceTypeName": "Factura B",
"authorizationType": "CAE",
"authorizationCode": "73175293176276",
"invoiceDate": "2023-04-25T11:51:34.503Z",
"invoiceNumber": 233537,
"pointOfSale": "7506",
"identificationNumber": "0",
"subTotalAmount": 780,
"ticketDiscount": 0,
"discountAmount": 0,
"nonTaxedAmount": 0,
"taxedAmount": 644.63,
"amountIVA": 135.37,
"amountOtherTaxes": 0,
"exemptAmount": 0,
"totalAmount": 780
},
"reversed": true,
"userReversedCode": "SYS",
"reversedDate": "2023-04-25T12:05:10.016Z",
"reverseNotes": "Reverso automático mediante el proceso automaticReversedDuplicates, fecha: Tue Apr 25 2023 09:05:09 GMT-0300 (Argentina Standard Time)",
"fiscalDocumentReversed": {
"invoiceType": 8,
"invoiceTypeName": "Factura B",
"authorizationType": "CAE",
"authorizationCode": "73175294557880",
"invoiceDate": "2023-04-25T12:05:09.832Z",
"invoiceNumber": 972,
"pointOfSale": "7506",
"identificationNumber": "0",
"subTotalAmount": 780,
"ticketDiscount": 0,
"discountAmount": 0,
"nonTaxedAmount": 0,
"taxedAmount": 644.63,
"amountIVA": 135.37,
"amountOtherTaxes": 0,
"exemptAmount": 0,
"totalAmount": 780
}
}
]
}
RESPONSE ERROR
| Elemento | Tipo | Detalle |
|---|---|---|
| ack | Number | |
| message | String | Detalle del error |
Ejemplo:
{
"ack": 2065,
"message": "Some parameter has incorrect data type: reversedDateTo. Must be YYYYMMDD and valid"
}
- Sem rótulos