# Oh GiftCard

# 1. Generar tarjeta

POST /pagos

Crea una tarjeta activa o pre-vendida.

REQUEST

  • provider: (Tipo de dato: string). Nombre del proveedor del servicio (oh_gift_card). Campo obligatorio.

  • action: (Tipo de dato: string). Identificador de la acción a procesar (generate_card). Campo obligatorio.

  • amount: (Tipo de dato: integer). Monto inicial. Campo obligatorio.

  • payer_email: (Tipo de dato: string) Email del destinatario. Es el usuario asociado a la orden. Campo obligatorio.

  • sequence_number: (Tipo de dato: string). Sequence alfanumérico único para cada petición con el fin de evitar procesamientos duplicados por reintentos; se recomienda que sea un valor que se vaya incrementando entre requests. Campo obligatorio.

  • public_key: (Tipo de dato: integer). Id del producto elegido. Campo obligatorio.

  • secret: (Tipo de dato: string). Clave de autorización de Oh Gift-Card otorgada a la marca (X-GCA-AUTH-KEY). Campo obligatorio.

{
    "provider": "oh_gift_card",
    "action": "generate_card",
    "amount":1000,
    "payer_email": "andres@gmail.com",
    "sequence_number": "454445",
    "public_key": 3079,
    "secret": "jlljdnlkvgki"
}

RESPONSE

Devuelve número de transacción que se utilizará al enviar un email.

  • transaction: Código alfanumérico que se utilizará para enviar un email.
{
    "transaction":"tx7812kk0_23",
    "url":"http://dynamic.ohgiftcard.com/virtual/2hj2h2hj288272h"
}

Tipo de errores en la petición:

INVALID_RANGE_AMOUNT: Error por saldo fuera del rango permitido del producto INVALID_PRODUCT_ID: Error por id del producto inválido MISSING_PARAMETER: Error por parámetros faltantes INVALID_EMAIL: Error por formato de email inválido INVALID_AMOUNT: Error, el monto debe ser entero

# 2. Consumir tarjeta

POST /pagos

Descuenta saldo de una tarjeta.

REQUEST

  • provider: (Tipo de dato: string). Nombre del proveedor del servicio (oh_gift_card). Campo obligatorio.

  • action: (Tipo de dato: string). Identificador de la acción a procesar (burn_credit). Campo obligatorio.

  • card_number: (Tipo de dato: string). Número de tarjeta sobre la cual se van a realizar los consumos. Campo obligatorio.

  • sec_code: (Tipo de dato: string). Código de seguridad de la tarjeta. Campo obligatorio.

  • amount: (Tipo de dato: integer). Monto a descontar de la tarjeta. Campo obligatorio.

  • reference_id: (Tipo de dato: integer). Id de la orden en Hermés. Campo obligatorio.

  • sequence_number: (Tipo de dato: string). Sequence alfanumérico único para cada petición con el fin de evitar procesamientos duplicados por reintentos. Campo obligatorio.

  • secret: (Tipo de dato: string). Clave de autorización de Oh Gift-Card otorgada a la marca (X-GCA-AUTH-KEY). Campo obligatorio.

{
    "provider": "oh_gift_card",
    "action": "burn_credit",
    "card_number": "1234567963407766",
    "amount":1000,
    "sec_code":"729",
    "reference_id": 65432,
    "sequence_number": "454445",
    "secret": "jlljdnlkvgki"
}

RESPONSE

  • card: Retorna el número de la tarjeta a la cual se le aplicó el consumo.

  • authorizationCode: Retorna el código de seguridad de la tarjeta a la cual se le aplicó el consumo.

  • debited: Monto consumido de la tarjeta.

[
    {
        "card": "1234567963407766", 
        "authorizationCode":"123456",
        "debited":500.0,
        "message":"OH GIFT CARD APROBADA. Se ha descontado de su Gift Card un monto de $500.0"
    }
]

Tipo de errores en la petición:

400 - No se pudo procesar el pedido. {"gcaErrorCode": ”INSUFFICIENT_FUNDS”, "message":"OH GIFT CARD RECHAZADA. Fondos Insuficientes"}

401 - No se ha especificado el "secret", o "secret" inválida.

404 - No existe la tarjeta y o código de seguridad. {"gcaErrorCode": ”CARD_NOT_FOUND”, "message":"OH GIFT CARD RECHAZADA. Tarjeta no encontrada"}

# 3. Consulta de productos disponibles

POST /pagos

Se usa este método para obtener un listado completo de los productos disponibles para generar una gift card virtual.

REQUEST

Solo se envía un campo por POST.

  • provider: (Tipo de dato: string). Nombre del proveedor del servicio (oh_gift_card). Campo obligatorio.

  • action: (Tipo de dato: string). Identificador de la acción a procesar (get_products). Campo obligatorio.

  • secret: (Tipo de dato: string). Clave de autorización de Oh Gift-Card otorgada a la marca (X-GCA-AUTH-KEY). Campo obligatorio.

{
    "provider": "oh_gift_card",
    "action": "get_products",
    "secret": "jlljdnlkvgki"
}

RESPONSE

Devuelve un array con todos los productos disponibles.

  • id: Id del producto.

  • name: Nombre del producto.

  • minAmount: Monto mínimo.

  • maxAmount: Monto máximo.

  • image: Url de la imagen del producto.

[
    {
        "id": "123456",
        "name": "GiftCard Fravega Gold",
        "minAmount": "500.00",
        "maxAmount": "5000.00",
        "image": "https://dynamic.ohgiftcard.com/products/123456/image"
    },
    {
        "id": "155456",
        "name": "GiftCard Fravega Platinum",
        "minAmount": "1000.00",
        "maxAmount": "10000.00",
        "image": "https://dynamic.ohgiftcard.com/products/155456/image"
    }
]

# 4. Obtener saldo de una tarjeta

POST /pagos

Se utiliza para obtener el saldo actual de una gift card.

REQUEST

  • provider: (Tipo de dato: string). Nombre del proveedor del servicio (oh_gift_card). Campo obligatorio.

  • action: (Tipo de dato: string). Identificador de la acción a procesar (get_saldo). Campo obligatorio.

  • card_number: (Tipo de dato: string). Número de tarjeta sobre la cual se va a consultar saldo. Campo obligatorio.

  • secret: (Tipo de dato: string). Clave de autorización de Oh Gift-Card otorgada a la marca (X-GCA-AUTH-KEY). Campo obligatorio.

{
    "provider": "oh_gift_card",
    "action": "get_saldo",
    "card_number": "6366123412341234",
    "secret": "jlljdnlkvgki"
}

RESPONSE

Devuelve el saldo disponible y la fecha de expiración de la tarjeta.

  • authorizationCode: Código de autorización. No se vuelve a usar.

  • balance: Saldo disponible en la tarjeta.

  • expirationDate: Fecha de expiración de la tarjeta.

  • status: estado de la tarjeta.


{
    "authorizationCode":"123456",
    "balance":400.75, 
    "expirationDate":"2017-04-28",
    "status":"ACTIVE",
    "message":"El saldo de su Gift Card es de $ $400,75"
}

# 5. Enviar email

POST /pagos

Envía un email de la giftcard creada a la dirección del destinatario. Paso previo: Generar tarjeta.

REQUEST

  • provider: (Tipo de dato: string). Nombre del proveedor del servicio (oh_gift_card). Campo obligatorio.

  • action: (Tipo de dato: string). Identificador de la acción a procesar (send_mail). Campo obligatorio.

  • transaction: (Tipo de dato: string). Código alfanumérico devuelto en el response de Generar tarjeta. Campo obligatorio.

{
    "provider": "oh_gift_card",
    "action": "send_mail",
    "transaction":"tx7812kk0_23",
    "secret": "jlljdnlkvgki"
}

RESPONSE

Si la transacción es exitosa devuelve un status 200.

# 6. Reverso técnico

POST /pagos

Se emplea para revertir la operación de Consumir tarjeta. Se debe enviar un llamado idéntico al consumo, con los mismos parámetros e inclusive el mismo "sequence_number".

REQUEST

  • provider: (Tipo de dato: string). Nombre del proveedor del servicio (oh_gift_card). Campo obligatorio.

  • action: (Tipo de dato: string). Identificador de la acción a procesar (reverso_tecnico). Campo obligatorio.

  • card_number: (Tipo de dato: string). Número de tarjeta sobre la cual se realizó el consumo. Campo obligatorio.

  • sec_code: (Tipo de dato: string). Código de seguridad de la tarjeta. Campo obligatorio.

  • amount: (Tipo de dato: integer). Monto que se ingresó para descontar de la tarjeta. Campo obligatorio.

  • reference_id: (Tipo de dato: integer). Id de la orden en Hermés. Campo obligatorio.

  • sequence_number: (Tipo de dato: string). Mismo sequence_number que se envió para consumir la tarjeta. Campo obligatorio.

  • secret: (Tipo de dato: string). Clave de autorización de Oh Gift-Card otorgada a la marca (X-GCA-AUTH-KEY). Campo obligatorio.

{
    "provider": "oh_gift_card",
    "action": "reverso_tecnico",
    "card_number": "6366123412341234",
    "amount":1000,
    "sec_code":"729",
    "reference_id": 65432,
    "sequence_number": "454445",
    "secret": "jlljdnlkvgki"
}

RESPONSE

Si la transacción es exitosa devuelve un status 200.