Saltar al contenido principal

Funciones adicionales

note

Recuerda que estas llamadas API serán peticiones HTTP POST a un la dirección TCP/IP donde está instalado el DeviceHub. Normalmente esta dirección será:

POST http://localhost:17000

Existen llamadas especiales que ofrecen su funcionalidad a través del contenido del propio mensaje XML. Son conocidas como CallSpecificFunction. Tienen los mismos elemementos comunes que todas las llamadas: ClientIdValue, ... pero además todas las de este tipo tienen los siguientes parámetros comunes:

  • Function
  • Modifier
  • Parameter 1
  • Parameter 2
  • Parameter 3

A continuación incluimos un ejemplo genérico a modo de prototipo:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:CallSpecificFunctionRequest>
<tem:Header>
<tem:ClientId>ClientIdValue</tem:ClientId>
<tem:StoreId>StoreIdValue</tem:StoreId>
<tem:PosId>PosValue</tem:PosId>
<tem:Lang>Idioma</tem:Lang>
<tem:ExtraData1></tem:ExtraData1>
</tem:Header>
<tem:Function>FunctionCode</tem:Function>
<tem:Modifier>FunctionModifier</tem:Modifier>
<tem:Parameter1>Parameter1</tem:Parameter1>
<tem:Parameter2>Parameter1</tem:Parameter2>
<tem:Parameter3>Parameter3</tem:Parameter3>
</tem:CallSpecificFunctionRequest>
</soap:Body>
</soap:Envelope>

Devoluciones referenciadas [BeginDevolution]

En este caso, teniendo un importe y un número de ticket, se lanza la transacción de devolución, solicitando la autorización financiera. El código de respuesta refleja si la petición ha sido entregada al servicio device hub. Para obtener el resultado de la transacción, es necesario utilizar la función GetNextMessage.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:BeginDevolutionRequest>
<tem:Header>
<tem:ClientId>ClientIdValue</tem:ClientId>
<tem:StoreId>StoreIdValue</tem:StoreId>
<tem:PosId>PosIdValue</tem:PosId>
<tem:Lang>Idioma</tem:Lang>
<tem:ExtraData1></tem:ExtraData1>
</tem:Header>
<tem:Amount>Importe</tem:Amount>
<tem:TicketNumber>TicketNumber</tem:TicketNumber>
</tem:BeginDevolutionRequest>
</soap:Body>
</soap:Envelope>

Petición: BeginDevolutionRequest

TIPONOMBRECOMENTARIOS
HeaderHeaderDatos utilizados durante las siguientes consultas.
StringAmountImporte de la devolución. Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan los céntimos.Ej.: 1€ -> 0000000100; 2,25€-> 0000000225
StringTicketNumberNúmero de recibo de la devolución.

Header

TIPONOMBRECOMENTARIOS
StringClientidIdentificador del comercio.
StringStoreidIdentificador de la tienda.
StringPosidIdentificador del Terminal Punto de Venta.
StringLanguageIdentificador del idioma: 0 Español 1 English.
StringExtraData1No usado.

Nota: El campo Posid no debe superar los 30 caracteres y se recomienda no usar los siguientes símbolos dentro del campo {"/","\"}

Parámetros de Salida

Respuesta: BeginDevolutionResponse

TIPONOMBRECOMENTARIOS
ResultResultRetorna 0=OK o un código de error y su descripción.

Result

TIPONOMBRECOMENTARIOS
IntCodeCódigo de error.
StringDescripciónDescripción del error.

Información sobre la impresión del ticket

El software de caja deberá incluir una serie de datos para la impresión del ticket. Los campos obligatorios y opcionales son los siguientes:

CAMPOS OBLIGATORIOS RECIBO DE DEVOLUCIÓN
Tipo de operación
Nombre del establecimiento
Ciudad del establecimiento
Nº de tarjeta sustituyendo los 12 primeros dígitos por '*'
Etiqueta de la aplicación con la siguiente prioridad 'ApplicationLabel(T50),'Etiqueta del terminal'(Solo si la operación se realizó con tarjeta EMV)
Fecha y hora de la operación (DDMMAA hhmm)
Nº de autorización
Importe de la operación con indicación de moneda
Recibo para el comercio: Indicar que se trata de una copia y que es para el establecimiento
Recibo para el cliente: Recuadro de firma del establecimiento indicando que el recibo es para el cliente
Resto de copias: Indicar que se trata de una copia
CAMPOS OPCIONALES
Titular (hay empresas que lo incluyen y otras no)
Centro autorizador
Pasarela de pagos

La impresión del ticket dependerá del modelo de Pin Pad utilizado:

  • PIN Pad fijos (integrados): La impresión y los campos del ticket dependen del TPV.
  • PIN Pad inalámbricos (stand-alone): La impresión y los campos del ticket depende de la pasarela de Sipay.

IMPORTANTE: Hay que tener en cuenta que la impresión del ticket representa la finalización de la transacción. En caso de que no se produzca la impresión del ticket (en el TPV o en el mismo PIN Pad), la operación no se habrá terminado, siendo necesario el envío de una cancelación de la operación en curso, por parte del TPV.

  • Para aquellos comercios que deseen trabajar con devolución con comprobación (devolución asociada a una venta cuyo importe nunca podrá superar el de la venta original), deberán solicitar la configuración a Sipay. El número de ticket deberá ser igual al de la venta original. La devolución con comprobación tiene un plazo máximo de devolución de 3 meses.

Carga de fichero 3000 [CallSpecificFunction 20]

Esta operativa permite la carga de un fichero 3000 de configuración a los PIN Pads (fichero facilitado por Sipay Plus). Durante el proceso no se pueden realizar operaciones financieras.

El fabricante, recomienda el borrado de los parámetros actuales antes de realizar una carga de fichero 3000. Este borrado debe ser realizado por el teclado del dispositivo, por lo que en caso de necesitar más información, debes ponerte en contacto con el equipo de soporte de Sipay.

Parámetros:

Los datos de Header deben ser iguales que en todas las transacciones.

  • Function: 20
  • Modifier: 0
  • Parameter1: Path y nombre del fichero 3000 a cargar.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:CallSpecificFunctionRequest>
<tem:Header>
<tem:ClientId>ClientIdValue</tem:ClientId>
<tem:StoreId>StoreIdValue</tem:StoreId>
<tem:PosId>PosIdValue</tem:PosId>
<tem:Lang>Idioma</tem:Lang>
<tem:ExtraData1></tem:ExtraData1>
</tem:Header>
<tem:Function>20</tem:Function>
<tem:Modifier>0</tem:Modifier>
<tem:Parameter1>C:\path\to\file.txt</tem:Parameter1>
<tem:Parameter2></tem:Parameter2>
<tem:Parameter3></tem:Parameter3>
</tem:CallSpecificFunctionRequest>
</soap:Body>
</soap:Envelope>

Carga de claves PINOnline [CallSpecificFunction 4]

Parámetros:

Los datos de Header deben ser iguales que en todas las transacciones.

  • Function: 4
  • Modifier: 0
  • Parameter1: Numero del cajón a actualizar (1.9).
  • Parameter2: No utilizado.
  • Parameter3: No utilizado.

Esta funcionalidad solamente se utiliza en los dispositivos que trabajan con PINOnline, y provoca la petición de la actualización de las claves con la entidad procesadora.

Se debe utilizar cuando lo solicite la entidad autorizadora o cuando se vaya a realizar una carga inicial de PINOnline en un dispositivo compatible. Para llevar a cabo esta acción debes ponerte en contacto con el equipo de soporte de Sipay, pues el dispositivo podría quedar inutilizado en caso de una mala operativa.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:CallSpecificFunctionRequest>
<tem:Header>
<tem:ClientId>ClientIdValue</tem:ClientId>
<tem:StoreId>StoreIdValue</tem:StoreId>
<tem:PosId>PosIdValue</tem:PosId>
<tem:Lang>Idioma</tem:Lang>
<tem:ExtraData1></tem:ExtraData1>
</tem:Header>
<tem:Function>4</tem:Function>
<tem:Modifier>0</tem:Modifier>
<tem:Parameter1>2</tem:Parameter1>
<tem:Parameter2></tem:Parameter2>
<tem:Parameter3></tem:Parameter3>
</tem:CallSpecificFunctionRequest>
</soap:Body>
</soap:Envelope>

Cancelación desde TPV [CallSpecificFunction 0]

En el momento en el que se excediera el tiempo de espera o hubiese algún error durante la transacción, es muy importante llamar a la función de Cancelación con el número de ticket.

Tras lanzar la llamada de Cancelación se debe seguir el circuito para comprobar con la función GetNextMessage. El obtener un 1000, representa que el device hub ha recibido correctamente la petición de cancelación, pero no indica que la misma haya sido procesada en ese momento. El proceso de cancelación es asíncrono y se realizará cuando el DeviceHub tiene conexión con la entidad.

Para comprobar que dicha operación ha sido cancelada, se debe revisar la web de operaciones de Sipay, teniendo en cuenta que dicho proceso puede tardar hasta 24 horas.

Parámetros:

Los datos de Header deben ser iguales que en todas las transacciones.

  • Function: 0
  • Modifier: 0
  • Parameter1: Tipo string el importe de la transacción original que se va a anular. (Véase Nota 1)
  • Parameter2: Numero de ticket de la operación que se desea cancelar o el número de secuencia.
  • Parameter3: No utilizado.

Nota 1: Importe en el mismo formato que la transacción con 10 dígitos donde los 2 últimos son céntimos. EJ.: 1.25€ -> 000000012.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:CallSpecificFunctionRequest>
<tem:Header>
<tem:ClientId>ClientIdValue</tem:ClientId>
<tem:StoreId>StoreIdValue</tem:StoreId>
<tem:PosId>PosIdValue</tem:PosId>
<tem:Lang>Idioma</tem:Lang>
<tem:ExtraData1></tem:ExtraData1>
</tem:Header>
<tem:Function>0</tem:Function>
<tem:Modifier>0</tem:Modifier>
<tem:Parameter1>0000000001</tem:Parameter1>
<tem:Parameter2>ticketnumber</tem:Parameter2>
<tem:Parameter3></tem:Parameter3>
</tem:CallSpecificFunctionRequest>
</soap:Body>
</soap:Envelope>

Preautorización [BeginPreAuthorization]

Llamada que se lanza para realizar la preautorización por el importe deseado. Una vez realizada la solicitud ese importe se congelará en la cuenta del cliente y hasta que se sustituya o cancele no quedará liberado y el cliente no podrá utilizar ese dinero para otras compras o pagos.

Debes tener las siguientes consideraciones:

  • Si una preautorización no es confirmada, sustituida o cancelada y se vence el plazo límite que la entidad bancaria ha determinado, la preautorización se liberará automáticamente y se deberá hacer una nueva solicitud de preautorización. Nunca se podrá confirmar o sustitución de una preautorización en la que se haya pasado el tiempo límite.

  • Siempre se podrá confirmar una preautorización por el importe total o por uno inferior, pero en ningún caso se podrá hacer “n” confirmaciones hasta completar el importe total. Una vez que se ha hecho una confirmación sobre una preautorización si es de una parte del total el resto se libera automáticamente.

  • No se pueden hacer cancelaciones de una cancelación. Si una preautorización se ha cancelado la única forma de volver a preautorizar el importe es lanzando una nueva solicitud de preautorización.

  • El tiempo límite de duración de una preautorización lo marca la entidad bancaria. El máximo normalmente son 30 días, pero lo estándar es entre 7 y 15 días. Cada cliente debe negociar con su banco los días que se deben configurar. Recomendación: si se trabaja con varias entidades en diferentes establecimientos, se recomienda que el límite sea el más bajo de todas las entidades.

  • Si se ha hecho una solicitud de preautorización por un importe y después se hace una sustitución de esa preautorización por un importe mayor y el cliente no tiene saldo en la cuenta, no se podrá hacer efectiva la sustitución. Se quedará activa la preautorización original con el importe inicial de la solicitud.

A continuación, se detalla el método que dado un importe lanza la transacción para solicitar una reserva.

Petición: BeginPreAuthorizationRequest

TIPONOMBRECOMENTARIOS
HeaderHeaderDatos utilizados durante las consultas.
StringAmountImporte y Ticket de la Operación. El ticket no es obligatorio, pero se recomienda su uso. El formato del campo puede ser:
StringSin TicketImporte de la operación con 10 dígitos numéricos, donde los dos últimos dígitos representan los céntimos.Ej.:1€ > 0000000100 2,25€ > 0000000225
StringCon Ticket:Importe de la operación del mismo formato que sin ticket, más el número de ticket, separados por una @.Ej.: Importe de 1,15€ y ticket número 453AF01 > 0000000115@453AF01
A partir de la versión 4.0.1.0 del device hub, está disponible este campo. La longitud máxima del ticket no debe superar los 40 caracteres.

Header

TIPONOMBRECOMENTARIOS
StringClientidIdentificador del comercio.
StringStoreidIdentificador de la tienda.
StringPosidIdentificador del Terminal Punto de Venta.
StringLanguageIdentificador del idioma: 0 Español 1 English
StringExtraData1No usado.

Nota: El campo Posid no debe superar los 30 caracteres y se recomienda no usar los siguientes símbolos dentro del campo {"/","\"}

Respuesta: BeginPreAuthorizationResponse

TIPONOMBRECOMENTARIOS
ResultResultRetorna 0=OK o un código de error y su descripción.

Result

TIPONOMBRECOMENTARIOS
IntCodeCódigo de error.
StringDescripciónDescripción del error.

Confirmación de Preautorización [ProcessPreAuthorization]

La confirmación implica el cobro de la preautorización. Se puede hacer por el importe total preautorizado o por importes inferiores. Si se hace sobre un importe inferior al preautorizado el resto del importe queda liberado. Una vez confirmada una preautorización si se quisiera seguir preautorizando la diferencia habría que hacer una nueva solicitud de preautorización por el importe deseado.

Teniendo el importe y el código de autorización o número de ticket, se hace efectiva la reserva asociada a dicho código, donde el importe puede ser hasta un 15% más o menos del importe preautorizado solicitado, según las condiciones negociadas con la entidad financiera.

También será importante establecer las condiciones de disponibilidad del plazo para confirmar este tipo de operación. En caso de no haber confirmado esta operación en el plazo estipulado por la entidad, la preautorización inicial quedará liberada.

Petición: ProcessPreAuthorizationRequest

TIPONOMBRECOMENTARIOS
HeaderHeaderDatos utilizados durante las siguientes consultas.
StringAmountImporte autorizado para la reserva del pago con un margen, según la entidad bancaria que lo procesa. Importe de la operación con 10 dígitos numéricos, donde los dos últimos dígitos representan los céntimos. Ej.:1€ > 0000000100; 2,25€ > 0000000225
StringAuthorizationCodeCódigo de autorización o número de ticket de la transacción original.(En el caso del ticket debe ser un valor único).
StringTicketA partir de la versión 4.0.1.0 del device hub, está disponible este campo. La longitud máxima del ticket no debe superar los 40 caracteres. Es el ticket original enviado en la preautorización inicial.
Si se informa, no es obligatorio el campo AuthorizationCode.

Header

TIPONOMBRECOMENTARIOS
StringClientidIdentificador del comercio.
StringStoreidIdentificador de la tienda.
StringPosidIdentificador del Terminal Punto de Venta.
StringLanguageIdentificador del idioma: 0 Español 1 English
StringExtraData1No usado.

Nota: El campo Posid no debe superar los 30 caracteres y se recomienda no usar los siguientes símbolos dentro del campo {"/","\"}

Respuesta: ProcessPreAuthorizationResponse

TIPONOMBRECOMENTARIOS
ResultResultRetorna 0=OK o un código de error y su descripción.

Result

TIPONOMBRECOMENTARIOS
IntCodeCódigo de error.
StringDescripciónDescripción del error.

Cancelación de Preautorización [CancelPreAuthorization]

Liberar el importe preautorizado sin efectuar ningún cobro al cliente. Si se quiere liberar una preautorización y no se quiere cobrar al cliente se debe hacer una cancelación de la preautorización. Las cancelaciones siempre deben ser por el importe total de la preautorización, nunca se podrá hacer una cancelación por un importe menor.

A través de este método se anula la reserva solicitada con el número de autorización o el número de ticket original.

Petición: CancelPreAuthorizationRequest

TIPONOMBRECOMENTARIOS
HeaderHeaderDatos utilizados durante las siguientes consultas.
StringAmountImporte autorizado para la reserva de pago.Importe de la operación con 10 dígitos numéricos, donde los dos últimos dígitos representan los céntimos.Ej.: 1€ > 0000000100; 2,25€ > 0000000225
StringAuthorizationCodeCódigo de autorización o el número de ticket original (en el caso del ticket, debe ser un valor único).
StringTicketA partir de la versión 4.0.1.0 del device hub, está disponible este campo.La longitud máxima del ticket no debe superar los 40 caracteres. Es el ticket original enviado en la preautorización inicial.
Si se informa, no es obligatorio el campo AuthorizationCode.

Header

TIPONOMBRECOMENTARIOS
StringClientidIdentificador del comercio.
StringStoreidIdentificador de la tienda.
StringPosidIdentificador del Terminal Punto de Venta.
StringLanguageIdentificador del idioma: 0 Español 1 English
StringExtraData1No usado.

Nota: El campo Posid no debe superar los 30 caracteres y se recomienda no usar los siguientes símbolos dentro del campo {"/","\"}

Respuesta: CancelPreAuthorizationResponse

TIPONOMBRECOMENTARIOS
ResultResultRetorna 0=OK o un código de error y su descripción.

Result

TIPONOMBRECOMENTARIOS
IntCodeCódigo de error.
StringDescripciónDescripción del error.

Nota: No existe la posibilidad de hacer una cancelación de una cancelación de preautorización.

Sustitución de Preautorización [ReplacementPreAuthorization]

Mensaje utilizado para sustituir una preautorización no confirmada. La nueva preautorización puede tener un valor igual o distinto a la original. En ambos casos el plazo de retención de la preautorización se modifica, teniendo en cuenta como base, la fecha de esta operación.

Se suele utilizar la sustitución en los siguientes casos:

  • Antes del vencimiento de los días límites que marca la entidad bancaria para prolongar la preautorización.
  • Modificar el importe preautorizado ya sea por un importe inferior o superior.

Disponible a partir de la versión 4.0.1.0 del device hub.

Petición: ReplacePreAuthorizationRequest

TIPONOMBRECOMENTARIOS
HeaderHeaderDatos utilizados durante las siguientes consultas.
StringAmountImporte de la operación con 10 dígitos numéricos, donde los dos últimos dígitos representan los céntimos.Ej.: 1€ > 0000000100; 2,25€ > 0000000225
StringTicketEl ticket de la operación puede ser el mismo que el original o ser un número de ticket nuevo. No debe sobrepasar los 35 caracteres.Es importante que los tickets no se repitan entre los distintos establecimientos, evitando así cualquier confusión entre operaciones.
StringOriginalTicketNúmero del ticket de la preautorización que se va a reemplazar.Si se informa, no es obligatorio el campo OriginalAuthorization.
StringOriginalAuthorizationCódigo de autorización de la transacción original.(En el caso del ticket, debe ser un valor único).

Header

TIPONOMBRECOMENTARIOS
StringClientidIdentificador del comercio.
StringStoreidIdentificador de la tienda.
StringPosidIdentificador del Terminal Punto de Venta.
StringLanguageIdentificador del idioma: 0 Español 1 English
StringExtraData1No usado.

Nota: El campo Posid no debe superar los 30 caracteres y se recomienda no usar los siguientes símbolos dentro del campo {"/","\"}

Respuesta: ReplacePreAuthorizationResponse

TIPONOMBRECOMENTARIOS
ResultResultRetorna 0=OK o un código de error y su descripción.

Result

TIPONOMBRECOMENTARIOS
IntCodeCódigo de error.
StringDescripciónDescripción del error.

Obtención de firma [CallSpecificFunction 3]

Parámetros:

Los datos de Header deben ser iguales que en todas las transacciones.

  • Function: 3
  • Modifier: 0
  • Parameter1: No utilizado.
  • Parameter2: No utilizado.
  • Parameter3: No utilizado.

Esta función retorna la firma capturada en el PIN Pad en el mismo formato definido por el PIN Pad (varían según marcas y modelos). Los formatos de las firmas, vienen dados en el campo TYPE y pueden ser:

  • 00: Formato propietario
  • 01: BMP Type
  • 02: JPG
  • 03: TIF
  • 05: BMP

En GetNextMessageResponse→Message→ExpansionData se puede recoger el xml con los datos de la firma de la misma manera en que las transacciones con firma lo hacen.

Ejemplo ExpansionData firma ISC250:

<EXPANSION>
<SIGNATURE>
<<TYPESIGNATURE>03</TYPE><- >Firma digitalizada en format ASCII<- Tipo de imagen( 03 = .tiff )
4D4D002A00000008000D00FE0004000000010000000001000004000000010000012001010004000000010000007
8010200030000000100010000010300030000000100020000010600030000000100000000011100040000000F00
0000DC011600040000000100000008011700040000000F00000118011A000500000001000000AA011B000500000
001000000B2013100020000000E000000BA0132000200000014000000C8000000000000012C000000010000012C
00000001496E67656E69636F000000000000323031333A30383A33302031313A34313A353800000001540000016
40000017D000001A3000001CB000001F30000021F000002520000028A000002C2000002F20000031A0000033A00
00035A0000037A00000010000000190000002600000028000000280000002C00000033000000380000003800000
03000000028000000200000002000000020000000166E366E366E366E366E366E366E366E366E366E366E366E36
5C0AD9A85D41C6665C619D19005F57A2335CE69D19805F9834685DD9346891A404B66A92531A5B1C92C3135B709
2AC2CB700929E50B760905452B780916C56B7C0915E5AB7E0914408B73090AC14B740909EA4B67090D4A5ED0090
16A8B618924D556F409288916F50903D616EA090C9656EB0957AD7B4E096BADAD880907ADFB2E09234A5B080953
4B5B50097E97ED58096664B690094665ECC0090F99AD818D9A6B5DAD8D0D996B547B1B0DA56B69D3AD898DADA5B DD3AD8A0DACEB6A10FEC54DAC24A50875B17D92694AFD940DAAA4AEFD948DA9E94B16CACDA924B59ECACD85696B 3D960D82A3258875B2CD96E64B10EB65AD95E66B13AD968D95233EF75B040D94A3358AD6C10D9423358AD6C14D9
423258B16C14D80DA8545B52090D28545B530901A7CEB6A6090127485B5409184E885B5409244E885B5509134E835B55092 B43FABA3258B16C28D9420822458B96C280D94C70828B172D8580D96042D57FAD858090DAB535B52092
DAA892843AD56C9090443AA96C9090343AAD6C9091743A4EB64890843A10B6AA90C8BFB54090C4AD6D4C927493D 85895680D6C2895680D6C2895486D6C149292D8289292D828929AD820929AD820929AD820929AD820929AD82092
9AD820929AD820929AD820929AD8209292D8289292D8289292D8289292D8289292D8289292D828905AD850905AD
850905AD850905AD850905AD8509292D8289292D8289292D828929AD820929AD82092A2D9686E366E366E366E36 6E36
</SIGNATURE>
</SIGNATURE>
</EXPANSION>

** Consultar versión de DeviceHub** [CallSpecificFunction 24]

Esta llamada permite obtener información de la versión de device hub instalada.

Parámetros:

Los datos de Header deben ser iguales que en todas las transacciones.

  • Function: 24
  • Modifier: 0
  • Parameter1: No utilizado.
  • Parameter2: No utilizado.
  • Parameter3: No utilizado.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
<soap:Header/>
<soap:Body>
<tem:CallSpecificFunctionRequest>
<tem:Header>
<tem:ClientId>ClientIdValue</tem:ClientId>
<tem:StoreId>StoreIdValue</tem:StoreId>
<tem:PosId>PosIdValue</tem:PosId>
<tem:Lang>Idioma</tem:Lang>
<tem:ExtraData1></tem:ExtraData1>
</tem:Header>
<tem:Function>24</tem:Function>
<tem:Modifier>0</tem:Modifier>
<tem:Parameter1></tem:Parameter1>
<tem:Parameter2></tem:Parameter2>
<tem:Parameter3></tem:Parameter3>
</tem:CallSpecificFunctionRequest>
</soap:Body>
</soap:Envelope>