API Recargas API Reference

La API de recargas de Multicaja es la que usan sus diferentes productos digitales para realizar recargas a través del Switch Transaccional de Multicaja.

Autenticación

Todos los requerimientos son autenticados usando un api-key incluido en el header x-api-key o apikey.

Errores

La API usa códigos HTTP estándares para indicar el éxito o fracaso de un requerimiento. El cuerpo del mensaje es json con el siguiente formato:

{
    "status": 400,
    "error": "Bad Request",
    "message": "Invalid property 'origin'",
    "path": "/recharges/v1/check",
    "timestamp": "2018-08-02T14:56:37.427"
}
API Endpoint
https://api.multicaja.cl/recharges/v1
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: https
Version: 1.0.0

Paths

Obtener productos

GET /products

Obtiene un listado de productos de recarga agrupados por operador

200 OK

OK

500 Internal Server Error

Server Error

Response Example (200 OK)
[
  {
    "id": 1,
    "order": 1,
    "code": "movistar",
    "name": "Movistar",
    "products": [
      {
        "id": 1,
        "type": {
          "id": 1,
          "code": "bam",
          "name": "Banda Ancha Móvil",
          "order": 1
        },
        "amount": {
          "min": 750,
          "max": 25000,
          "multi": [
            [
              750,
              1000,
              2000
            ]
          ]
        },
        "suscriptor": "numero"
      }
    ]
  }
]
Response Example (500 Internal Server Error)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}

Verificar factibilidad

POST /check

Verificación de factibilidad de una recarga

Datos de la recarga

Request Example
{
  "origin": "RECARGACL",
  "stan": 1,
  "product_id": 1,
  "amount": 1500,
  "suscriptor": 995168137,
  "commerce_id": 325,
  "branch_id": 325,
  "terminal_id": 317
}
200 OK

OK

400 Bad Request

Alguno de los campos requeridos no viene o es inválido

500 Internal Server Error

Server Error

502 Bad Gateway

Error al comunicarse con el Switch Multicaja

504 Gateway Timeout

Timeout al comunicarse con el Switch Multicaja

Response Example (200 OK)
{
  "response_code": "01",
  "response_message": "TRANSACCION APROBADA",
  "transaction_id": 795547062,
  "authorization_id": "700000612259",
  "created_at": "2018-03-16T16:38:31.28571",
  "recharge": {
    "suscriptor": "988598372",
    "amount": 1500,
    "operator": "Movistar",
    "type": "Telefonía Móvil"
  }
}
Response Example (400 Bad Request)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}
Response Example (500 Internal Server Error)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}
Response Example (502 Bad Gateway)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}
Response Example (504 Gateway Timeout)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}

Realizar recargar

POST /recharge

Realiza una recarga con cargo al comercio informado

Datos de la recarga

Request Example
{
  "origin": "RECARGACL",
  "stan": 1,
  "product_id": 1,
  "amount": 1500,
  "suscriptor": 995168137,
  "check_transaction_id": 795547062,
  "commerce_id": 325,
  "branch_id": 325,
  "terminal_id": 317
}

OK

400 Bad Request

Alguno de los campos requeridos no viene o es inválido

500 Internal Server Error

Server Error

502 Bad Gateway

Error al comunicarse con el Switch Multicaja

504 Gateway Timeout

Timeout al comunicarse con el Switch Multicaja

Response Example (200 OK)
{
  "response_code": "01",
  "response_message": "TRANSACCION APROBADA",
  "transaction_id": 795547062,
  "transaction_status": "APROBADA",
  "authorization_id": "700000612259",
  "created_at": "2018-03-16T16:38:31.28571"
}
Response Example (400 Bad Request)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}
Response Example (500 Internal Server Error)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}
Response Example (502 Bad Gateway)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}
Response Example (504 Gateway Timeout)
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}

Schema Definitions

Products: array

Example
[
  {
    "id": 1,
    "order": 1,
    "code": "movistar",
    "name": "Movistar",
    "products": [
      {
        "id": 1,
        "type": {
          "id": 1,
          "code": "bam",
          "name": "Banda Ancha Móvil",
          "order": 1
        },
        "amount": {
          "min": 750,
          "max": 25000,
          "multi": [
            [
              750,
              1000,
              2000
            ]
          ]
        },
        "suscriptor": "numero"
      }
    ]
  }
]

Operator: object

Datos del operador

id: integer (int64)

Identificador del operador

order: integer (int32)

Orden de aparición

code: string

Código interno del operador

name: string

Nombre público del operador

products: Product
Product
Example
{
  "id": 1,
  "order": 1,
  "code": "movistar",
  "name": "Movistar",
  "products": [
    {
      "id": 1,
      "type": {
        "id": 1,
        "code": "bam",
        "name": "Banda Ancha Móvil",
        "order": 1
      },
      "amount": {
        "min": 750,
        "max": 25000,
        "multi": [
          [
            750,
            1000,
            2000
          ]
        ]
      },
      "suscriptor": "numero"
    }
  ]
}

Product: object

Datos del producto

id: integer (int64)

Identificador del producto

type: Type
amount: Amount
suscriptor: string

Tipo de suscriptor del producto, puede ser numero o rut

Example
{
  "id": 1,
  "type": {
    "id": 1,
    "code": "bam",
    "name": "Banda Ancha Móvil",
    "order": 1
  },
  "amount": {
    "min": 750,
    "max": 25000,
    "multi": [
      [
        750,
        1000,
        2000
      ]
    ]
  },
  "suscriptor": "numero"
}

Type: object

Tipo de producto

id: integer (int64)

Identificador del tipo de producto

code: string

Código interno del tipo de producto

name: string

Nombre público del tipo de producto

order: integer (int32)

Orden de aparición

Example
{
  "id": 1,
  "code": "bam",
  "name": "Banda Ancha Móvil",
  "order": 1
}

Amount: object

Datos de los montos aceptados.

Ignorar los valores min y max si el valor multi es distinto de null

min: integer (int64)

Monto mínimo aceptado

max: integer (int64)

Monto máximo aceptado

multi: integer[]

Montos fijos aceptados

integer (int64)
Example
{
  "min": 750,
  "max": 25000,
  "multi": [
    [
      750,
      1000,
      2000
    ]
  ]
}

Recharge: object

Datos de la recarga

suscriptor: string

Número identificador de la recarga

amount: integer (int64)

Monto de la recarga

operator: string

Nombre del operador

type: string

Nombre del producto

Example
{
  "suscriptor": "988598372",
  "amount": 1500,
  "operator": "Movistar",
  "type": "Telefonía Móvil"
}

CheckRequest: object

origin: string

Texto que identifica la plataforma que está haciendo la recarga, es requerido por el Switch de Multicaja como dato de control

stan: integer (int32)

Identificador secuencial de la transacción, largo máximo 6 dígitos

product_id: integer (int64)

Identificador del producto a recargar

amount: integer (int64)

Monto a recargar

suscriptor: string

Número identificador de la recarga, dependiendo del producto puede ser un rut o un número de teléfono

commerce_id: integer (int64)

Identificador del comercio

branch_id: integer (int64)

Identificador de la sucursal

terminal_id: integer (int64)

Identificador del terminal

Example
{
  "origin": "RECARGACL",
  "stan": 1,
  "product_id": 1,
  "amount": 1500,
  "suscriptor": 995168137,
  "commerce_id": 325,
  "branch_id": 325,
  "terminal_id": 317
}

CheckResponse: object

response_code: string

Código de resultado de la transacción enviada al Switch Multicaja

response_message: string

Mensaje de respuesta del Switch Multicaja

transaction_id: integer (int64)

Identificador de la transacción

authorization_id: string

Código de autorización de la transacción

created_at: string (date-time)

Fecha y hora de la transacción

recharge: Recharge
Example
{
  "response_code": "01",
  "response_message": "TRANSACCION APROBADA",
  "transaction_id": 795547062,
  "authorization_id": "700000612259",
  "created_at": "2018-03-16T16:38:31.28571",
  "recharge": {
    "suscriptor": "988598372",
    "amount": 1500,
    "operator": "Movistar",
    "type": "Telefonía Móvil"
  }
}

RechargeRequest: object

origin: string

Texto que identifica la plataforma que está haciendo la recarga, es requerido por el Switch de Multicaja como dato de control

stan: integer (int32)

Identificador secuencial de la transacción, largo máximo 6 dígitos

product_id: integer (int64)

Identificador del producto a recargar

amount: integer (int64)

Monto a recargar

suscriptor: string

Número identificador de la recarga, dependiendo del producto puede ser un rut o un número de teléfono

check_transaction_id: integer (int64)

Identificador de la transacción de verificación de factibilidad

commerce_id: integer (int64)

Identificador del comercio

branch_id: integer (int64)

Identificador de la sucursal

terminal_id: integer (int64)

Identificador del terminal

Example
{
  "origin": "RECARGACL",
  "stan": 1,
  "product_id": 1,
  "amount": 1500,
  "suscriptor": 995168137,
  "check_transaction_id": 795547062,
  "commerce_id": 325,
  "branch_id": 325,
  "terminal_id": 317
}

RechargeResponse: object

response_code: string

Código de resultado de la transacción enviada al Switch Multicaja

response_message: string

Mensaje de respuesta del Switch Multicaja

transaction_id: integer (int64)

Identificador de la transacción

transaction_status: string

Estado de la transacción recién generada

authorization_id: string

Código de autorización de la transacción

created_at: string (date-time)

Fecha y hora de la transacción

Example
{
  "response_code": "01",
  "response_message": "TRANSACCION APROBADA",
  "transaction_id": 795547062,
  "transaction_status": "APROBADA",
  "authorization_id": "700000612259",
  "created_at": "2018-03-16T16:38:31.28571"
}

ErrorResponse: object

status: integer (int32)

Código HTTP

error: string

Nombre del código HTTP

message: string

Descripción del error

path: string

Url de la solicitud http

timestamp: string (date-time)

Fecha y hora del error

Example
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid property 'amount'.",
  "path": "/recharges/check",
  "timestamp": "2018-03-16T16:38:31.28571"
}