Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

CampoDescripciónTipo de Dato

companyId

código de Empresa

alfanumérico. Requerido

catalog

identificador del catálogoalfanumérico. Requerido
paramsParámetros que dependerán del catálogo

Listado de objetos de tipo clave, valor. Cada catalogo puede tener sus parámetros específicos, pero como valor genérico tenemos:

  • "deleteAllCollectionFirst" : "true"   Indica que antes de realizar la importación de este conjunto de registros se realice el borrado de todos los registros existentes.
    NOTA: (desde 6.5.5 y 7.TRK)
    Ejemplo: 

[...]

  "params": [
        { "deleteAllCollectionFirst": "true" }
    ],

[...]

A partir de 7.2. 10, cuando se importa un nuevo catálogo, el usuario que realizó la modificación es informado en el log de la consola


Image Added


Aviso
titleImportante

No aplica a elementos de fidelidad y asignación de convenios.



ítemsRegistros a importar

Colección de objetos dependientes de cada catálogo

Informações
titleAtributos dinamicos.

Para el Catalogo de Clientes (catalogCustomer.catalog) podrá incorporarse  la carga de los atributos dinámicos de los ítems que se estén dando de alta. Para ello deberá especificarse el nombre de los atributos dinámicos dados de alta por consola dentro del tag


"items": [
{.... primer item .......}]

Los Atributos dinámicos cargados vía Servicio serán tomados para la validación entre atributos del elemento Producto en la definición de condiciones de una promoción, cuando ésta funcionalidad se encuentre habilitada en consola. (Ver Manual de Usuario - 7.2)

Bloco de código
languagexml
themeEmacs
titleEjemplo de catalogCustomer con Atributos dinámicos.
 {
    "companyId": "napse",
    "catalog": "catalogCustomer",
    "params": [],
    "items": [{
        "operation": "I",
                "code":"949450",
                "name":"John",
                "lastName":"Promo",
                "gender":"2",
                "birthDate":"03-05-1959",
                "identificationType":"01",
                "identifier":"4688779900",
                "identificationExpiration":"31-12-2030",
                "nacionality":"Arg",
                "email":"[email protected]",
                "customerType":"111",
                "address":"Av.Livertad 123",
                "addressCountry":"100",
                "addressState":"200",
                "addressCity":"300",
                "addressPostalCode":"9999",
                "phone":"457896203",
                "isActive":"true",                 
                "prof":"Ingeniero"     
    }
    ]
}

En el ejemplo anterior "prof" es el atributo dinámico creado para importar las profesiones de los clientes.

...

Expandir
titleImportación Catalogo Elemento de Fidelidad

Para la importación de elementos de fidelidad por medio del servicio Rest, deberá considerarse el siguiente formato general:

Bloco de código
languagexml
themeEmacs
titleinput
{
    "companyId": "napse",
    "catalog": "Card",
    "params": [],
    "items": [
        {
            "code": "4567000000000",
            "type": "tipo1",
            "validFrom": "",
            "validTo": "",
            "cvv": "123",
            "customerId": "1122",
            "amount": 50,
            "status": "ENABLED",
            "operation": "I"
        },
        {
            "code": "3456000000001",
            "type": "tipo2",
            "validFrom": "",
            "validTo": "",
            "cvv": "234",
            "customerId": "2233",
            "amount": 45.5,
            "status": "DISABLED",
            "operation": "U"
        },
        {
            "code": "3456000000002",
            "type": "tipo2",
            "validFrom": "",
            "validTo": "",
            "cvv": "345",
            "customerId": "2233",
            "amount": 35.5,
            "status": "ENABLED",
            "operation": "R"
        }
    ]
}

En la sección "ítems" deberán indicarse la colección de objetos dependientes de cada catálogo, en este caso, el de elementos, "Card"

CampoValor

code

El código del elemento.

type

El código del tipo de elemento.

validFrom

Fecha de inicio de vigencia (considerar los tipos de vigencia existentes en el tipo de elemento relacionado). Formato año-mes-día, 4 dígitos, 2 dígitos, 2 dígitos; por ej. "2020-05-14"

validTo

Fecha de fin de vigencia (considerar los tipos de vigencia existentes en el tipo de elemento relacionado). Formato año-mes-día, 4 dígitos, 2 dígitos, 2 dígitos; por ej. "2020-05-14"

cvv

Número cvv.

customerId

El código de cliente al cual pertenece el elemento (considerar el campo nominado del tipo de elemento). Alfanumérico.

amount

El monto del elemento (considerar el tipo de precarga del tipo del elemento). Numérico con decimales.

Aviso
titleIMPORTANTE

Este valor sólo se debe agregar si el tipo de elemento de fidelidad al que pertenece el elemento es precargado por archivo/servicio


status

El estado del elemento. Los valores posibles para el status son: ENABLED (elemento activo), DISABLED (elemento inactivo), CANCELED (elemento cancelado).

operation

La operación a realizar sobre el elemento. Los valores posibles son: I: Inserción / U: Actualización / R: Eliminación


...

Expandir
titleSolicitud

El formato general de solicitud es:

Bloco de código
languageyml
themeEmacs
{
 "companyId": "myCompanyId",
"params":[      
	{"param1":"param1value", "paramN":"paramNvalue", ...}
],
"items": [
{.... primer item .......},
{.... otro item .......},
{.... otro item .......},
{.... otro item .......},
{.... otro item .......},
]
}

donde

CampoDescripciónTipo de Dato

companyId

  • código de Empresa
alfanumérico. Requerido
paramsParámetros extra

Requerido

detailedErrors: indica si se desea el detalle de errores en la respuesta. Default: true

detailedSuccess: indica si se desea el detalle de registros correctos en la respuesta. Default: true

validateCard: Realiza todas las validaciones del elemento de fidelidad. Por ej: el uso de cvv. Default: false.

oneActiveCardByCustomer: Valida si un cliente posee un elemento de fidelidad activo. Default: true

itemsRegistros a importarColección de elementos y su operación asociada. Requerido


El formato de los ítems es el siguiente:

  
CampoDescripción
operationOperación a realizar sobre el registro.  Ver tabla siguiente. Requerido
codecódigo de elemento.  En este caso si se solicita crear un elemento, el mismo será creado con este código.  Si se deja por defecto genera un número automáticamente.  Valor por defecto: ''"
typeTipo de Elemento en cuestión.  Obligatorio, debe existir previamente.
validFromValida desde.  Opcional, si se deja vacío se generara acorde al tipo de elemento. El formato es "YYYY-MM-DD"
validToValida Hasta.  Opcional, ídem anterior. El formato es "YYYY-MM-DD"
amountMonto asociado a la operación. Requerido
customerIdCódigo de cliente asociado.  Valor por defecto: ''". Opcional
cvvCVV asociado.  Valor por defecto: ''".  Opcional
reasonMotivo de la operación.  Generalmente se utiliza en los cambios de saldo. Opcional.
stroreCodeTienda donde se realizó la transacción. Opcional (A partir de 7.2.6). 
terminalCodeTerminal donde se realizó la transacción. Opcional (A partir de 7.2.6). 


Aviso
titleImportante

A partir de Promo 7.2.6 se puede agregar a la mensajeria el storeCode y el terminalCode 

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [],
    "items": [
        { "operation": "ACTIVATION", "code": "6000000010", "type": "15", "validFrom":"2023-08-11", "validTo":"2023-08-11", "amount":"100", "customerId":"12", "cvv":"", "reason":"", storeCode:"3", terminalCode:"1" }
    ]
}


Los cuales se detallarán en la consola en: Gestión de Elementos de Fidelidad, en el botón "acciones" /"ver"


Los valores posibles del campo operation son:

ValorDescripción
ACTIVATION

Activación del elemento con código "code".

Si se utiliza la operación "ACTIVATION" sobre un Elemento de Fidelidad que no existe, Promo lo creará además de activarlo.

AMOUNT_UPDATEActualización de saldo. Sumará o restará el valor según lo enviado en el Json de la operación.
RECHARGERecarga
CHARGE

Carga Inicial. Esta operación se utiliza exclusivamente cuando se activa una tarjeta con saldo, porque realiza la carga inicial activándola y cargándole el saldo.

Nota: si activa la tarjeta sin saldo inicial, al realizar la primer carga esa operación es recharge.

CONSUMEConsumo
CANCELDesactivar el elemento en cuestión


Informações
titleIMPORTANTE

IMPORTANTE

Este servicio no permite crear mas de un elemento de fidelidad activo para un mismo cliente (sin importar si está o no asociado a un convenio). Esto se controla con la variable: "oneActiveCardByCustomer", que por default es TRUE.

Elementos de Fidelidad Nominados

Ejemplo 1: Se solicita la activación de un elemento de fidelidad nominado con el parámetro oneActiveCardByCustomer en true y con el cliente, que ya tiene un elemento de fidelidad activo

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "napse",
    "params": [
        {}
    ],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "12110",
            "type": "13",
            "validFrom": "",
            "validTo": "",
            "amount": "0",
            "customerId": "9",
            "cvv": "",
            "reason": "",
            "storeCode": "",
            "terminalCode": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": "400",
    "description": "rest::cardAdmin",
    "detail": {
        "result": "error",
        "detail": "El cliente 9 ya posee un elemento de fidelidad activo"
    }
}


Ejemplo 2: Se solicita la activación de un elemento de fidelidad nominado con el parámetro oneActiveCardByCustomer en false y con el cliente:

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "napse",
    "params": [
        {"oneActiveCardByCustomer": "false" }
    ],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "12100",
            "type": "13",
            "validFrom": "",
            "validTo": "",
            "amount": "0",
            "customerId": "9",
            "cvv": "",
            "reason": "",
            "storeCode": "",
            "terminalCode": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20231023171240",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 1,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "12100",
                "amount": "0.0"
            }
        ]
    }
}

Se observa que se crea la tarjeta; aunque el cliente ya tiene asociada una tarjeta activa.

Ejemplo 3: Se solicita la activación de un elemento de fidelidad nominado con el parámetro oneActiveCardByCustomer en true y con un cliente.

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "napse",
    "params": [
        {}
    ],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "12200",
            "type": "13",
            "validFrom": "",
            "validTo": "",
            "amount": "0",
            "customerId": "10",
            "cvv": "",
            "reason": "",
            "storeCode": "",
            "terminalCode": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20231023171241",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 1,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "12200",
                "amount": "0.0"
            }
        ]
    }
}

Se observa que se creó la tarjeta.

Elemento de Fidelidad no Nominado

Ejemplo 1: Se solicita la activación de un elemento de fidelidad no nominado sin enviar el cliente:

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{}],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "10001",
            "type": "12",
            "validFrom": "",
            "validTo": "",
            "amount": "",
            "customerId": "",
            "cvv": "",
            "reason": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": "400",
    "description": "rest::cardAdmin",
    "detail": {
        "result": "error",
        "detail": "El cliente es requerido para el registro : 1"
    }
}


Ejemplo 2:  Se solicita la activación de un elemento de fidelidad no nominado con el cliente:

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "napse",
    "params": [
        {"oneActiveCardByCustomer":"false"}
    ],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "10002",
            "type": "12",
            "validFrom": "",
            "validTo": "",
            "amount": "0",
            "customerId": "clientec",
            "cvv": "",
            "reason": "",
            "storeCode": "",
            "terminalCode": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20231023162247",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 1,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "10002",
                "amount": "0.0"
            }
        ]
    }
}

Se observa que se ha creado la tarjeta.

Ejemplo 3: Se solicita la activación de un elemento de fidelidad no nominado con el parámetro oneActiveCardByCustomer en true y sin el cliente:

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "napse",
    "params": [
        {"oneActiveCardByCustomer":"true"}
    ],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "10008",
            "type": "12",
            "validFrom": "",
            "validTo": "",
            "amount": "0",
            "customerId": "",
            "cvv": "",
            "reason": "",
            "storeCode": "",
            "terminalCode": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": "400",
    "description": "rest::cardAdmin",
    "detail": {
        "result": "error",
        "detail": "El cliente es requerido para el registro : 1"
    }
}


Ejemplo 4:  Se solicita la activación de un elemento de fidelidad no nominado con el parámetro oneActiveCardByCustomer en false y sin el cliente:

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "napse",
    "params": [
        {"oneActiveCardByCustomer":"false"}
    ],
    "items": [
        {
            "operation": "ACTIVATION",
            "code": "10012",
            "type": "12",
            "validFrom": "",
            "validTo": "",
            "amount": "0",
            "customerId": "",
            "cvv": "",
            "reason": "",
            "storeCode": "",
            "terminalCode": ""
        }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20231023164008",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 1,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "10012",
                "amount": "0.0"
            }
        ]
    }
}

Se observa que el elemento ha sido creado.


...

Expandir
titleEjemplo
  1. Ejemplo de Envío de registro. 

En este caso se envían las siguientes tarjetas:

  1. solicitar crear una tarjeta "1000000005", de tipo 1, con saldo de 1000.
  2. solicitar crear una tarjeta "1010000000", de tipo 2, con saldo de 150.
  3. solicitar crear una tarjeta "2010000001", de tipo 3, con saldo de 50.
  4. solicitar crear una tarjeta "7010000000", de tipo 4, con saldo de 1000.
  5. solicitar crear una tarjeta "1100000001", de tipo 5, con saldo de 1000.
  6. solicitar crear una tarjeta "1300000001", de tipo 6, con saldo de 100.
  7. solicitar crear una tarjeta "7000000000", de tipo 7, con saldo de 1000.
  8. solicitar crear una tarjeta "1000000005", de tipo 8, con saldo de 1000


Bloco de código
languagexml
themeEmacs
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "ACTIVATION", "code": "1000000005", "type": "1", "validFrom":"", "validTo":"", "amount":"1000", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "1010000000", "type": "2", "validFrom":"", "validTo":"", "amount":"150", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "2010000001", "type": "3", "validFrom":"", "validTo":"", "amount":"50", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "7010000000", "type": "4", "validFrom":"2023-08-14", "validTo":"2024-08-14", "amount":"1000", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "1100000001", "type": "5", "validFrom":"", "validTo":"", "amount":"1000", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "1300000001", "type": "6", "validFrom":"", "validTo":"", "amount":"100", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "7000000000", "type": "7", "validFrom":"", "validTo":"", "amount":"1000", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "1000000005", "type": "8", "validFrom":"", "validTo":"", "amount":"1000", "customerId":"", "cvv":"", "reason":""  }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814181744",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 5,
        "removed": 0,
        "errors": 3,
        "processed": 8,
        "errorDetails": [
            {
                "rec": 1,
                "code": "9520",
                "info": null
            },
            {
                "rec": 5,
                "code": "9520",
                "info": null
            },
            {
                "rec": 8,
                "code": "9520",
                "info": null
            }
        ],
        "successDetails": [
            {
                "rec": 2,
                "code": "1010000000",
                "amount": "150.0"
            },
            {
                "rec": 3,
                "code": "2010000001",
                "amount": "50.0"
            },
            {
                "rec": 4,
                "code": "7010000000",
                "amount": "1000.0"
            },
            {
                "rec": 6,
                "code": "1300000001",
                "amount": "100.0"
            },
            {
                "rec": 7,
                "code": "7000000000",
                "amount": "1000.0"
            }
        ]
    }
}

la respuesta informa sobre el Id de la transaction

y el amount del elemento de fidelidad.

2. Se solicita modificar la carga de la tarjeta 1000000010 con 1000. Inicialmente no tenia carga

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "AMOUNT_UPDATE", "code": "1000000010", "type": "1", "validFrom":"", "validTo":"", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
         
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814182939",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "1000000010",
                "amount": "2000.0"
            }
        ]
    }
}

3. Se solicita consumir 30 de la tarjeta "1010000000"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "CONSUME", "code": "1010000000", "type": "1", "validFrom":"", "validTo":"", "amount":"30.00", "customerId":"", "cvv":"", "reason":""  }
         
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814183317",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "1010000000",
                "amount": "120.0"
            }
        ]
    }
}

Se observa que ahora la tarjeta tiene un saldo de 120; cuando inicialmente era de 150

4. Se solicita recargar 30 a la tarjeta "4200000002"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "RECHARGE", "code": "4200000002", "type": "6", "validFrom":"", "validTo":"", "amount":"30.00", "customerId":"", "cvv":"", "reason":""  }
         
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814183628",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "4200000002",
                "amount": "1180.0"
            }
        ]
    }
}

5. Se solicita cargar 1000 a la tarjeta "7000000000"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "CHARGE", "code": "7000000000", "type": "7", "validFrom":"", "validTo":"", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
         
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814184411",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "7000000000",
                "amount": "2000.0"
            }
        ]
    }
}

 6. Se solicita cancelar la tarjeta "7000000000"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "CANCEL", "code": "7000000000", "type": "7", "validFrom":"", "validTo":"", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
         
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814184627",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "7000000000",
                "amount": "2000.0"
            }
        ]
    }
}

donde

Campo

Descripción

Tipo de Dato

transactionId

Id de la transaccion

string

status

  • código de respuesta
200 indica que ha sido procesada correctamente.
detail.updatedcantidad de ítems actualizadosinteger
detail.successDetailsDetalle de cada registro procesado correctamente

rec: Numero de registro en la solicitud

code: código del elemento.

amount: carga del elemento de fidelidad

detail.resultResultado general del procesook indicando proceso realizado
detail.removedcantidad de ítems removidosinteger
detail.processedcantidad de ítems procesadosinteger
detail.insertedcantidad de ítems agregadosinteger
detail.ignoredcantidad de ítems ignoradosinteger
detail.errorscantidad de ítems erróneosinteger
detail.errorDetailsDetalle de cada registro con error.

rec: numero de registro en la solicitud

code: código de error. Ver lista de errores en el Manual de Integración - Motor 7.2,

info: mensaje informativo del error, puede devolver NULL.

detail.detailMensaje detallado respecto al procesovacío en el caso de ok
detailDetalle del procesoarray
description

Descripción general

Fijo "rest::cardAdmin'

Los resultados de estas operaciones se verán reflejados en la Consola/Módulo de Fidelidad/Elementos de Fidelidad.

...

Expandir
titleSolicitud

El formato general de solicitud es:

Bloco de código
languageyml
themeEmacs
{
 "companyId": "myCompanyId",
"params":[      
	{"param1":"param1value", "paramN":"paramNvalue", ...}
],
"items": [
{.... primer item .......},
{.... otro item .......},
{.... otro item .......},
{.... otro item .......},
{.... otro item .......},
]
}

donde

CampoDescripciónTipo de Dato

companyId

  • código de Empresa
alfanumérico. Requerido
paramsParámetros extra

detailedErrors: indica si se desea el detalle de errores en la respuesta. Default: true

detailedSuccess: indica si se desea el detalle de registros correctos en la respuesta. Default: true

itemsRegistros a importarColección de cupones y su operación asociada.


El formato de los ítems es el siguiente:

  
CampoDescripción
operationOperación a realizar sobre el registro.  Ver tabla siguiente
barcodeCódigo de barras del cupón.  En este caso si se solicita crear un elemento, el mismo será creado con este código.  Si se deja por defecto genera un número automáticamente.  Valor por defecto: ''
emailCorreo electrónico destino para cupones de tipo electrónico.  Opcional.  Valor por defecto: ""
typeTipo de Cupón. Obligatorio, debe existir previamente.
amountMonto asociado a la operación.
customerIdCódigo de cliente asociado.  Valor por defecto: ''
storeCodeTienda donde se realizó la transacción. Opcional (A partir de 7.2.6). 
terminalCodeTerminal donde se realizó la transacción. Opcional (A partir de 7.2.6).


Los valores posibles del campo operation son:

ValorDescripción
CREATEEmitir/Crear el cupón informado.
REDEEMRedención
VOIDDesactivar
UPDATE

A partir de la versión 7.2.3 se agrega la posibilidad de enviar un update sobre el cliente, además de sobre el vencimiento que ya se podía realizar1 bajo la operación UPDATE se puede modificar la fecha de vigencia de cupones utilizando el nuevo campo "validTo".

Si como parte de una operación de UPDATE de un cupón, se informa un customerId, ese customer será asignado al cupón.

En modo normal, será validado que el customerId exista previamente, dando un error si no existe el cliente en la base de datos de Promo. Si el flag "promo.allowNonExistingCustomers" está activo, entonces esta verificación no se llevará a cabo, pudiéndose asignar un cupón a un cliente inexistente en la base de Promo.

Nota: La operación UPDATE no modifica los datos del cliente que se ven desde la pantalla "Gestión de Clientes". La operación UPDATE actualiza los datos del cupón.


Expandir
titleEjemplo

Ejemplo de Envío de registro.  En este caso se envían los siguientes cupones: 

  1. Se solicitar crear el cupón 1050000018 con valor de 1000.
  2. Se solicita redimir el cupón 1050000018 con valor de 300.
  3. Se solicita anular el cupón 1050000019.


Bloco de código
languageyml
themeEmacs
{
    "companyId": "2",
    "params": [],
    "items": [
        {
            "operation": "CREATE",
            "barcode": "1050000018",
            "type": "6",
            "email": "",
            "storeCode":"3",
            "terminalCode":"1",
            "amount": "1000.00",
            "customerId": "3"
        },
        {
            "operation": "REDEEM",
            "barcode": "1050000018",
            "type": "6",
            "email": "",
            "storeCode":"3",
            "terminalCode":"1",
            "amount": "300.00",
            "customerId": "3"
        },
        {
            "operation": "VOID",
            "barcode": "1050000019",
            "type": "6",
            "email": "",
            "storeCode":"3",
            "terminalCode":"1",
            "amount": "1000",
            "customerId": "3"
        }
    ]
}

El formato general de  respuesta es:

Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::couponAdmin",
    "transactionId": "SVC_CPN_20230814165801",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 1,
        "removed": 0,
        "errors": 1,
        "processed": 3,
        "errorDetails": [
            {
                "rec": 3,
                "code": "9101",
                "info": null
            }
        ],
        "successDetails": [
            {
                "rec": 1,
                "code": "1050000018"
            },
            {
                "rec": 2,
                "code": "1050000018"
            }
        ]
    }
}


Expandir
titleEjemplo

Ejemplo de Envío de registro. 

En este caso se envían las siguientes tarjetas:

  1. solicitar crear una tarjeta "3000000002", de tipo 8, con saldo de 100.
  2. solicitar crear una tarjeta "3200000002", de tipo 9, con saldo de 700.
  3. solicitar crear una tarjeta "3500000002", de tipo 10, con saldo de 50.
  4. solicitar crear una tarjeta "3700000002", de tipo 11, con saldo de 700.
  5. solicitar crear una tarjeta "4100000002", de tipo 12, con saldo de 3500.
  6. solicitar crear una tarjeta "4200000002", de tipo 13, con saldo de 150.
  7. solicitar crear una tarjeta "4200000002", de tipo 14, con saldo de 150.


Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "ACTIVATION", "code": "3000000002", "type": "8", "validFrom":"-", "validTo":"-", "amount":"100", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "3200000002", "type": "9", "validFrom":"-", "validTo":"-", "amount":"700", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "3500000002", "type": "10", "validFrom":"-", "validTo":"-", "amount":"50", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "3700000002", "type": "11", "validFrom":"-", "validTo":"-", "amount":"700", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "4100000002", "type": "12", "validFrom":"-", "validTo":"-", "amount":"3500", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "4200000002", "type": "13", "validFrom":"-", "validTo":"-", "amount":"150", "customerId":"", "cvv":"", "reason":""  },
        { "operation": "ACTIVATION", "code": "4200000002", "type": "14", "validFrom":"-", "validTo":"-", "amount":"150", "customerId":"", "cvv":"", "reason":""  }
       
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814115340",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 5,
        "removed": 0,
        "errors": 2,
        "processed": 7,
        "errorDetails": [
            {
                "rec": 5,
                "code": "9504",
                "info": null
            },
            {
                "rec": 7,
                "code": "9503",
                "info": null
            }
        ],
        "successDetails": [
            {
                "rec": 1,
                "code": "3000000002",
                "amount": "100.0"
            },
            {
                "rec": 2,
                "code": "3200000002",
                "amount": "700.0"
            },
            {
                "rec": 3,
                "code": "3500000002",
                "amount": "50.0"
            },
            {
                "rec": 4,
                "code": "3700000002",
                "amount": "700.0"
            },
            {
                "rec": 6,
                "code": "4200000002",
                "amount": "150.0"
            }
        ]
    }
}

A partir de Promo 7.2.6 la respuesta informa sobre el Id de la transaction

y el amount del elemento de fidelidad.

8. Se solicita modificar la carga de la tarjeta 450000000 con 1000. Inicialmente no tenia carga

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "AMOUNT_UPDATE", "code": "4500000000", "type": "14", "validFrom":"2023-08-14", "validTo":"2023-12-31", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814151200",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "4500000000",
                "amount": "1000.0"
            }
        ]
    }
}


9. Se solicita consumir 30 de la tarjeta "3000000002"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "CONSUME", "code": "3000000002", "type": "14", "validFrom":"2023-08-14", "validTo":"2023-12-31", "amount":"30.00", "customerId":"", "cvv":"", "reason":""  }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814151751",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "3000000002",
                "amount": "70.0"
            }
        ]
    }
}

Se observa que ahora la tarjeta tiene un saldo de 70; cuando inicialmente era de 100

10. Se solicita recargar 1000 a la tarjeta "3000000003"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "RECHARGE", "code": "3000000003", "type": "14", "validFrom":"2023-08-14", "validTo":"2023-12-31", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814152100",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "3000000003",
                "amount": "1000.0"
            }
        ]
    }
}


11. Se solicita cargar 1000 a la tarjeta "3000000003"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "CHARGE", "code": "4200000002", "type": "14", "validFrom":"2023-08-14", "validTo":"2023-12-31", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814152636",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "4200000002",
                "amount": "1150.0"
            }
        ]
    }
}

12. Se solicita cancelar la tarjeta "3000000003"

Bloco de código
languagexml
themeEmacs
titleRequest
{
    "companyId": "2",
    "params": [{"oneActiveCardByCustomer":"false", "validatedCardvalidateCard":"true"}],
    "items": [
        { "operation": "CANCEL", "code": "4200000002", "type": "14", "validFrom":"2023-08-14", "validTo":"2023-12-31", "amount":"1000.00", "customerId":"", "cvv":"", "reason":""  }
    ]
}


Bloco de código
languagexml
themeEmacs
titleResponse
{
    "status": 200,
    "description": "rest::cardAdmin",
    "transactionId": "SVC_CRD_20230814152954",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 1,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 0,
        "processed": 1,
        "errorDetails": [],
        "successDetails": [
            {
                "rec": 1,
                "code": "4200000002",
                "amount": "1150.0"
            }
        ]
    }
}

Los resultados de estas operaciones se verán reflejados en la Consola/Módulo de Fidelidad/Elementos de Fidelidad

donde

CampoDescripciónTipo de Dato

status

código de respuesta

200 indica que ha sido procesada correctamente.
description

Descripción general

Fijo "rest::couponAdmin'
transactionId

Id de la transacción

string (A partir de 7.2.6)
detailDetalle del procesoarray
detail.resultResultado general del procesook indicando proceso realizado
detail.detailMensaje detallado respecto al procesovacío en el caso de ok
detail.updatedcantidad de ítems actualizadosinteger
detail.ignoredcantidad de ítems ignoradosinteger
detail.insertedcantidad de ítems agregadosinteger
detail.removedcantidad de ítems removidosinteger
detail.errorscantidad de ítems erróneosinteger
detail.processedcantidad de ítems procesadosinteger
detail.errorDetailsDetalle de cada registro con error.

rec: numero de registro en la solicitud

code: código de error. Ver lista de errores en el Manual de Integración 7.2- Motor.

info: mensaje informativo del error, puede devolver NULL.

detail.successDetailsDetalle de cada registro procesado correctamente

rec: Numero de registro en la solicitud

code: código de cupón



...

Modificar Fecha de vigencia de cupones:

A partir de la versión 7.2.1 se tiene disponible esta funcionalidad.

Se debe hacer la consulta en: POST http://{{SERVER}}:{{PORT}}/promo/api/rest/coupons/admin

Para la modificación de la vigencia de cupones se debe enviar bajo la operación "UPDATE" (solo se puede realizar con esta operación) un nuevo campo dentro del listado ítems, : campo validTo.

Ej:

Bloco de código
languagexml
themeEmacs
titleModificación Validez de Cupones
{
    "companyId": "{{COMPANY}}",
    "params": [],
    "items": [
        {
            "operation": "UPDATE",        
            "barcode": "3335",
            "type": "tipo123",
            "email": "",
            "amount": "",
            "customerId": ""
            "validTo": "2022-01-15"                <--------------------- Nuevo
        }
    ]
}

La respuesta será:

Bloco de código
languagexml
themeEmacs
titleModificación Validez de Cupones
{
    "status": 200,
    "description": "rest::couponAdmin",
    "detail": {
        "result": "ok",
        "detail": "",
        "updated": 0,
        "ignored": 0,
        "inserted": 0,
        "removed": 0,
        "errors": 1,
        "processed": 1,
        "errorDetails": [          <--------- Caso de error
            {
                "rec": 1,
                "code": "9520",
                "info": null
            }
        ],
        "successDetails": [{        <--------- Caso satisfactorio
            {
                "rec": 1,
                "code": "12345678"
            }
        }]
    }
}


...