Este servicio permitirá crear desde fuentes externas, una transacción posee la descripción de la transacción que es generada ante cada operación de venta, devolución o cambio a partir de postear en la cola Rabbit expuesta por Bridge, el JSON bajo el formato definido en el siguiente doc.
Ejemplo del JSON a postear:
Bloco de código | ||
---|---|---|
| ||
{
"externalNumber": "00001",
"id": "5f19d8989eefbe5418406887",
"companyCode": "Napse",
"storeCode": "unicenter",
"terminalCode": "20",
"operatorCode": "martinm",
"operatorName": "Martin Malievac",
"trxNumber": 4,
"trxDate": "2020-07-10 00:00:00",
"trxType": "sale",
"creationDate": "2020-07-01 08:51:00",
"cancelFlag": "false",
"channelCode": "bridge",
"currencyCode": "peso",
"netAmount": 4950,
"manualDiscountAmount": 0,
"internalTaxesTotal": 0,
"ivaTotal": 0,
"otherTaxes": 0,
"itemsQuantity": 1,
"billType": "FC",
"serieOfficialBill": "B",
"fiscalPosNumber": "0010",
"docNumber": "123025",
"fiscalCAENumber": "3210",
"fiscalCAEDate":"2020-07-10 00:00:00",
"fiscalInvoiceType": 6,
"total": 4950,
"relatedTaxes":[
{
"amount":100.66,
"baseAmount":479.34,
"code":21,
"name":"IVA 21%"
}
],
"otherTaxes": [
{
"amount":0,
"baseAmount":0,
"code":"",
"name":"",
"aliquot":0,
}
"party": {
"code": "0243145377",
"firstName": "Martin",
"lastName": "Malievac",
"email": "[email protected]",
"typeCode": "Person",
"identificationType": 1,
"identifier": "24314537",
"birthYearNumber": 1975,
"birthMonthNumber": 1,
"birthDayNumber": 3,
"taxCategory": "CF",
"partyContactMethods": {
"delivery": {
"name": "Personal",
"address": {
"firstLine": "Almafuerte 4430",
"secondLine": "Puerta 10, Piso 2",
"cityCode": "MUN",
"stateCode": "BsAs",
"countryCode": "AR",
"postalCode": "1605"
},
"emailAddress": "[email protected]",
"telephone": {
"countryCode": "54",
"areaCode": "11",
"telephoneNumber": "36637487",
"extensionNumber": "-"
}
},
"billing": {
"name": "Trabajo",
"address": {
"firstLine": "Venezuela 3158",
"secondLine": "Piso 6. Interno 066",
"cityCode": "VMA",
"stateCode": "BsAs",
"countryCode": "AR",
"postalCode": "1603"
},
"emailAddress": "[email protected]",
"telephone": {
"countryCode": "54",
"areaCode": "11",
"telephoneNumber": "41100000",
"extensionNumber": "066"
}
}
}
},
"detail": [
{
"internaltemCode": "ABC001",
"description": "Producto Galaxy S2",
"storeCode": "UNICENTER",
"location": "ventas2",
"quantity": 1,
"actualUnitPrice": 1000,
"extendedPrice": 1000,
"discountPromoTotal": 10,
"discountTotal": 10,
"internalTaxesTotal": 0,
"ivaTotal": 0,
"seller": "martinm",
"partyContactMethodName": "Personal",
"serializedUnits": [
{
"serialNumber": "123456789",
"importDocNumber": "12345",
"customsNumber": "123455",
"customsDate": "2020-07-10 00:00:00",
"unitCount": 1
},
],
"priceModifiers": [
{
"percent": 5,
"amount": 50,
"reasonText": "Promo cliente especial"
}
]
},
],
"payments": [
{
"tender": "peso",
"amount": 2000
},
{
"tender": "VI",
"amount": 2950,
"planDescriptor": "9 meses sin intereses",
"sellerName": "MIRGOR",
"authorizationCode": "1",
"couponNumber": "1",
"lotNumber": "1",
"installments": "9",
"referenceNumber": "1"
}
]
} |
Descripción de los campos:
Importante: los campos que poseen este ícono , son valores tipificados que deben respetar los valores expuestos por BRIDGE en sus servicios.cambio o devolución.
Esto es realizado en colas RabbitMQ y lo que se postea, posee formato JSON.
Se adjuntan al post, diferentes ejemplos de transacciones en formato JSON.
View file | ||||
---|---|---|---|---|
|
Campo | Tipo | Descripción |
trxType |
991: el código es requerido.
996: Ya existe el código originante
operatorName
Martin Malievac
trxDate
discountPromoTotal
Number
internalTaxesTotal
Number
otherTaxes
billType
0, 21, 27, 10.5
1, valores posibles:
1: DNI
2: Pasaporte
3: CUIL
4: CUIT
MT: MONOTRIBUTISTA
RI: RESPONSABLE INSCRIPTO
CF: CONSUMIDOR FINAL
EX: IVA EXENTO
seller
- En el caso de MercadoPago, aqui se informa el id de pago.
string | El tipo de transacción, pueden ser los valores 'Sale', 'Return' o 'Exchange' | |
trxNumber | number | Numero de transacción de la terminal |
trxNumberOriginal | number | En caso de devoluciones, es requerido el numero original de la transacción |
trxTypeLang | string | Es el tipo de la transacción, en español, Venta, Devolución o Cambio |
companyCode | string | Código de compañía |
companyName | string | Nombre de la compañía |
storeCode | string | Código de la tienda |
storeName | string | Nombre de la tienda |
terminalCode | string | Código de la terminal |
periodNumber | number | Numero de período |
sbPeriodNumber | number | Número de turno |
businessDayDate | Date | Dia fiscal |
beginDateTime | Date | Fecha de inicio de la transacción |
endDateTime | Date | Fecha de fin de la transacción |
beginDateTimeAsInt | number | Fecha de inicio de la transacción, como entero |
beginDateTimeHour | number | Fecha de fin de la transacción, como entero |
operatorCode | string | Código de operador o cajero |
operatorName | string | Nombre del operador |
itemCount | number | Cantidad de items de la venta |
grossAmount | number | Monto bruto, con impuestos incluidos, sin descuentos |
taxAmount | number | Importe de impuestos |
promoDiscountAmount | number | Descuentos otorgados por promociones generales |
manualDiscountAmount | number | Descuentos otorgados por descuentos manuales |
trainingModeFlag | boolean | Si es modo entrenamiento |
suspendedFlag | boolean | Si es una transacción suspendida |
cancelFlag | boolean | Si es una transacción cancelada |
offlineFlag | boolean | Si es una transacción offline |
contingencyFlag | boolean | Si es una transacción cargada en contingencia |
netSalesAmount | number | Monto neto de la transacción |
returnAmount | number | Monto de la devolución, para el caso de los cambios |
grossPositiveAmount | number | Monto positivo de la venta (productos) |
grossNegativeAmount | number | Monto negativo de la venta (impuestos) |
ivaTaxAmount | number | Impuesto al valor agregado |
internalTaxAmount | number | Impuestos internos |
perceptionAmount | number | Importe de percepciones |
transactionDiscountAmount | number | Importe general de descuentos de la transacción (descuentos por promociones + descuentos manuales) |
iva0Amount | number | Monto de la venta con impuestos al 0% (solo Argentina) |
iva21Amount | number | Monto de la venta con impuestos al 21% (solo Argentina) |
iva10Amount | number | Monto de la venta con impuestos al 10% (solo Argentina) |
iva27Amount | number | Monto de la venta con impuestos al 27% (solo Argentina) |
fiscalPosNumber | string | Número de centro emisor para emisión de factura electrónica |
billType | string | Tipo de comprobante, las opciones son FC A, FC B, NC A, NC B |
serieOfficialBill | string | A o B de acuerdo a si es un comprobante a responsable inscripto o no |
billNumber | string | Numero fe factura electrónica |
fiscalCAENumber | string | Número de autorización de factura electrónica |
fiscalCAEDate | Date | Fecha de autorización de factura electrónica |
currentZNumber | number | Número de Z fiscal |
currencyDescription | string | Descripción de la moneda de la operación |
originalSerieOfficialBill | string | En caso de ser una nota de crédito, referencia a la factura original |
originalFiscalPOSNumber | string | En caso de ser una nota de crédito, referencia a la factura original |
originalBillNumber | string | En caso de ser una nota de crédito, referencia a la factura original |
hasCustomer | boolean | Si posee un cliente asociado o no |
denomination | string | El nombre del cliente, en caso de poseer uno asociado |
partyCode | string | El código del cliente, generalmente es su identificación |
partyTaxCategory | string | La categoría impositiva del cliente, puede ser CF (Consumidor Final) o RI (Responsable Inscripto) |
partyType | string | Si es persona PRS o Organización OGN |
partyFirstName | string | Primer nombre del cliente |
partyLastName | string | Apellido del cliente |
partyPerson | boolean | Si es una persona |
partyOrganization | boolean | Si es una organización |
partyIdentificationType | string | Tipo de identificación. 1 DNI 2 Pasaporte 3 CUIT 4 CUIL |
partyIdentificationNumber | string | Numero de identificación |
Items | ||
trxType | string | Se repite el mismo dato que la cabecera |
trxNumber | number | Se repite el mismo dato que la cabecera |
storeName | string | Se repite el mismo dato que la cabecera |
storeCode | string | Se repite el mismo dato que la cabecera |
terminalCode | string | Se repite el mismo dato que la cabecera |
periodNumber | number | Se repite el mismo dato que la cabecera |
sbPeriodNumber | number | Se repite el mismo dato que la cabecera |
beginDateTime | Date | Se repite el mismo dato que la cabecera |
beginDateTimeAsInt | number | Se repite el mismo dato que la cabecera |
beginDateTimeHour | number | Se repite el mismo dato que la cabecera |
operatorCode | string | Se repite el mismo dato que la cabecera |
operatorName | string | Se repite el mismo dato que la cabecera |
internalCode | string | Código del producto. Debe ser un SKU existente en Bridge. Consultar catálogo de maestros. |
description | string | Descripción del producto |
merchandiseHierarchyGroupCode | string | Código de grupo de la estructura jerárquica |
merchandiseHierarchyGroupName | string | Nombre del grupo de la estructura jerárquica |
unitPrice | number | Precio unitario del producto |
quantity | number | Cantidad del producto |
units | number | Cantidad del producto |
extendedPrice | number | Precio total del producto (precio unitario x cantidad) |
netAmount | number | Importe final o neto del producto |
voiding | boolean | Si es un producto anulado, es decir, no forma parte de la venta |
voidFlag | boolean | Si es un producto anulado, es decir, no forma parte de la venta |
trainingModeFlag | boolean | Se repite el mismo dato que la cabecera |
suspendedFlag | boolean | Se repite el mismo dato que la cabecera |
cancelFlag | boolean | Se repite el mismo dato que la cabecera |
locationCode | string | Código de almacen desde donde el producto sale |
sellerCode | string | Código del vendedor del item |
promoDiscountAmount | number | Descuento otorgado por promociones |
manualDiscountAmount | number | Descuentos manuales sobre el producto |
Medios de Pago | ||
trxType | string | Se repite el mismo dato que la cabecera |
trxNumber | number | Se repite el mismo dato que la cabecera |
storeName | string | Se repite el mismo dato que la cabecera |
storeCode | string | Se repite el mismo dato que la cabecera |
terminalCode | string | Se repite el mismo dato que la cabecera |
periodNumber | number | Se repite el mismo dato que la cabecera |
sbPeriodNumber | number | Se repite el mismo dato que la cabecera |
beginDateTime:Date, | Date | Se repite el mismo dato que la cabecera |
beginDateTimeAsInt | number | Se repite el mismo dato que la cabecera |
beginDateTimeHour | number | Se repite el mismo dato que la cabecera |
operatorCode | string | Se repite el mismo dato que la cabecera |
operatorName | string | Se repite el mismo dato que la cabecera |
tenderName | string | Nombre del medio de pago |
amount | number | Monto del medio de pago |
change | number | Cambio (en caso de ser efectivo) |
surcharge | number | Recargo (para casos como tarjetas) |
voided | boolean | Si fue anulado |
voiding | boolean | Si fue anulado |
netAmount | number | Monto neto del pago |
trainingModeFlag | boolean | Se repite el mismo dato que la cabecera |
suspendedFlag | boolean | Se repite el mismo dato que la cabecera |
cancelFlag | boolean | Se repite el mismo dato que la cabecera |
fiscalPosNumber | string | Numero de centro emisor |
billType | string | Tipo de comprobante, las opciones son FC A, FC B, NC A, NC B |
serieOfficialBill | string | A o B de acuerdo a si es un comprobante a responsable inscripto o no |
billNumber | string | Numero fe factura electrónica |
foreignCurrencyQuote | number | |
foreignAmount | number | Monto en moneda extranjera |
foreignChange | number | Cambio de la moneda extranjera |
currencyISOCode | string | Código de la moneda |
card | boolean | Código de tarjeta |
externalId | string | |
vtolStore | string | Código de tienda de VTOL |
vtolTerminal | string | Código de terminal de VTOL |
cardNumber | string | Número de tarjeta enmascarado |
cardType | string | Tipo de tarjeta |
lotNumber | string | Número de lote |
referenceNumber | string | Número de referencia |
provider | string | Autorizador |
planDescriptor | string | Plan de pagos |
sellerName | string | Código de comercio |
cardAuthorizationCode | string | Código de autorización de la tarjeta |
cardCouponNumber | string | Número de cupón de la tarjeta |
cardLotNumber | string | Número de lote de la tarjeta |
installments | string | Cantidad de cuotas |
cardReferenceNumber | string | Codigo de referencia de la tarjeta |
Descuentos y promociones | ||
trxType | string | Se repite el mismo dato que la cabecera |
trxNumber | number | Se repite el mismo dato que la cabecera |
storeName | string | Se repite el mismo dato que la cabecera |
storeCode | string | Se repite el mismo dato que la cabecera |
terminalCode | string | Se repite el mismo dato que la cabecera |
periodNumber | number | Se repite el mismo dato que la cabecera |
sbPeriodNumber | number | Se repite el mismo dato que la cabecera |
beginDateTime | Date | Se repite el mismo dato que la cabecera |
beginDateTimeAsInt | number | Se repite el mismo dato que la cabecera |
beginDateTimeHour | number | Se repite el mismo dato que la cabecera |
operatorCode | string | Se repite el mismo dato que la cabecera |
operatorName | string | Se repite el mismo dato que la cabecera |
internalCode | string | Codigo interno del producto |
description | string | Descripción del producto |
promoCode | string | Código interno de la promoción |
promoDescription | string | Descripción de la promoción |
benefitClass | string | Clase de beneficio (monetario o no monetario) |
benefitType | string | Tipo de beneficio (descuento fijo, descuento porcentaje) |
benefitValue | number | Valor del beneficio, por ejemplo, el porcentaje de descuento |
couponCode | string | Codigo de cupon |
cardCode | string | Código de tarjeta de fidelidad |
cardType | string | Tipo de tarjeta de fidelidad |
currentCardAmount | number | Monto en puntos de la tarjeta |
cancelFlag | boolean | Se repite el mismo dato que la cabecera |