NAV Navbar
Logo

Introduccion

El presente manual tiene como propósito establecer la descripción del modelo de integración y funcionamiento de la estructura a implementar para la operatividad del sistema Sipay Plus y Sipay Ecommerce con el software del Cliente.

La solución para la gestión del cobro con tarjeta en el punto de venta o a nivel de comercio electrónico, mediante transferencia electrónica de fondos, está basada en la plataforma de cobro con tarjeta de crédito y/o débito de Sipay. El servicio a implantar constituye la alternativa que hace la gestión más rápida, fiable y reduce a un solo sistema, el control de las diferentes entidades financieras.

La solución para la gestión del cobro con tarjeta mediante transferencia electrónica, está basada en la plataforma denominada SIPAY. La solución única y diferenciada con mayor capacidad funcional, siendo complementaria a cualquier sistema de información y gestión de punto de venta y/o comercio electrónico. Es una aplicación informática que ofrece muchas ventajas frente a otros sistemas de cobro, y la más avanzada pasarela de pagos.

A diferencia del cobro con datafonos, nuestra solución integrada Sipay permite al Cliente dirigir las transacciones a la entidad bancaria que desee, permitiendo una completa integración operativa y un ahorro en comisiones al dirigir las operaciones a cada entidad de manera directa sin procesos de intercambio entre las diferentes redes, distinguiendo en todo momento el tipo y origen de tarjeta, lo que posibilitará conocer con antelación el tipo de tarjeta, crédito, débito y, origen de la misma.

Y todo ello con la máxima flexibilidad, por lo que el Cliente no dependerá más de los datafonos que permiten al banco fijar a su empresa unas comisiones alterables en tiempo real, sin opción a rebaja, ni flexible para rápidos procesos de cambio, en caso de necesidad por aumento o reducción de las comisiones.

Las actividades de Sipay en este servicio corresponden a servicios consistentes en el proceso de integración de su solución con la del Cliente para la puesta en marcha de la solución de transferencia electrónica de fondos en pago por uso.

API Funtions calls

Función Parámetros de entrada Parámetros de salida
InitializeDevice() initializeDeviceRequest[] initializeDeviceResponse[]
BeginSellTransaction() beginSellTransactionRequest[] beginSellTransactionResponse[]
BeginDevolution() beginDevolutionRequest[] beginDevolutionResponse[]
RestartPINPadConnection() restartPinpadConnectionRequest[] restartPinpadConnectionResponse[]
GetNextMessage() getNextMessageRequest[] getNextMessageResponse[]
CallSpecificFunction() callSpecificFunctionRequest[] callSpecificFunctionResponse[]
BeginPreAuthorization() beginPreAuthorizationRequest[] beginPreAuthorizationResponse[]
ProcessPreAuthorization() processPreAuthorizationRequest[] processPreAuthorizationResponse[]
CancelPreAuthorization() cancelPreAuthorizationRequest[] cancelPreAuthorizationResponse[]

Api device-hub

InitializeDevice

Se utiliza para inicializar el dispositivo, configurar sobre el PIN Pad, la fecha y hora local además de otros parámetros administrativos. Debe ser llamada antes que las demás funciones de la API. Esta función no recibe respuesta de proceso por lo que no es necesario utilizar la función GetNextMessage para recibir su respuesta.

Funcion

InitializeDevice(initializeDeviceRequest[], initializeDeviceResponse[])

Parámetros de entrada

initializeDeviceRequest

Tipo Nombre Comentarios*
Header Header Datos utilizados durante las siguientes consultas

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

initializeDeviceResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

BeginSellTransaction

A continuación se describe el método que, dado un importe y un número de recibo, lanza la transacción de venta solicitando la autorización financiera. El código de respuesta solamente 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.

Funcion

BeginSellTransaction(beginSellTransactionRequest[], beginSellTransactionResponse[])

Parámetros de entrada

beginSellTransactionRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las siguientes consulta
String Amount Importe de Venta. Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan a los céntimos.
Ej.: 1€ -> 0000000100
      2,25€-> 0000000225
String TicketNumber Número de Recibo de la Venta

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

beginSellTransactionResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

BeginDevolution

A continuación se describe el método que, dado un importe y un número de recibo, lanza la transacción de devolución solicitando la autorización financiera. El código de respuesta solamente 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.

Funcion

BeginDevolution(beginDevolutionRequest[], beginDevolutionResponse[])

Parámetros de entrada

beginDevolutionRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las siguientes consulta
String Amount Importe de Venta. Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan a los céntimos.
Ej.: 1€ -> 0000000100
      2,25€-> 0000000225
String TicketNumber Número de Recibo de la Venta

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

beginDevolutionResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

RestartPINPadConnection

A continuación se describe el método que reinicializa la conexión entre el concentrador o Sipay Plus y el PIN Pad. Normalmente no es necesario llamar a este método ya que el sistema lo hace de forma automática cuando detecta que el PIN Pad se ha desconectado.

Funcion

RestartPinpadConnection(restartPinpadConnectionRequest[], restartPinpadConnectionResponse[])

Parámetros de entrada

restartPinpadConnectionRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las siguientes consulta

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

restartPinpadConnectionResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

GetNextMessage

A continuación se describe el método que, una vez iniciada la transacción, ya sea de venta o devolución, permite obtener los mensajes del dispositivo para saber en qué paso del proceso se encuentra la operación. (Véase tabla de códigos)

Funcion

GetNextMessage(getNextMessageRequest[], getNextMessageResponse[])

Parámetros de entrada

getNextMessageRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las siguientes consulta

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

getNextMessageResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripció
Message Message Contiene el código de respuesta y su mensaje correspondiente, además de guardar la información de impresión y otra información extra para flags

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

Message

Tipo Nombre Comentarios
Int MessageCode Código de respuesta de la transacción
String MessageText Mensaje de respuesta
PrintableData* PrintableData Datos para la impresión
Extrainfo* Extrainfo Información para flags de transacción
String* ExpansionData Datos de expansión en formato XML

PrintableData

Tipo Nombre Comentarios
String OperationType Tipo de Operación
String AuthorizationMode Modo de autorización
String ACRCode Código de ARC en transacciones EMV
String DataInputType Tipo de entrada de datos en el,PIN Pad
String DataVerificationType Tipo de Verificación utilizada para autenticar el comprador.
String FUCCode Código FUC, número de comercio
String HCP Entidad/Procesadora autorizadora
String Store No Usado
String City No Usado
String CardHolder Propietario de la tarjeta, solo si viaja en el mensaje
String AID Dato EMV
String DDFName Dato EMV
String AppLabel Aplicación utilizada en el PIN Pad
String ContactLessLiteral Indicador de operación sin contacto
String CardNumber Número de Tarjeta con máscara
String SequenceNumber Número de secuencia de la transacción. Puede localizar una transacción en Sipay Plus
String TerminalLabel Número de terminal bancario
String TerminalSequence
String DataTime Fecha y Hora
String AuthorizationNumber Número de autorización de la transacción
String Amount Importe de la operación. En la moneda en que se realizó la misma
String CurrencySimbol Código ISO, Nombre de la moneda en que se realizó la operación.
String InfoText Información proveniente del centro autorizador
String Aclaratory Información proveniente del centro autorizador
String ExtraData1 Datos extra para imprimir en formato XML. Véase ExtraData1 en la tabla inferior.
String ExtraData2 Futura expansión

ExtraData1

<EXTRA_DATA>
    <DCC>
        <EXCHANGE_RATE/> <!--Tasa de intercambio aplicada-->
        <MARK_UP/>
        <COMMISION/> <!--Comisión del procesador DCC-->
        <DCC_MERCHANT>CAIXABANK, S.A.</DCC_MERCHANT> <!--Operador DCC-->
        <DCC_AMOUNT/> <!--Importe de la operación-->
        <DCC_CURRENCY_CODE/> <!--Nombre de la moneda-->
    </DCC>

    <COMMERECE>
        <IDENT>SIPAY PLUS S.L.</IDENT>
        <ADDRESS>AVDA. EUROPA 14 PLANTA 1o A</ADDRESS>
        <TEL>620857910</TEL>
        <STORE>TIENDA SIPAY PLUS 1</STORE>
        <CITY>Madrid</CITY>
        <CIF>B67890980</CIF>
    </COMMERECE>

    <CARD_INFO>
        <BIN>46456</BIN> <!--Bin de la tarjeta que ha operado-->
        <FAMILY_ID>20</FAMILY_ID> <!--ID de la familia de la tarjeta (máx 3 dígitos)-->
        <FAMILY_NAME>VISA</FAMILY_NAME> <!--Nombre de la familia de la tarjeta (máx 45 dígitos)-->
        <EMIT_BANK_CODE>2100</EMIT_BANK_CODE> <!--Código ISO de la entidad emisora de la tarjeta (4 dígitos)-->
        <EMIT_BANK_NAME>CAIXA BANK S.A</EMIT_BANK_NAME> <!--Nombre de la entidad emisora-->
        <ADQ_BANK_CODE>0049</ADQ_BANK_CODE> <!--Código ISO de la entidad adquiriente (4 digitos)-->
        <ADQ_BANK_NAME>BANCO SANTANDER S.A.</ADQ_BANK_NAME> <!--Nombre de la entidad  adquiriente (máx 45 dígitos)-->
        <BANK_NETWORK>A101</BANK_NETWORK> <!--Nombre de la red en que opera la tarjeta-->
    </CARD_INFO>

    <PRIVATE_CARD>
        <INFO_TYPE> tipo de información </INFO_TYPE>
        <REFERENCE>nº de referencia de la operación</REFERENCE>
        <DESTINY> destino (impresión o pantalla) </DESTINY>
        <LETTER> tipo de letra </LETTER>
        <PAYMENT_INFO> datos enviados por la entidad sobre el pago</PAYMENT_INFO>
    </PRIVATE_CARD>
</EXTRA_DATA>

ExtraData1(XML)

Actualmente, en ExtraData1, se encuentran los datos de operaciones multi-divisa (DCC) y los datos del establecimiento donde se produjo la operación. Los datos de multi-divisa, son obligatorios en los tickets de operaciones DCC.

En las operaciones DCC, los campos “Amount” y CurrencySymbol de PrintableData, muestran el importe y la moneda seleccionada durante la transacción, por lo que siempre pueden ser usados. Del sub campo DCC del XML será necesario extraer como mínimo los datos “EXCHANGE_RATE”, “DCC_MERCHANT”, cuando vengan alimentados (Operaciones DCC).

El cliente hace una venta en la respuesta de la venta, si el flag TaxFreeEnabled viene con valor 1, significa que se puede ofrecer TaxFree para la tarjeta procesada.

A continuación en el campo, FeatureInfo , vendrá un XML que indicará el BIN de la tarjeta utilizada. Este dato podrá ser utilizado en la llamada TaxFree cuando se realice.

Tarjeta Privada.

El sub-tag PRIVATE_CARD solamente se recibirá cuando estén realizando una modalidad de pago especifica con la entidad BBVA / Uno-e El número de referencia, deberá ser utilizado como numero de ticket en una posible devolución de la operación, precedido del literal “@ref:”

Para más detalles véase la función “BeginDevolutioRequest”.

Posteriormente en la función BEginDevolution, en el campo TicketNumber, se debe modificar para que quede de la siguiente manera:

TicketNumber: Número de Recibo de la Devolución. En caso de que se trate de una devolución de una venta por pago aplazado con tarjeta privada y el numero sea el de la referencia de la venta original, entonces deberá ser precedido del literal “@ref:”

E.J.: @ref:0321458

ExtraInfo

Tipo Nombre Comentarios
Int TaxFreeEnabled Flag de transacción retorna 1 cuando es posible realizar una transacción TaxFree
Int Feature1 Expansión
Int Feature2 Expansión
Int Feature3 Expansión
Int Feature4 Expansión
String AuthorizationCode Expansión
String FeatureInfo Una vez realizada la venta, Sipay Plus comprobará si la tarjeta está habilitada para ofrecer una operativa TaxFree. En los casos que sea posible este ofrecimiento, el flag TaxFreeEnabled retornará con valor 1 y el campo FeatureInfocontendrá el XML ejemplificado a continuación, indicando el bin de la tarjeta, que será necesario en la operativa TAXFREE

<FeatureInfo>
   <TXFBIN>514600</TXFBIN> // Bin de la tarjeta utilizada
</FeatureInfo>

ExpansionData

<EXPANSION>
    <SIGNATURE>
        <TYPE>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  
        423258B16C14D80DA8545B52090D28545B530901A7CEB6A6090127485B5409184E885B5409244E885B5509134E8 
        2B43FABA3258B16C28D9420822458B96C280D94C70828B172D8580D96042D57FAD858090DAB535B5209235B5509 
        DAA892843AD56C9090443AA96C9090343AAD6C9091743A4EB64890843A10B6AA90C8BFB54090C4AD6D4C927493D 
        85895680D6C2895680D6C2895486D6C149292D8289292D828929AD820929AD820929AD820929AD820929AD82092  
        9AD820929AD820929AD820929AD8209292D8289292D8289292D8289292D8289292D8289292D828905AD850905AD 
        850905AD850905AD850905AD8509292D8289292D8289292D828929AD820929AD82092A2D9686E366E366E366E36 
        6E36   
    </SIGNATURE>
</EXPANSION> 

ExpansionData

Cuando viaja, contiene texto en formato xml. En la versión actual, transporta los datos de la firma digital, cuando los PIN Pads permitan la captura de firma digital. El contenido de la firma viene en formato ASCII desdoblado, de la misma manera que la emite del PIN Pads. La imagen recibida, será del tipo que emita el PIN Pads. Este formato varía según marcas y modelos. Consulte al equipo de soporte de Sipay sobre los datos y algoritmos de conversión, necesarios para extraer esta imagen.

CallSpecificFunction

El método descrito a continuación, está pensado para realizar otras llamadas no definidas entre las funciones estándar. (Véase “AdvancedFunctions”)

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros de entrada

callSpecificFunctionRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las consultas
Int Function Dato para funciones específicas
Int Modifier Dato para funciones específicas
String Parameter1 Dato para funciones específicas
String Parameter2 Dato para funciones específicas
String Parameter3 Dato para funciones específicas

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

callSpecificFunctionResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

BeginPreAuthorization

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

Funcion

BeginPreAuthorization(beginPreAuthorizationRequest[], beginPreAuthorizationResponse[])

Parámetros de entrada

beginPreAuthorizationRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las consultas
String Amount Importe y Ticket de la Operación. El ticket no es obligatorio, pero se recomienda su uso. El formato del campo puede ser:

Sin Ticket: Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan a los céntimos.
Ej.: 1€ -> 0000000100
      2,25€-> 0000000225

Con 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
String Ticket A partir de la versión 4.0.1.0 del devicehub, está disponible este campo. La longitud máxima del ticket no debe superar 40 caracteres.

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

beginPreAuthorizationResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

ProcessPreAuthorization

A continuación se detalla el método que dado un importe y el código de autorización o número de ticket hace efectiva la reserva asociada a dicho código, donde el importe puede ser mayor hasta un 15 % sobre el importe preautorizado o menor al solicitado según 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ía liberada

Funcion

ProcessPreAuthorization(processPreAuthorizationRequest[], processPreAuthorizationResponse[])

Parámetros de entrada

processPreAuthorizationRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las consultas
String Amount Importe Autorizado para la Reserva de Pago, con un margen según la entidad bancaria que lo procesa. Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan a los céntimos.
Ej.: 1€ -> 0000000100
      2,25€-> 0000000225
String AuthorizationCode Código de Autorización o número de ticket de la transacción original. ( En el caso del Ticket, éste ha de ser un valor único )
String Ticket A partir de la versión 4.0.1.0 del devicehub, está disponible este campo. La longitud máxima del ticket no debe superar 40 caracteres. Es el ticket original enviado en la Preautorización inicial. Si se informa este campo no es obligatorio el campo AuthorizationCode.

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

processPreAuthorizationResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

CancelPreAuthorization

A continuación se detalla el método que anula la reserva solicitada dado el número de autorización o el número de ticket original.

Funcion

CancelPreAuthorization(cancelPreAuthorizationRequest[], cancelPreAuthorizationResponse[])

Parámetros de entrada

cancelPreAuthorizationRequest

Tipo Nombre Comentarios
Header Header Datos utilizados durante las consultas
String Amount Importe Autorizado para la Reserva de Pago. Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan a los céntimos.
Ej.: 1€ -> 0000000100
      2,25€-> 0000000225
String AuthorizationCode Código de Autorización o número de ticket de la transacción original. ( En el caso del Ticket, éste ha de ser un valor único )
String Ticket A partir de la versión 4.0.1.0 del devicehub, está disponible este campo. La longitud máxima del ticket no debe superar 40 caracteres. Es el ticket original enviado en la Preautorización inicial. Si se informa este campo no es obligatorio el campo AuthorizationCode.

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

cancelPreAuthorizationResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

ReplacementPreAuthorization

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

Funcion

ReplacePreAuthorization(replacePreAuthorizationRequest[], replacePreAuthorizationResponse[])

Parámetros de entrada

replacePreAuthorizationRequest

Tipo Nombre Comentarios
String Header Datos utilizados durante las consultas
String Amount Importe Autorizado para la Reserva de Pago, con un margen según la entidad bancaria que lo procesa. Importe de la operación con 10 dígitos numéricos, dónde los dos últimos dígitos representan a los céntimos.
Ej.: 1€ -> 0000000100
      2,25€-> 0000000225
String Ticket Ticket de la operación puede ser el mismo que el original o un nuevo número de ticket. No debe sobrepasar 35 caracteres.,Es importante que los tickets no se repitan entre los distintos establecimientos con el fin de evitar cualquier confusión entre operaciones.
String OriginalTicket Número del Ticket de la preautorización que se va a reemplazar. Es un campo no, obligatorio si se informa el campo OriginalAuthorization
String OriginalAuthorization Código de Autorización de la transacción original. ( En el caso del Ticket, éste ha de ser un valor único )

Header

Tipo Nombre Comentarios
String Clientid Identificador del Comercio
String Storeid Identificador de la Tienda
String Posid Identificador del Terminal Punto de Venta
String Language Identificador del idioma 0-Español 1-English
String ExtraData1 No usado

Parámetros de salida

replacePreAuthorizationResponse

Tipo Nombre Comentarios
Result Result Retorna 0=OK o un código de error y su descripción

Result

Tipo Nombre Comentarios
Int Code Código de error
String Descripción Descripción del error

Recomendaciones de uso

Ejemplo Pseudocódigo

Función: Iniciar_Transaccion_Venta 
Entorno:soap_con (puntero a objeto soap) 
Algoritmo:    

Variables:    
is_transOK: booleano 
numTicket, importe: cadena    

INICIO:  

soap_con->connect() 

SI soap_con->onInitializeDevice()    

    is_transOK=soap_con->onBeginSellTransaction(importe,numTicket) 

    SI is_transOK 

        Variables:  
        tMessageResp: _ns1__GetNextMessageResponse 
        is_endTransaction: booleano = false 
        t1,t2 :tiempo        

        t1=currentTime() + 120 segundos        

        MIENTRAS !is_endTransaction AND soap_conn->onGetNextMessage(tMessageResp)          

            SWITCH tMessageResp.Message.MessageCode    

                CASO10      
                    t2=currentTime()     

                    SI t2>t1           
                        Mostrar Mensage_Timeout      
                        Llamar_funciónCancelar_Transaccion()     
                        is_endTransaction=true    
                    FIN SI 
                FIN CASO            

                CASO11          
                    t1=currentTime()          
                    MostrartMessageResp.Message.MessageText        
                FIN CASO              

                CASO1000          
                    t1=currentTime()          
                    MostrartMessageResp.Message.MessageText            

                    SI !is_sell_end            
                        Llamar a ImprimirTicket(PrintableData)            
                        is_sell_end=true          
                    SI NO            
                        is_endTransaction=true          
                    FIN SI         
                FIN CASO          

                CASO1001              
                    MostrartMessageResp.Message.MessageText              

                    SI MessageText = LBNOCONNECTION 

                        Llamar_funciónCancelar_Transaccion()              
                    FIN SI          

                    is_endTransaction=true        
                FIN CASO            

                CASO1002               
                    MostrartMessageResp.Message.MessageText                        

                    Variable:                
                    dcc_option: cadena                
                    Leerdcc_option: '00','01'o '02'            

                    is_transOK = soap_conn->onCallSpecificFunction( 8, 0, dcc_option, "", "" )              
                FIN CASO            
            FIN SWICTH          

            tMessageResp.Message.MessageCode=0    

        FIN MIENTRAS    

    SI NO  
        Mostrar Mensaje Error_Transaccion (posible error en los datos)    
    FIN SI 

SI NO  
    Mostrar Mensaje Error_Conexión  
FIN SI    

soap_conn->disconnect()    

FIN Iniciar_Transaccion_Venta

Cancelar_Transaccion

Entorno: soap_con(puntero a objeto soap) 
Algoritmo:

Variables:
is_transOK: booleano 
numTicket, importe: cadena

INICIO:

soap_con->connect()    
is_transOK=soap_con->onCancelSellTransaction(importe,numTicket)    

SI is_transOK
    Variables:  
    tMessageResp: _ns1__GetNextMessageResponse 
    is_endCancelation: booleano = false 
    t1,t2 :tiempo      

    t1=currentTime() + 120 segundos      

    MIENTRAS !is_ endCancelation AND soap_conn>onGetNextMessage(tMessageResp)        

        SWITCH tMessageResp.Message.MessageCode    

            CASO10  
                t2=currentTime()  

                SI t2>t1   
                    MostrarMensage_Timeout      
                    is_ endCancelation =true  
                FIN SI 
            FIN CASO            

            CASO11        
                t1=currentTime()        
                MostrartMessageResp.Message.MessageText      
            FIN CASO            

            CASO1000        
                t1=currentTime()        
                MostrartMessageResp.Message.MessageText          
                Llamar a ImprimirTicket(PrintableData)  
                is_ endCancelation =true                
            FIN CASO        

            CASO1001            
                MostrartMessageResp.Message.MessageText       
                is_ endCancelation = true      
            FIN CASO        
        FIN SWICTH        

        tMessageResp.Message.MessageCode=0    

    FIN MIENTRAS    

SI NO  
    Mostrar Mensaje Error_Conexión  
FIN SI    

soap_conn->disconnect()    
FIN Cancelar_Transaccion

Uso de InitializeDevice

Al inicio de cada transacción ya sea de Venta, de Pre autorización o de Devolución se debe llamar a la función InitializeDevice, tal y como se menciona en su descripción es importante que esta llamada se realice siempre antes de lanzar cualquier función de la API. (Véase ejemplo en pseudocódigo)

Tiempo de espera

Es importante que haya un control del tiempo de espera (TimeOut), si se recibe durante más de 2 minutos el Código 10 en el circuito de la funciónGetNextMessage, se debe parar la llamada, ya sea de Venta, Pre autorización o Devolución, y enviar una Cancelación de la operación con el número de Ticket. (Véase ejemplo en pseudocódigo SI t2>t1 -> Cancelar Transacción)

Cancelar Transacción

Hay que tener en cuenta que si se excede el tiempo de espera o hay algún error durante la transacción, es muy importante llamar a la función de Cancelación con el número de Ticket (esta operación no requiere InitializeDevice). Tras lanzar la llamada de Cancelación se debe seguir el circuito para comprobar con la funciónGetNextMessage si la operación de Cancelación ha ido bien o no. (Véase ejemplo en pseudocódigo Llamar_funciónCancelar_Transaccion

DCC en TPV

Para poder integrar Multidivisa (DCC) en TPV hay que esperar en la respuesta de la funciónGetNextMessage el Código 1002, al recibir este código se debe recoger el mensaje con la información de Multidivisa:

    * Mensaje solicitando selección (2 líneas)
    * Moneda1 Importe1
    * Moneda2 Importe2
    * ExtraData

En este caso el TPV deberá mostrar el mensaje dado con el formato deseado pidiendo que se escoja entre estas tres opciones:

    * 00: aplicar Multidivisa en TPV con la moneda local
    * 01: aplicar Multidivisa en TPV con la moneda del cambio     * 02: cancelar Multidivisa en TPV

El TPV deberá esperar la opción seleccionada y se debe realizar la llamada correspondiente a la Operativa de Multidivisa de las funciones específicas con el código de Función 8, el modificador 0 y la Opción seleccionada (00, 01, 02) (Anexo 1: Operativa de Multidivisa (DCC) en TPV).

Finalmente, tras lanzar la llamada de Multidivisa en TPV se debe seguir el circuito para comprobar con la función GetNextMessage si la operación ha ido bien o no.

Información importante

Unicidad de la relación

Si la pasarela Sipay Plus recibe varios números de ticket diferentes, los interpretará, evidentemente como operaciones distintas. Así pues, para una misma operación de venta, independientemente del número de veces que se intente la misma, el número de ticket que se envía desde caja debe ser el mismo. El objetivo de esta regla es evitar duplicidades en las operaciones. Como resultado de lo anterior, las operaciones que no han sido procesadas o no han sido finalizadas con resultado positivo deberán también ingresarse con el mismo número de ticket original.

Arquitectura de la conexión

La arquitectura de la plataforma Sipay Plus requiere que cada PIN Pad se conecte al Device Hub empleando un puerto diferente y apuntando a la dirección IP del Device Hub.

Previo a la configuración del sistema y al inicio de la fase de integración y pruebas, el cliente deberá entregar a Sipay el esquema / diagrama / gráfico de configuración final de PIN Pad, caja y Device Hub que empleará en el despliegue, con el detalle de PIN Pads, TPV’s, Device Hub’s y direccionamiento de red de cada uno de ellos.

ANEXO 1 Advanced Functions

Cancelaciones desde TPV

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 0
Modifier 0
Parameter1 Importe de la transacción original que se va a anular
Parameter2 Numero de Ticket de la operación que se desea cancelar
Parameter3 No utilizado

DuplicateTicket

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 1
Modifier 0
Parameter1 No utilizado
Parameter2 Numero de Ticket de la operación que se desea recuperar el ticket
Parameter3 No utilizado

GetSignature

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 3
Modifier 0
Parameter1 No utilizado
Parameter2 No utilizado
Parameter3 No utilizado

Retorna la firma capturada en el pinpad en el mismo formato definido por el pinpad. Los formatos de las firmas vienen dados en el campo TYPE

RequestPinOnlinekey UPDATE

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 4
Modifier 0
Parameter1 Numero del cajón a actualizar (1.9
Parameter2 No utilizado
Parameter3 No utilizado

Operativa de Guardado de Tarjeta en bóveda

La operativa de bóveda permite la realización de operaciones recurrentes, sobre una tarjeta almacenada. Para la contratación de esta operativa es necesario contactar con el departamento comercial de Sipay Plus. Esta operativa conlleva algunas imposiciones legales a cumplirse. Para esta información también puede contactar con el departamento comercial de Sipay Plus. En los siguientes puntos se explicaran los detalles técnicos de la operativa.

    Cómo funciona la operativa

Como primer paso, es necesario registrar la tarjeta, esta acción se puede realizar directamente almacenando los datos de la tarjeta sin necesidad de ninguna operación financiera, o bien aprovechando una transacción de venta o devolución para almacenar los datos. La tarjeta queda registrada con número de contracto, que posteriormente se puede utilizar para efectuar ventas o devoluciones recurrentes, sin necesidad de utilizar los datos de la tarjeta en las transacciones. Para la realización de estos procesos, Sipay Plus entregara un certificado de seguridad el cual deberá estar instalado en los PCs que utilicen esta funcionalidad.

    Requerimientos para utilizarl a operativa de bóveda

Los siguientes requerimientos son necesarios para la operativa de bóveda:

    Operaciones con bóveda (Mensajería)

Para todas las operaciones de bóveda, se utilizan la función CallSpecificFunction. A continuación se enumeran las distintas funciones permitidas:

Almacenamiento en bóveda directa (Sin operaciones de venta o devolución)

XML Parameter1

<DATA>
    <PAN>0123456789012345</PAN>
    <CCV>123</CCV>
    <EXPIRATION_DATE>1249</EXPIRATION_DATE>
    <CONTRACT>00025123</CONTRACT>
    <TICKET>0023</TICKET>
    <EXPIRE_DAYS>90</EXPIRE_DAYS>
</DATA>

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 5
Modifier 0
Parameter1 XML con la información de la tarjeta
Parameter2 No utilizado
Parameter3 No utilizado

Campos XML

Etiqueta Comentarios
PAN Número de la tarjeta a guardar
CCV No se debe informar
EXPIRATION_ DATE La fecha de caducidad de la tarjeta debe estar con el siguiente formato: MMAA,Por ejemplo, el mes octubre de 2015 quedaría como 1015
CONTRACT El número de contrato es la identificación con la que se guarda la información de tarjeta en el sistema, dicha identificación se puede usar posteriormente para poder realizar transacciones sobre dicha tarjeta solo con este identificador.
TICKET Si solo se quiere guardar la tarjeta este campo debe venir en blanco.
EXPIRE_DAYS Este campo guarda en el sistema el número de días en los que el contrato es válido, este dato debe ser un número entero.

Almacenamiento en bóveda, con una operación de venta

XML Parameter3

<SHIELD>
    <CONTRACT_NUMBER>00025123</CONTRACT_NUMBER>
    <EXPIRATION_DAYS>1249</EXPIRATION_DAYS>
    <EXPIRATION_DATE>365</EXPIRATION_DATE>
</SHIELD> 

Esta función realiza una venta, a través del PIN Pad y almacena la tarjeta en una única operación. No obstante debido a la criptografía utilizada en los PIN Pads, es necesario que se complemente la petición con la fecha de caducidad de la tarjeta. Por lo que durante la integración es necesario que se desarrolle, una operativa, donde el operador final del software, introduzca la Fecha de caducidad de la tarjeta para iniciar el proceso.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 13
Modifier 0
Parameter1 Importe de la transacción
Parameter2 Numero de Ticket para la venta que se va a realizar
Parameter3 XML con datos relacionados con el almacenamiento de la operación

Campos XML

Etiqueta Comentarios
CONTRACT_NUMBER Número de la tarjeta a guardar
EXPIRATION_DAYS Número de días en que la tarjeta permanecerá almacenada en bóveda
EXPIRATION_DATE La fecha de caducidad de la tarjeta debe estar con el siguiente formato: MMAA,Por ejemplo, el mes octubre de 2015 quedaría como 1015

Almacenamiento en bóveda, con una operación de devolución

XML Parameter3

<SHIELD>
    <CONTRACT_NUMBER>00025123</CONTRACT_NUMBER>
    <EXPIRATION_DAYS>1249</EXPIRATION_DAYS>
    <EXPIRATION_DATE>365</EXPIRATION_DATE>
</SHIELD> 

Esta función realiza una venta, a través del PIN Pad y almacena la tarjeta en una única operación. No obstante debido a la criptografía utilizada en los PIN Pads, es necesario que se complemente la petición con la fecha de caducidad de la tarjeta. Por lo que durante la integración es necesario que se desarrolle, una operativa, donde el operador final del software, introduzca la Fecha de caducidad de la tarjeta para iniciar el proceso.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 14
Modifier 0
Parameter1 Importe de la transacción
Parameter2 Numero de Ticket para la venta que se va a realizar
Parameter3 XML con datos relacionados con el almacenamiento de la operación

Campos XML

Etiqueta Comentarios
CONTRACT_NUMBER Número de la tarjeta a guardar
EXPIRATION_DAYS Número de días en que la tarjeta permanecerá almacenada en bóveda
EXPIRATION_DATE La fecha de caducidad de la tarjeta debe estar con el siguiente formato: MMAA,Por ejemplo, el mes octubre de 2015 quedaría como 1015

Operativa Transacción de Venta con una Tarjeta de bóveda

Esta funcionalidad realiza la transacción de venta sobre una tarjeta previamente guardada en bóveda dado su no de contrato.

Si tienes contratada la operativa de DCC y la tarjeta almacenada permite DCC, se aplicará automáticamente la moneda de la tarjeta. Véase la tabla de valores para el modificador

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 6
Modifier 1 o 3 o 4
Parameter1 Nº Ticket de la venta
Parameter2 Nº Contrato para cobrar con la tarjeta guardada
Parameter3 Importe de la venta

Operativa de Devolución con una Tarjeta de bóveda

Esta funcionalidad realiza la transacción de devolución sobre una tarjeta previamente guardada en bóveda dado su no de contrato.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 6
Modifier 2
Parameter1 Nº Ticket de la venta
Parameter2 Nº Contrato para cobrar con la tarjeta guardada
Parameter3 Importe a devolver

Operativa Recarga de Móviles

XML Parameter1

<DATA>
    <AMOUNT>Importe</AMOUNT>
    <PHONE_NUMBER> Nº de Teléfono</ PHONE_NUMBER>
    <TICKET>Nº de Ticket</TICKET>
    <REFERENCE></REFERENCE>
    <OPERATOR_CODE> Código de Operador</OPERATOR_CODE>
</DATA>

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 7
Modifier 1
Parameter1 XML con la información de la recarga
Parameter2 No utilizado
Parameter3 No utilizado

Campos XML

Etiqueta Comentarios
AMOUNT Importe de la operación, valor en euros.
PHONE_NUMBER El número de teléfono.
TICKET El número de ticket es obligatorio
REFERENCE No utilizado
OPERATOR_CODE El código de operador es obligatorio y numérico

Operativa Devolución de una Recarga de Móviles

XML Parameter1

<DATA>
    <AMOUNT>Importea Devolver</AMOUNT>
    <PHONE_NUMBER> Nº de Teléfono</PHONE_NUMBER>  
    <TICKET> Nº de Ticket de la Devolución </TICKET>  
    <REFERENCE> Nº de Referencia (NºTicket Recarga)</REFERENCE>  
    <OPERATOR_CODE> Código de Operador </OPERATOR_CODE>
</DATA>

Realiza la devolución de una recarga de móvil dado el nº de Ticket y el importe de la recarga que se quiere anular.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 7
Modifier 9
Parameter1 XML con la información de la recarga
Parameter2 No utilizado
Parameter3 No utilizado

Campos XML

Etiqueta Comentarios
AMOUNT Importe de la operación, valor en euros. debe ser el mismo importe de la recarga a anular
PHONE_NUMBER El número de teléfono.
TICKET El número de ticet para las devoluciones no es obligatorio
REFERENCE Número de ticke de la recarga a anular
OPERATOR_CODE El código de operador es obligatorio y numérico

Operativa de Multidivisa (DCC) en TPV

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 8
Modifier 0
Parameter1 Nº Operación de 2 dígitos
Parameter2 No utilizado
Parameter3 No utilizado

Operativa de pago fraccionado

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 10
Modifier 0
Parameter1 Ticket
Parameter2 Tipo de pago seleccionado
Parameter3 No utilizado

Procedimiento

La operativa en este modelo de proceso no se diferencia en su inicio a la operativa de una venta normal. EN los casos dónde se produzcan ventas con tarjetas privadas, el funcionamiento será el siguiente:

* Se inicia la venta normalmente, leyendo por banda magnética la tarjeta privada.

* El Concentrador detectará que la tarjeta es una tarjeta privada.

* Ofrecerá el fraccionamiento del pago, en la respuesta de GetNextMessage retornando el código 1004 y sin ningún dato adicional.

* El TPV deberá empezar una llamada con CallSepecificFunction, Función 10, modificador 0, indicando la selección realizada y el número de ticket de la operación, que será objeto de comprobación.

* La Transacción seguirá normalmente, y a través de la llamada a GetNextMessage que retornará 1000 o 1001 como se tratase de una venta normal.

Requisitos para el Pago Fraccionado

1. El comercio debe tener habilitada esta modalidad con las entidades bancarias con las que trabajará.

2. El comercio deberá entregar a Sipay Plus un listado con los rangos de bines de tarjeta que están reservadas para sus tarjetas privadas.

3. El comercio debe adaptar su operativa de TPV para trabajar con esta funcionalidad.

4. Las tarjetas privadas ha de ser leídas por banda magnética

Key Entry Sell

XML Parameter3

<CARD>
    <PAN>Numero de la tarjeta</PAN>  
    <EXPIRATION_DATE> Fecha de expiración Tarjeta</EXPIRATION_DATE>
</CARD>  

Esta operativa permite la realización de una venta con tecleo manual, sin la intervención de un PIN Pad. No obstante es necesario que exista el registro de un PIN Pad en el mismo puesto de venta o establecimiento para que la operativa funcione correctamente.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 16
Modifier 0
Parameter1 Importe de la operaciónde la operación
Parameter2 Numero del ticket
Parameter3 String, con formato XML

Campos XML

Etiqueta Comentarios
PAN Número de la tarjeta a guardar
EXPIRATION_ DATE La fecha de caducidad de la tarjeta debe estar con el siguiente formato: MMAA,Por ejemplo, el mes octubre de 2015 quedaría como 1015

Key Entry Refund

XML Parameter3

<CARD>
    <PAN>Numero de la tarjeta</PAN>  
    <EXPIRATION_DATE> Fecha de expiración Tarjeta</EXPIRATION_DATE>
</CARD>  

Esta operativa permite la realización de una devolución con tecleo manual, sin la intervención de un PIN Pad. No obstante es necesario que exista el registro de un PIN Pad en el mismo puesto de venta o establecimiento para que la operativa funcione correctamente.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 17
Modifier 0
Parameter1 Importe de la operaciónde la operación
Parameter2 Numero del ticket
Parameter3 String, con formato XML

Campos XML

Etiqueta Comentarios
PAN Número de la tarjeta a guardar
EXPIRATION_ DATE La fecha de caducidad de la tarjeta debe estar con el siguiente formato: MMAA,Por ejemplo, el mes octubre de 2015 quedaría como 1015

Carga fichero 3000

Esta operativa permite la carga de un fichero 3000 de configuración a los PIN Pads INGENICO, durante el proceso no se pueden realizar operaciones financieras.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 20
Modifier 0
Parameter1 Path y nombre del fichero 3000 a cargar
Parameter2 No utilizado
Parameter3 No utilizado

Cambio forzado de modo OFFLINE ( ON y OFF )

Esta operativa permite el paso de la operativa a modo OFFLINE / ONLINE de manera forzada, el estado seleccionado se mantendrá hasta una nuevo cambio o hasta que se reinicie el Devicehub. Para trabajar en Modo Offline, es necesario tener habilitada una entidad bancaria que permita esta característica.

Funcion

CallSpecificFunction(callSpecificFunctionRequest[], callSpecificFunctionResponse[])

Parámetros

Parámetro Descripción
Function 21
Modifier 0
Parameter1 Modo Offline On/Off*
Parameter2 No utilizado
Parameter3 No utilizado

Posibles valores de Parameter1

Valor Descripción
0 Modo Offline deshabilitado, El sistema entrará en Offline solamente cuando sea necesario.
1 Modo Offline habilitado, el sistema permanecerá siempre en OFFLINE hasta que sea deshabilitado o el Devicehub sea reiniciado.

Códigos de respuesta

Descripción de los posibles códigos que devuelve la llamada de la función GetNextMessage(getNextMessageRequest[], getNextMessageResponse[]).

MessageCode

getNextMessageResponse[Message][MessageCode]

Código Mensaje Descripción del Mensaje
10 El proceso aún no ha terminado, continua sin mostrar Texto
11 El proceso aún no ha terminado, continua con Texto
1000 Fin de la transacción. Proceso Finalizado correctamente, muestra Texto y acaba
1001 Cancelación de la transacción. Proceso Denegado, muestra Texto de error y acaba
1002 El proceso aún no ha terminado. Opción de Multidivisa (DCC) en TPV, muestra mensaje,con la información de Multidivisa y continua
1004 Ofrecimiento de Pago fraccionado.

Almacenamiento en boveda

Código Mensaje Descripción del Mensaje
1000 Denegada (La venta/devolución ha sido denegada, por lo tanto no se almacena la tarjeta)
1001 Aceptada (La venta/devolución ha sido aceptada y se ha almacenado correctamente la tarjeta)
1005 Aceptada, la venta/devolución ha sido aceptada, pero no se pudo almacenar la tarjeta, en este caso el comercio deberá tomar la medida para tomar los datos de la tarjeta con el fin de realizar un registro posterior sin tarjeta

Valores Modificador

Modificador Comentarios
1 Operación de venta, si la tarjeta permite DCC, se aplicará la moneda extranjera por defecto.
2 Utilizado en devoluciones.Véase devolucion on tarjeta en boveda
3 Operación de venta, si la tarjeta permite DCC, se aplicará la moneda extranjera por defecto.
4 Operación de venta, si la tarjeta permite DCC, se aplicará la moneda local (Euros) por defecto

Formatos de firma

Código Formato
00 Formato propietario
01 BMP
02 JPG
03 TIF

Código de Operaciones

Código operción Descripción
00 Operación DCC con Importe local
01 Operación DCC con Importe extranjer
02 Cancelar la Operación DCC

Pago fraccionado

Forma Pago Código Observaciones
Fin de Mes 000 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.
Debito Inmediato 800 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.
3 Meses 043 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.
6 Meses 046 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.
10 Meses 100 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.
12 Meses 052 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.
Revolving 000 Dependerá de que el comercio tenga contratada esta opción con su entidad financiera habitual.

Codigos de operador

Código Nombre Operador Importes permitidos
1 MOVISTAR 5 A 150€ (MULTIPLOS DE 5€
2 VODAFONE 5 A 150€ (MULTIPLOS DE 5€
3 ORANGE 5 A 150€ (MULTIPLOS DE 5€
32 YOIGO 5 A 150€ (MULTIPLOS DE 5€
33 CARREFOUR 5 A 150€ (MULTIPLOS DE 5€
54 LEBARA_ON 5 A 150€ (MULTIPLOS DE 5€
56 MASMOVIL_ON 5 A 150€ (MULTIPLOS DE 5€
58 EUSKALTEL 5 A 150€ (MULTIPLOS DE 5€
95 DIGIMOBIL 5 A 150€ (MULTIPLOS DE 5€
108 SIMYO 5 A 150€ (MULTIPLOS DE 5€
111 BLAU 5 A 150€ (MULTIPLOS DE 5€
111 TALKOUT 5 A 150€ (MULTIPLOS DE 5€
112 MUNDIMOVIL 5 A 150€ (MULTIPLOS DE 5€
113 CLM 5 A 150€ (MULTIPLOS DE 5€
114 HONGDA 5 A 150€ (MULTIPLOS DE 5€
116 HABLAFACIL 5 A 150€ (MULTIPLOS DE 5€
123 HITSMOBILE 5 A 150€ (MULTIPLOS DE 5€
125 LLAMAYA_ON 5 A 150€ (MULTIPLOS DE 5€
127 ORBITEL_ON 5 A 150€ (MULTIPLOS DE 5€
130 LYCAMOBILE 5 A 50€ (MULTIPLOS DE 5€)
131 ORTEL 5 A 150€ (MULTIPLOS DE 5€
139 TUENTI 5 A 150€ (MULTIPLOS DE 5€
239 JAZZTELMOVIL 5 A 150€ (MULTIPLOS DE 5€
240 HAPPYMOVIL_ON 5 A 150€ (MULTIPLOS DE 5€
244 GTMOBILE 5 A 150€ (MULTIPLOS DE 5€
373 BESTMOVIL 5 A 150€ (MULTIPLOS DE 5€
586 EPLUS 5 A 150€ (MULTIPLOS DE 5€
587 ALOW 5 A 150€ (MULTIPLOS DE 5€
590 MOVIDATA 5 A 90€ (MULTIPLOS DE 5€)
591 YOUMOBILE 5 A 90€ (MULTIPLOS DE 5€)
635 JAZZPANDA 5 A 90€ (MULTIPLOS DE 5€)
636 DIAMOVI 5 A 150€ (MULTIPLOS DE 5€