NAV
shell python javascript php

Introducción

La API AlquimiaPay expone una serie de métodos enfocados en instruir y autorizar operaciones financieras, además de consultas de información, e instrucción de otras funcionalidades.

Métodos de autenticación

Para invocar los servicios de la API, es indispensable generar dos tokens:

URL de la API

https://wso2.alquimiapay.com/

Contexto Pruebas

/sanboxalquimiapay/

Contexto Producción

/apialquimiapay/

Toda referencia a URL_BASE o URL deberá ser sustituida por dicha URL según sea el caso, pruebas o productivo. Asi mismo las referencias contexto deberán ser sustituidas por dicho contexto según sea el caso`

Generación de token de Api Manager

Entorno Producción:

  curl -k -X POST <URL_BASE> -d "grant_type=client_credentials" -H \
  "Authorization: Basic <Al momento de pasar al ambiente productivo, se hace llegar este parámetro>"
var settings = {
    "url": "https://wso2.alquimiapay.com/token",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Content-Type": "application/x-www-form-urlencoded",
      "Authorization": "Basic <Al momento de pasar al ambiente productivo, se hace llegar este parámetro>"
    },
    "data": {
      "grant_type": "client_credentials"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/token',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'grant_type=client_credentials',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded',
    'Authorization: Basic <Al momento de pasar al ambiente productivo, se hace llegar este parámetro>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'grant_type=client_credentials'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic <Al momento de pasar al ambiente productivo, se hace llegar este parámetro>',
}
conn.request("POST", "/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Entorno Pruebas:

  curl -k -X POST <URL_BASE> -d "grant_type=client_credentials" -H \
  "Authorization: Basic TjJmdFFqZGVWTjd5RlQyMnA3ejJlV2tJQnVZYTpqOWQxZ0xZel9xekRHNmJhcXhzUFZNems0Sklh"
var settings = {
    "url": "https://wso2.alquimiapay.com/token",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Content-Type": "application/x-www-form-urlencoded",
      "Authorization": "Basic TjJmdFFqZGVWTjd5RlQyMnA3ejJlV2tJQnVZYTpqOWQxZ0xZel9xekRHNmJhcXhzUFZNems0Sklh"
    },
    "data": {
      "grant_type": "client_credentials"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/token',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'grant_type=client_credentials',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded',
    'Authorization: Basic TjJmdFFqZGVWTjd5RlQyMnA3ejJlV2tJQnVZYTpqOWQxZ0xZel9xekRHNmJhcXhzUFZNems0Sklh'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'grant_type=client_credentials'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic TjJmdFFqZGVWTjd5RlQyMnA3ejJlV2tJQnVZYTpqOWQxZ0xZel9xekRHNmJhcXhzUFZNems0Sklh',
}
conn.request("POST", "/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "access_token": "eyJ4NXQiOiJNell4TW1Ga09…...",
  "scope": "am_application_scope default",
  "token_type": "Bearer",
  "expires_in": 600
}

Para generar el token de Api Manager se realiza mediante un request con las credenciales y URL descrita para este propósito. Al generar el token este servirá para enviarlo en la cabecera Authorization con el valor Bearer ACCESS_TOKEN, con esto, los servicios de consumo del api en general podrán responder de forma adecuada ya que funciona como un login.

Http Request

POST https://wso2.alquimiapay.com/token

Token Alquimia

Entorno Producción:

  curl -k -X POST https://vitae.alquimiadigital.mx/cpanel/index.php/api/oauth2/token \
  -d "grant_type=password&client_id=testclient&client_secret=testpass&username=<usuario>&password=<password>"
var settings = {
    "url": "https://vitae.alquimiadigital.mx/cpanel/index.php/api/oauth2/token",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "grant_type": "password",
      "username": "[email protected]",
      "password": "Tupassword",
      "client_id": "testclient",
      "client_secret": "testpass"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://vitae.alquimiadigital.mx/cpanel/index.php/api/oauth2/token',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'grant_type=password&username=ejemplo%40alquimiapay.com&password=Tupassword&client_id=testclient&client_secret=testpass',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("vitae.alquimiadigital.mx")
payload = 'grant_type=password&username=ejemplpo%40alquimiapay.com&password=Tupassword&client_id=testclient&client_secret=testpass'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/cpanel/index.php/api/oauth2/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Entorno Pruebas:

  curl -k -X POST https://demomatic.alquimiadigital.mx/cpanel/index.php/api/oauth2/token \
  -d "grant_type=password&client_id=testclient&client_secret=testpass&username=<usuario>&password=<password>" 
import http.client

conn = http.client.HTTPSConnection("demomatic.alquimiadigital.mx")
payload = 'grant_type=password&username=ejemplpo%40alquimiapay.com&password=Tupassword&client_id=testclient&client_secret=testpass'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/cpanel/index.php/api/oauth2/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://demomatic.alquimiadigital.mx/cpanel/index.php/api/oauth2/token',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'grant_type=password&username=ejemplo%40alquimiapay.com&password=Tupassword&client_id=testclient&client_secret=testpass',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("demomatic.alquimiadigital.mx")
payload = 'grant_type=password&username=ejemplpo%40alquimiapay.com&password=Tupassword&client_id=testclient&client_secret=testpass'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/cpanel/index.php/api/oauth2/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
"access_token": "0e22c85bc36bd7...",
"expires_in": 86400,
"token_type": "Bearer",
"scope": null,
"refresh_token": "23147c1fbcd51fbbefa..."
}

Para la generación del Token Alquimia, es necesario contar con credenciales de inicio de sesión y haber restablecido la contraseña de la banca por primera vez.

URL de la Banca

Http request

POST /cpanel/index.php/api/oauth2/token

Cuentas de ahorro/Wallett

Listar Cuentas

  curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
    -H 'Content-Type: x-www-form-urlencoded' \  
    '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-cliente'
  var settings = {
      "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cliente=12345",
      "method": "GET",
      "timeout": 0,
      "headers": {
        "Authorization": "Bearer <ACCESS_TOKEN>",
        "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
      },
    };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cliente=12345',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
      'Authorization: Bearer <ACCESS_TOKEN>',
      'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
  import http.client

  conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
  payload = ''
  headers = {
    'Authorization': 'Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
  }
  conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cliente=12345", payload, headers)
  res = conn.getresponse()
  data = res.read()
  print(data.decode("utf-8"))

Respuesta:

{
 "id_cuenta_ahorro": 12345,
 "id_cliente": 12345,
 "nombre_cliente": "NOMBRE DEL USUARIO",
 "id_producto_ahorro_empresa": 123,
 "saldo_ahorro": 0,
 "fecha_alta": "2022-02-08 13:42:53",
 "fecha_actualizacion": "2022-02-08 13:42:53",
 "activo": 0,
 "aplica_liquidacion": 0,
 "no_cuenta": "0000000000000001",
 "fecha_actualizacion_movimientos": null,
 "tarjeta_id": 0,
 "retiro_pendiente": "0.00",
 "cuenta_eje": null,
 "cuenta_clabe": null,
 "nombre_centro_costos": null,
 "tipo_persona": "Persona Física",
 "tipo_persona_int": 0,
 "fondeador_stp_id": 0,
 "alias": null,
 "id_cuenta_ahorro_padre": null,
 "nombre_empresa": "EJEMPLO.COM SA DE CV",
 "_links":{"self":{"href": "http://vitae.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/12345"}
}

Servicio para listar las cuentas, saldos y estados de cuentas del cliente.

Http Request

GET /1.0.0/v2/cuenta-ahorro-cliente

Parametros

Parametro Tipo Descripción
id_cliente int Identificador del cliente, se obtiene del servicio Perfil del usuario.
page int Identificador para mostrar la página en la que estemos situados, de acuerdo a la cantidad de registros que se obtengan.
registros int Número de registros a recuperar, si no se coloca por default trae 20.

Consulta de Saldo

curl -X GET \
        -H 'Authorization: Bearer <ACCESS_TOKEN>' \
        -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
        -H 'Content-Type: x-www-form-urlencoded' \
        '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-cliente'
  var settings = {
      "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/saldo-cuenta-ahorro?no_cuenta=123456789012345678",
      "method": "GET",
      "timeout": 0,
      "headers": {
        "Authorization": "Bearer <ACCESS_TOKEN>",
        "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
      },
    };

    $.ajax(settings).done(function (response) {
      console.log(response);
    });
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/saldo-cuenta-ahorro?no_cuenta=123456789012345678',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
      'Authorization: Bearer <ACCESS_TOKEN>',
      'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
  import http.client

  conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
  payload = ''
  headers = {
    'Authorization': 'Bearer eyJ4NXQiOiJNell4TW1Ga09HWXdNV0kwW...'
  }
  conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/saldo-cuenta-ahorro?no_cuenta=123456789012345678", payload, headers)
  res = conn.getresponse()
  data = res.read()
  print(data.decode("utf-8"))

Respuesta:

  {
    "error": false,
    "saldo": "0.00"
  }

Servicio para consultar el saldo de la cuenta de ahorro en base a la cuenta clabe emparejada.

Http request

GET /1.0.0/v2/saldo-cuenta-ahorro

Parametros

Parametro Tipo Descripción
no_cuenta int No. de cuenta CLABE emparejada a la cuenta de ahorro.

Consulta de Movimientos

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
    -H 'Content-Type: x-www-form-urlencoded' \
    '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta ahorro>/transaccion'
  var settings = {
      "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/123/transaccion",
      "method": "GET",
      "timeout": 0,
      "headers": {
        "Authorization": "Bearer <ACCESS_TOKEN>",
        "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
      },
    };

    $.ajax(settings).done(function (response) {
      console.log(response);
    });
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/123/transaccion',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
      'Authorization: Bearer <ACCESS_TOKEN>',
      'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
  import http.client

  conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
  payload = ''
  headers = {
    'Authorization': 'Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
  }
  conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/123/transaccion", payload, headers)
  res = conn.getresponse()
  data = res.read()
  print(data.decode("utf-8"))

Respuesta:

  {
  "id_transaccion": 1234,
  "id_cuenta_ahorro": 123,
  "id_medio_pago": 4,
  "id_producto_ahorro": 56,
  "id_cliente": 123,
  "id_instructor": null,
  "tipo_movimiento": 31,
  "numero_cuenta": null,
  "numero_empleado": null,
  "empresa": null,
  "fecha_operacion": "2022-04-05",
  "tipo_cargo": 1,
  "monto": "0.02",
  "iva": "0.00",
  "tipo_operacion": -1,
  "medio_pago": null,
  "medio_pago_concepto": null,
  "medio_pago_clave_rastreo": null,
  "medio_pago_cuenta_origen": null,
  "medio_pago_cuenta_destino": null,
  "medio_pago_estatus": null,
  "descripcion_operacion_cliente": null,
  "responsable_transaccion": null,
  "referencia_numerica_cuenta_ahorro_cliente_medio_pago": null,
  "valor_real": -0.02,
  "fecha_alta": "2022-04-05 16:34:13",
  "fecha_actualizacion": "2022-04-05 16:34:13",
  "estatus_debito": 0,
  "concepto": "test_status",
  "descripcion": null,
  "tipo_string": null,
  "tipo_movimiento_string": null,
  "moneda": null,
  "fecha_consumo": null,
  "id_movimiento_proveedor": null,
  "transaccion_conciliada": 0,
  "estatus_transaccion": 4,
  "observaciones": "{\"folio_orden\":\"323340672842181\"}",
  "tipo_transaccion": 0,
  "cuenta_origen": null,
  "id_establecimiento": null,
  "id_categoria": null,
  "clave_rastreo": "AQPAY002022040516341122497830",
  "id_cuenta_ahorro_medio_pago": 0,
  "tipo_alerta": 2,
  "concepto_otro": null,
  "cnxn_remesa": 0,
  "is_paycash": "0",
  "data_paycash": false,
  "categoria": null,
  "establecimiento": null,
  "imagen_medio_pago": "https://demomatic.alquimiadigital.mx/cpanel/index.php/api/v1/imagen/12387"
  }

Servicio para listar los movimientos hechos por la cuenta de ahorro del cliente

Http Request

Get /1.0.0/v2/cuenta-ahorro-cliente

Parametros

Parametro Tipo Descripción
id_cuenta_ahorro int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente
page int Identificador para mostrar la página en la que estemos situados, de acuerdo a la cantidad de registros que se obtengan.
registros int Número de registros a recuperar, si no se coloca por default trae 20.
fecha_inicio string Fecha inicio para filtrado de movimientos a partir de esta fecha, se debe enviar en formato: yyyy-mm-dd, ejemplo: 2021-10-01
fecha_fin string Fecha fin para filtrado de movimientos hasta esta fecha, se debe enviar en formato: yyyy-mm-dd, ejemplo: 2021-10-30

Transacciones SPEI, Tarjeta o Misma Institución

Instruir Uno a Uno

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
'<URL>/<contexto>/1.0.0/v2/guardar-transacciones'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/guardar-transacciones",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "cuenta_origen": "123",
      "id_cliente": "12345",
      "medio_pago": "4",
      "importe": "0.02",
      "cuenta_destino": "100000000000000001",
      "codigo_banco": "014",
      "guarda_cuenta_destino": "true",
      "nombre_beneficiario": "Nombre Ejemeplo",
      "rfc_beneficiario": "NA",
      "email_beneficiario": "[email protected]",
      "concepto": "test_status",
      "no_referencia": "100001",
      "api_key": "xxxxxApykeyxxxxx"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/guardar-transacciones',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'cuenta_origen=123&id_cliente=12345&medio_pago=4&importe=0.02&cuenta_destino=100000000000000001&codigo_banco=014&guarda_cuenta_destino=true&nombre_beneficiario=Nombre%20Ejemplo&rfc_beneficiario=NA&email_beneficiario=ejemplo%2Bqa%40alquimiapay.com&concepto=test_status&no_referencia=100119&api_key=xxxxxApykeyxxxxx',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'cuenta_origen=123&id_cliente=12345&medio_pago=4&importe=0.02&cuenta_destino=659803000000189265&codigo_banco=014&guarda_cuenta_destino=true&nombre_beneficiario=Nombre%20Ejemplo&rfc_beneficiario=NA&email_beneficiario=ejemplo%2Bqa%40alquimiapay.com&concepto=test_status&no_referencia=100119&api_key=xxxxxApykeyxxxxx'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/sanboxalquimiapay/1.0.0/v2/guardar-transacciones", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "error": false,
  "id_transaccion": 1135,
  "folio_orden": "263028",
  "message": "Operación registrada con exito. Estado: Aplicada.",
  "pendiente": true
}

Servicio para hacer transacciones de la cuenta de ahorro a otra cuenta.

Http Request

POST /1.0.0/v2/guardar-transacciones

Parametros

Parametro Tipo Descripción
cuenta_origen int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente.
id_cliente int Identificador del usuario, se obtiene del servicio Perfil del usuario.
medio_pago int Identificador del medio de pago, que tiene asociado la cuenta de ahorro, se obtiene del servicio Catálogo de medios de Pago.
importe int Es el monto a dispersar.
cuenta_destino int Cuenta destino.
codigo_banco int El código del banco a seleccionar, deben de ser 3 dígitos, se obtiene del servicio de Catálogo de bancos, valor del nodo “nombre”.
guarda_cuenta_destino boolean Si la transacción es correcta guardará la cuenta para futuras transacciones, true para guardar, false para no guardar los datos.
nombre_beneficiario string Nombre del Beneficiario.
rfc_beneficiario string RFC del Beneficiario.
email_beneficiario string Email del Beneficiario.
concepto string Concepto de la transacción
no_referencia int Número de referencia de la transacción.
api_key string API Key generada para la cuenta de ahorro.
codigo_trasaccional string Código generado por el cliente
soft_token string Código generado en aplicativo AQPayToken

Transferencia de cuenta madre a tarjetas AlquimiaPay

Para transacción de cuenta madre a tarjeta, se utilizan los mismos parámetros de la tabla de arriba, pero haciendo cambio de los siguientes valores.

Parametro Tipo Descripción
medio_pago int Identificador del medio de pago, que tiene asociado la cuenta de ahorro, se obtiene del servicio Catálogo de medios de Pago. id_medio_pago": 2
cuenta_destino int dentificador (id_cuenta_ahorro) que se obtiene del servicio https://wso2.alquimiapay.com/apialquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cuenta_ahorro_padre=xxxx o el numero de tarjeta alquimiapay a 16 digitos

Transferencia entre tarjetas AlquimiaPay

Para transacción entre tarjetas, se utilizan los mismos parámetros de la tabla de arriba, pero haciendo cambio de los siguientes valores.

Parametro Tipo Descripción
medio_pago int Identificador del medio de pago, que tiene asociado la cuenta de ahorro, se obtiene del servicio Catálogo de medios de Pago. id_medio_pago": 5
cuenta_destino int dentificador (id_cuenta_ahorro) que se obtiene del servicio https://wso2.alquimiapay.com/apialquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cuenta_ahorro_padre=xxxx o el numero de tarjeta alquimiapay a 16 digitos

Instruir Por Lote

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/importador-transacciones-json'
var settings = {
    "url": "https://wso2.alquimiapay.com//sanboxalquimiapay/1.0.0/v2/importador-transacciones-json",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "cuenta_origen": "123",
      "medio_pago": "4",
      "api_key": "xxxxxxxxxxxxApiKeyxxxxxxxxxx",
      "id_cliente": "12345",
      "json_transacciones": "[{\"cuenta_destino\":\"010000000000000001\",\"importe\":\"0.02\",\"concepto\":\"Demo\",\"nombre_beneficiario\":\"Alejandro\",\"rfc_beneficiario\":\"Ejemplo000000\",\"email_beneficiario\":\"[email protected]\",\"no_referencia\":\"101010\",\"concepto_2\":\"na\",\"id_externo\":\"101001\"},{\"cuenta_destino\":\"010000000000000001\",\"importe\":\"0.02\",\"concepto\":\"Demo2\",\"nombre_beneficiario\":\"Nombre\",\"rfc_beneficiario\":\"Ejemplo000000\",\"email_beneficiario\":\"[email protected]\",\"no_referencia\":\"101011\",\"concepto_2\":\"na\",\"id_externo\":\"101002\"}]"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com//sanboxalquimiapay/1.0.0/v2/importador-transacciones-json',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'cuenta_origen=123&medio_pago=4&api_key=xxxxxxxxxxxxApiKeyxxxxxxxxxx&id_cliente=12345&json_transacciones=%5B%7B%22cuenta_destino%22%3A%22010000000000000001%22%2C%22importe%22%3A%220.02%22%2C%22concepto%22%3A%22Demo%22%2C%22nombre_beneficiario%22%3A%22Nombre%22%2C%22rfc_beneficiario%22%3A%22Ejemplo000000%22%2C%22email_beneficiario%22%3A%22ejemplo%40alquimiapay.com%22%2C%22no_referencia%22%3A%22101010%22%2C%22concepto_2%22%3A%22na%22%2C%22id_externo%22%3A%22101001%22%7D%2C%7B%22cuenta_destino%22%3A%22010000000000000001%22%2C%22importe%22%3A%220.02%22%2C%22concepto%22%3A%22Demo2%22%2C%22nombre_beneficiario%22%3A%22Ejemplo%22%2C%22rfc_beneficiario%22%3A%22Ejemplo000000%22%2C%22email_beneficiario%22%3A%22ejemplo%40alquimiapay.com%22%2C%22no_referencia%22%3A%22101011%22%2C%22concepto_2%22%3A%22na%22%2C%22id_externo%22%3A%22101002%22%7D%5D',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'cuenta_origen=123&medio_pago=4&api_key=xxxxxxxxxxxxApiKeyxxxxxxxxxx&id_cliente=12345&json_transacciones=%5B%7B%22cuenta_destino%22%3A%22010000000000000001%22%2C%22importe%22%3A%220.02%22%2C%22concepto%22%3A%22Demo%22%2C%22nombre_beneficiario%22%3A%22Ejemplo%22%2C%22rfc_beneficiario%22%3A%22Ejemplo000000%22%2C%22email_beneficiario%22%3A%22ejemplo%40alquimiapay.com%22%2C%22no_referencia%22%3A%22101010%22%2C%22concepto_2%22%3A%22na%22%2C%22id_externo%22%3A%22101001%22%7D%2C%7B%22cuenta_destino%22%3A%22010000000000000001%22%2C%22importe%22%3A%220.02%22%2C%22concepto%22%3A%22Demo2%22%2C%22nombre_beneficiario%22%3A%22Nombre%22%2C%22rfc_beneficiario%22%3A%22Ejemplo000000%22%2C%22email_beneficiario%22%3A%22ejemplo%40alquimiapay.com%22%2C%22no_referencia%22%3A%22101011%22%2C%22concepto_2%22%3A%22na%22%2C%22id_externo%22%3A%22101002%22%7D%5D'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "//sanboxalquimiapay/1.0.0/v2/importador-transacciones-json", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "error": false,
  "pendiente": true,
  "message": "Orden registrada con exito",
  "folio_orden": "271288",
  "id_transacciones": [
    {
      "id_externo": "101001",
      "id_transaccion": 3089,
    },
    {
      "id_externo": "101002",
      "id_transaccion": 3090
    }
  ]
}

Servicio para hacer transacciones masivas de la cuenta de ahorro a otras cuentas.

Http Request

POST /1.0.0/v2/importador-transacciones-json

Parametros

Parametro Tipo Descripción
cuenta_origen int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente.
medio_pago int Identificador del medio de pago, que tiene asociado la cuenta de ahorro, se obtiene del servicio Catálogo de medios de Pago.
codigo_seguridad int Código generado por el cliente.
soft_token int Código generado en aplicativo AQPayToken.
api_key string API Key generada para la cuenta de ahorro. (en caso de no usar codigo_seguridad y soft_token).
id_cliente string Identificador del cliente, se obtiene del servicio Perfil del usuario.
json_transacciones json Ejemplo de json: [{"cuenta_destino":"000000000000000001","importe":"0.02","concepto":"Demo","nombre_beneficiario":"Nombre","rfc_beneficiario":"Ejemplo000000","email_beneficiario":"[email protected]","no_referencia":"101010","concepto_2":"na","id_externo":"101001"}{"cuenta_destino":"000000000000000002","importe":"0.02","concepto":"Demo2","nombre_beneficiario":"Nombre","rfc_beneficiario":"Ejemplo000000","email_beneficiario":"[email protected]","no_referencia":"101011","concepto_2":"na","id_externo":"101002"}]

Confirmar Transacciones

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/ordenes-importador'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/ordenes-importador",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "id_transaccion": "1234",
      "accion": "1",
      "id_cuenta": "123",
      "api_key": "xxxxxxxxxxxxApiKeyxxxxxxxxxx"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/ordenes-importador',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'id_transaccion=1234&accion=1&id_cuenta=123&api_key=xxxxxxxxxxxxApiKeyxxxxxxxxxx',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'id_transaccion=1234&accion=1&id_cuenta=123&api_key=xxxxxxxxxxxxApiKeyxxxxxxxxxx'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/sanboxalquimiapay/1.0.0/v2/ordenes-importador", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "error":false,
  "message":"Éxito"
}

Servicio para autorizar las transacciones pendientes, una vez autorizada en automático procede la dispersión a la cuenta destino.

Http Request

POST /1.0.0/v2/ordenes-importador

Parametros

Parametro Tipo Descripción
id_transaccion int Identificador que se obtiene del servicio de Listado de Transferencias pendientes, se pueden enviar múltiples id de transacciones separados por coma sin espacios. ejemplo: 15896,15855,78966.
accion int 1 => Autoriza las transacciones, 2 => Elimina las transacciones.
id_cuenta int Id de la cuenta donde se realizaron las transacciones pendientes, se obtiene del servicios Cuentas de ahorro del cliente.
api_key string API Key generada para la cuenta de ahorro.

Servicios

Listar TX pendientes

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
    -H 'Content-Type: x-www-form-urlencoded' \
    '<URL>/<contexto>/1.0.0/v2/ordenes-importador?expand=datos'
  var settings = {
      "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/ordenes-importador?expand=datos&id_cuenta=123&page=1&registros=100",
      "method": "GET",
      "timeout": 0,
      "headers": {
        "Authorization": "Bearer <ACCESS_TOKEN>",
        "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
      },
    };

    $.ajax(settings).done(function (response) {
      console.log(response);
    });
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/ordenes-importador?expand=datos&id_cuenta=123&page=1&registros=100',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
      'Authorization: Bearer <ACCESS_TOKEN>',
      'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/ordenes-importador?expand=datos&id_cuenta=123&page=1&registros=100", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
 "id": 3141,
 "folio_orden": "233875789125435",
 "datos": "{\"cuenta_origen\":123,\"cuenta_eje\":\"100000000000000009\",\"medio_pago_origen\":4,\"medio_pago\":\"4\",\"cuenta_destino\":\"550000000000001\",\"importe\":\"0.02\",\"comision\":\"0.00\",\"total\":0.02,\"concepto\":\"test\",\"concepto_otro\":0,\"nombre_beneficiario\":\"usuario\",\"rfc_beneficiario\":\"NA\",\"email_beneficiario\":\"[email protected]\",\"no_referencia\":\"100001\",\"id_cuenta_destino\":0,\"id_cliente_receptor\":0,\"id_tarjeta_receptora\":0}",
 "estatus": 3,
 "activo": 0,
 "fecha_alta": "2022-04-05 16:23:40",
 "fecha_actualizacion": "2022-04-05 16:23:40",
 "usuario_autorizador": 0,
 "fecha_autorizacion": null,
 "usuario_instructor": 12345,
 "fecha_instruccion": "2022-04-05 16:23:40",
 "detalle_error": null,
 "id_transaccion_ahorro_cliente": 0,
 "id_transaccion_spei": 0,
 "id_externo": 0,
 "_embedded":{
 "datos":{"cuenta_origen": 123, "cuenta_eje": "100000000000000009", "medio_pago_origen": 4, "medio_pago": "4",}
}

Servicio para listar las transferencias pendientes por la cuenta de ahorro del cliente.

Http Request

GET /1.0.0/v2/ordenes-importador

Parametros

Parametro Tipo Descripción
id_cuenta int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente.
page int Identificador para mostrar la página en la que estemos situados, de acuerdo a la cantidad de registros que se obtengan.
registros int Número de registros a recuperar, si no se coloca por default trae 20.

Comprobante de transacción

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/transaccion/<id_transaccion>/comprobante'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/123/transaccion/1234/comprobante",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "id_cuenta_ahorro": "123",
      "id_transaccion": "1234"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/123/transaccion/1234/comprobante',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'id_cuenta_ahorro=123&id_transaccion=1234',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'id_cuenta_ahorro=123&id_transaccion=1234'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/123/transaccion/1234/comprobante", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "resumen":
  {
    "descripcion":"-",
    "monto":"0.02",
    "tipo":"Cargo",
    "fecha":"2021-09-07 16:05:09",
    "estatus":"Aplicada",
    "concepto":"cuenta CLABE",
    "clave_rastreo":"AQPAY00000000000000000000775",
    "no_referencia":"123456",
    "validar_transferencia":"https://www.banxico.org.mx/cep/",
    "folio_autorización":"151275889","password":"","vigencia":""
  },
  "alquimia": 
  {
    "nombre":"Alquimia Digital MX SAPI DE CV",
    "calle_numero":"Cerrada Aniceto Ortega No. 623,",
    "colonia":"Col. Del Valle Sur",
    "cp":"03100",
    "delegacion":"Benito Juárez",
    "estado":"Ciudad de México",
    "web":"www.alquimiapay.com"
  },
  "ordenante":
  {
    "comercio":"",
    "categoria":"",
    "nombre":"DESARROLLO SA  ",
    "rfc":"RFC0000001",
    "cuenta_eje":"1000000000000005",
    "tipo_persona":"PERSONA MORAL",
    "medio_pago":"SPEI STP - Alquimia PAY",
    "clabe":"646180127301500000",
    "referencia_ordenante":"",
    "no_tarjeta":"","institucion":"STP"
  },
  "beneficiario":
  {
    "comercio":"",
    "categoria":"",
    "nombre":"Nombre Ejemplo",
    "tipo_persona":"PERSONA FÍSICA",
    "rfc":"RFC0000001",
    "curp":"",
    "cuenta_eje":"123456789012345678",
    "medio_pago":"SPEI STP - Alquimia PAY",
    "no_tarjeta":"",
    "institucion":"BANCO EJEMPLO",
    "cuenta_destino":"123456789012345678"
  },
  "operador":
  {
    "nombre":"T*****A D*****O D*****O "
  },
  "autorizador":
  {
    "nombre":"T*****A D*****O D*****O "
  },
  "titulo_comprobante":
  {
    "titulo_comprobante1":"Comprobante de transacción",
    "titulo_comprobante2":"SPEI",
    "titulo_comprobante3":""
  },
  "adicionales":
  {
    "id_medio_pago":3,
    "tipo_movimiento":31,
    "monedero_padre":false,
    "reversa_movimiento":false
  }
}

Servicio que devuelve los datos únicamente de las transacciones hechas de la cuenta de ahorro, para hacer un comprobante.

Http Request

POST /1.0.0/v2/cuenta-ahorro-cliente

Parametros

Parametro Tipo Descripción
id_cuenta_ahorro int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente.
id_transaccion int Identificador del usuario, se obtiene del servicio Perfil del usuario.

Listar Perfil de Usuario

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/perfil'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/perfil",
    "method": "GET",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
    },
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/perfil',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/perfil", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "id_cliente":18332,
  "nombre":"Nombre Ejemplo",
  "apellido_paterno":"Apellido1",
  "apellido_materno":"Apellido1",
  "fecha_nacimiento":"2000-02-25",
  "sexo":"M",
  "email":"[email protected]",
  "rfc":"RFC0000001",
  "curp":"CURP_EJEMPLO_1",
  "nacionalidad":"MX",
  "tipo_usuario":"administrador"
}

Servicio que devuelve los datos del usuario con el cual generó el token o en sesión.

Http Request

POST /1.0.0/v2/perfil

Catalogos de Banco

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/catalogo-bancos'
var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/catalogo-bancos",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer <ACCESS_TOKEN>",
    "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/catalogo-bancos',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/catalogo-bancos", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

[{
  "id":1,
  "nombre":"BANCOMEXT",
  "codigo":"006",
  "fecha_alta":"2020-02-20 16:27:22",
  "fecha_actualizacion":"2020-02-20 16:27:22",
  "activo":0,"_links":{"
    self":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/catalogo-bancos/1"
    },
    "catalogo-bancos_collection":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/catalogo-bancos"
    },
    "curies":[{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/catalogo-bancos/1?expand={rel}",
      "name":"expand","title":"Embeddable related resources."
    }]
  }
}]

Servicio que devuelve el listado del banco de acuerdo a la clave, primeros 3 dígitos.

Http Request

GET /1.0.0/v2/catalogo-bancos

Parametros

Parametros Tipo Descripción
b int Valor que contiene 3 dígitos, este devolverá el banco con dicha clave, ejemplo, 012 nos devolverá el banco BBVA BANCOMER. (si no se conoce el valor del banco, consume el servicio sin parametros y te devolverá la lista completa de los bancos)

Catalago de Medios de Pago

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/medio-pago'
var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/medio-pago",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer <ACCESS_TOKEN>",
    "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/medio-pago',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/medio-pago", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

[{
  "id_medio_pago":1,
  "tipo_medio_pago":"1",
  "nombre":"INNTEC",
  "banco":"Monex",
  "fecha_alta":"2020-02-20 00:00:00",
  "fecha_actualizacion":"2022-01-07 13:41:25",
  "proveedor_peticion":null,
  "orden_listado":3,
  "categoria":1,
  "imagen":12384,
  "view_image":"https://demomatic.alquimiadigital.mx/cpanel/index.php/api/v1/imagen/12384",
  "_links":{
    "self":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/medio-pago/1"
    },
    "medio-pago_collection":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/medio-pago"
    },
    "curies":[{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/medio-pago/1?expand={rel}",
      "name":"expand","title":"Embeddable related resources."
    }],
    "expand:cuentaAhorroMedioPago":{
      "href":"cuentaAhorroMedioPago"
    },
    "expand:configuracion_in":{
      "href":"configuracion_in"
    },
    "expand:configuracion_out":{
      "href":"configuracion_out"
    },
    "expand:configuracion_in_front":{
      "href":"configuracion_in_front"
    },
    "expand:configuracion_out_front":{
      "href":"configuracion_out_front"
    },
    "cuentaAhorroMedioPago":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/medio-pago/1/cuentaAhorroMedioPago"
    }
  }
}]

Servicio que devuelve el listado de los medios de pago asociados a la cuenta de ahorro.

Http Request

GET /1.0.0/v2/medio-pago

Parametros

Parametro Tipo Descripción
tipo_producto int Siempre debe de ser 2.
expand string “configuracion_out”
id_producto int Identificador que asocia los medios de pago de la cuenta de ahorro, valor que se obtiene del servicio Cuentas de ahorro del cliente, valor del nodo, id_producto_ahorro_empresa.

Crear Cuentas de Cobranza Referenciada

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/emparejamiento
var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/emparejamiento",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer <ACCESS_TOKEN>",
    "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "id_cuenta_ahorro": "123",
    "cuenta_hija": "true",
    "nombre_cobranza": "ejemplo"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/emparejamiento',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'id_cuenta_ahorro=123&cuenta_hija=true&nombre_cobranza=ejemplo',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'id_cuenta_ahorro=123&cuenta_hija=true&nombre_cobranza=ejemplo'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/emparejamiento", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
"error": false,
"message": "Solicitud de emparejamiento en proceso, Intente más tarde por favor"
}

Servicio permite crear cuentas de cobranza referenciada a la cuenta principal.

Http Request

POST /1.0.0/v2/<id_cuenta_ahorro>/cuenta-ahorro-cliente

Parametros

Parametros Tipo Descripción
id_cuenta_ahorro int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente.
cuenta_hija int Indica que será una clabe de cobranza referenciada y se le debe enviar el valor true.
nombre_cobranza string Es el nombre (alias) que tendrá la clabe de cobranza referenciada generada.

Crear Referencias de Cobro

  curl --location 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/referencia-cobro' \
  --header 'Authorization: Bearer eyJ4NXQiOiJNell4TW1Ga09HWXdNV0kwW...' \
  --header 'AuthorizationAlquimia: Bearer c6ab40d2c8b5fd6e98b832590fa109a31e4d...' \
  --header 'Content-Type: application/x-www-form-urlencoded'\
  --data-urlencode 'id_medio_pago=18' \
  --data-urlencode 'nombre_cobranza=demo' \
  --data-urlencode 'importe=10.00' \
  --data-urlencode 'vigencia=2023-03-24' \
  --data-urlencode 'type=1'
var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/referencia-cobro",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer irGEmKJc91dP93Eg1Wnh5wj4557RXq6uQ...",
    "AuthorizationAlquimia": "Bearer c6ab40d2c8b5fd6e98b832590fa...",
    "Content-Type": "application/x-www-form-urlencoded",
  },
  "data": {
    "id_medio_pago": "18",
    "nombre_cobranza": "demo",
    "importe": "10.00",
    "vigencia": "2023-03-24",
    "type": "1"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/apialquimiapay/1.0.0/v2/cuenta-ahorro-cliente/%3Cid_cuenta_ahorro%3E/referencia-cobro',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'id_medio_pago=18&nombre_cobranza=demo&importe=10.00&vigencia=2023-03-24&type=1',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer c91dP93Eg1Wnh5wj4557RXq6uQ...',
    'AuthorizationAlquimia: Bearer c6ab40d2c8b5fd6e98b832590fa109a...',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'id_medio_pago=18&nombre_cobranza=demo&importe=10.00&vigencia=2023-03-24&type=1'
headers = {
  'Authorization': 'Bearer c91dP93Eg1Wnh5wj4557RXq6uQ...',
  'AuthorizationAlquimia': 'Bearer c6ab40d2c8b5fd6e98b832590fa109a31e4d...',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/apialquimiapay/1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/referencia-cobro", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
"error": false,
"message": "RESPUESTA PENDIENTE DE COLOCAR POR PARTE DE ALQUIMIA PAY"
}

Servicio permite crear cuentas de cobranza referenciada a la cuenta principal.

Http Request

POST /1.0.0/v2/cuenta-ahorro-cliente/<id_cuenta_ahorro>/referencia-cobro

Parametros

Parametros Tipo Descripción
id_medio_pago int 18= Clabe Kushki 19= URL Kushki
nombre_cobranza string Es el nombre (alias) que tendrá la cobranza referenciada generada.
importe decimal Importe a recibir con dos decimales ejemplo 10.00
vigencia date vigencia de la referencia formato: yyyy-mm-dd
type int 1 = Referencia Unica 2 = Referencia Recurrente

Listar CLABEs de Cobranza Referenciada

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-medio-pago?id_cuenta_ahorro=<id_cuenta_ahorro>'
var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-medio-pago?id_cuenta_ahorro=123",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer <ACCESS_TOKEN>",
    "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-medio-pago?id_cuenta_ahorro=123',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-medio-pago?id_cuenta_ahorro=123", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
        "id": 12345,
        "no_cuenta_medio_pago": "659803000000000035",
        "cuenta_eje": "0000000839-CD-0000000839-0000044646",
        "nombre_cobranza": "",
        "folio_interno": null,
        "fecha_alta": "2022-04-07 17:50:59",
        "cta_medio_pago": {
            "id": "12345",
            "activo": "0",
            "observacion": null
        },
        "_links": {
            "self": {
                "href": "http://vitae.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-medio-pago/61341"
            },
            "cuenta-ahorro-medio-pago_collection": {
                "href": "http://vitae.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-medio-pago"
            },
            "curies": [
                {
                    "href": "http://vitae.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-medio-pago/61341?expand={rel}",
                    "name": "expand",
                    "title": "Embeddable related resources."
                }
            ],
            "expand:cuenta-ahorro": {
                "href": "cuenta-ahorro"
            },
            "expand:medios-pago-cobranza": {
                "href": "medios-pago-cobranza"
            }
        }
  }

Servicio que devuelve el listado de las CLABEs de cobranza referenciada.

Http Request

GET /1.0.0/v2/cuenta-ahorro-medio-pago

Parametros

a Parametros | Tipo | Descripción --------- | ------- | ----------- id_cuenta_ahorro | int | Identificador que se obtiene del servicio de Cuentas de ahorro del cliente. page | int | valor para paginar los resultados registros | int | número de elementos mostrar en la consulta, si no se especifica traerá 20 registros por default. sort | string | valor en forma ascendente o descendente, en donde se agrega “-” para traer los registros más recientes o alfabéticamente en caso de NO ir traerá desde el elemento más viejo.

Listar Cuentas Hijas

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro-cliente?id_cuenta_ahorro_padre=<id_cuenta_ahorro_padre>&page=2&registros=5&sort=-fecha_alta'
var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cuenta_ahorro_padre=xxxx&page=2&registros=5&sort=-fecha_alta",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer <ACCESS_TOKEN>",
    "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro-cliente?id_cuenta_ahorro_padre=xxxx&page=2&registros=5&sort=-fecha_alta',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0v2/cuenta-ahorro-cliente?id_cuenta_ahorro_padre=xxxx&page=2&registros=5&sort=-fecha_alta", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

[{
  "id":301,
  "id_cuenta_ahorro":123,
  "id_medio_pago":4,
  "numero_referencia":null,
  "estatus":null,
  "fecha_alta":"2022-02-10 11:44:21",
  "fecha_actualizacion":"2022-02-10 11:44:21",
  "tipo_comision":1,
  "valor_comision":"0.00",
  "numero_maximo_transacciones":127,
  "monto_maximo_transacciones":"100000.00",
  "tipo_reseteo":1,"horas_reseteo":null,
  "hora_inicio":"00:00",
  "hora_fin":"23:59",
  "calendario_transaccion":"1,2,3,4,5,6,0",
  "no_cuenta_medio_pago":"659803000000268539",
  "cuenta_eje":"0000000133-CD-0000000133-0000026784",
  "tipo_cash":1,
  "saldo_basado_medio_pago":1,
  "activo":0,
  "cuenta_hija":0,
  "nombre_cobranza":"",
  "_links":{
    "self":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-medio-pago/301"
    },
    "cuenta-ahorro-medio-pago_collection":{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-medio-pago"
    },
    "curies":[{
      "href":"http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-medio-pago/301?expand={rel}",
      "name":"expand",
      "title":"Embeddable related resources."
    }],
    "expand:cuenta-ahorro":{
      "href":"cuenta-ahorro"
    }  
  }
}]

Servicio que devuelve el listado de las cuentas hijas dada una cuenta madre.

Http Request

GET /1.0.0/v2/cuenta-ahorro-cliente

Parametros

Parametros Tipo Descripción
id_cuenta_ahorro_padre int Identificador de la cuenta madre.
sort string valor en forma ascendente o descendente, en donde se agrega “-” para traer los registros más recientes o alfabéticamente en caso de NO ir traerá desde el elemento más viejo.
page int valor para paginar los resultados
registros int número de elementos mostrar en la consulta, si no se especifica traerá 20 registros por default.

Consulta de Estatus de TX

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/consulta-estatus-tx'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/consulta-estatus-tx?id_transaccion=3142&id_cuenta=123",
    "method": "GET",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Cookie": "PHPSESSID=rbmp0b6t7afimhlktr7t87v5qp; _csrf=96ddf3b60fc9ec072fcfeaa0b1dba279aafbc33b7803745d38eb461c24a7e97aa%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22CFbCltaQdEqbRJpxAhkHNH6WAOnpZDyD%22%3B%7D"
    },
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/consulta-estatus-tx?id_transaccion=3142&id_cuenta=123',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Cookie: PHPSESSID=rbmp0b6t7afimhlktr7t87v5qp; _csrf=96ddf3b60fc9ec072fcfeaa0b1dba279aafbc33b7803745d38eb461c24a7e97aa%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22CFbCltaQdEqbRJpxAhkHNH6WAOnpZDyD%22%3B%7D'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/consulta-estatus-tx?id_transaccion=3142&id_cuenta=123", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "id_transaccion": "3142",
  "estatus": "LIQUIDADA",
  "detalle_proveedor":{
    "error": false,
    "message": "Transacción sembrada exitosamente en proveedor"
  }
}

Http Request

GET /1.0.0/v2/consulta-estatus-tx

Parametros

Parametros Tipo Descripción
id_transaccion number REQUERIDO - Para determinar el estatus de una transacción
id_cuenta number REQUERIDO - Número de cuenta de la transacción

Consulta Saldo de Tarjeta

curl -X GET \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/saldo-tarjeta-visa/4116xxxxxxxxxxxx'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/saldo-tarjeta-visa/4116080130118909",
    "method": "GET",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Cookie": "PHPSESSID=95k7akkrtccoq8ogoc11l95qgd; _csrf=c871a2fa6bd1156528a139017c8d5c17ca5fec63004679af9beb12211b1888c5a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22e7MsaJGCS-2uKH9s7j9usaaRvY716czS%22%3B%7D"
    },
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/saldo-tarjeta-visa/4116080130118909',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Cookie: PHPSESSID=95k7akkrtccoq8ogoc11l95qgd; _csrf=c871a2fa6bd1156528a139017c8d5c17ca5fec63004679af9beb12211b1888c5a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22e7MsaJGCS-2uKH9s7j9usaaRvY716czS%22%3B%7D'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/saldo-tarjeta-visa/4116080130118909", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "error": false,
  "message": "Consulta Exitosa",
  "no_tarjeta": "4116XXXXXXXXXXXX",
  "saldo": "0.55"
}

Http Request

GET /1.0.0/v2/saldo-tarjeta-visa

Parametros

Parametros Tipo Descripción
numero de tarjeta number REQUERIDO - Para consultar el saldo de la tarjeta, sustituir las X por los números de la tarjeta.

Webhooks

La siguiente estructura representa cómo Alquimia enviará las notificaciones a sus clientes cuando expongan una URL donde se dará aviso de abonos o sobre liquidaciones de spei out.

Notificación de Transacciones

Respuesta:

{
    "id": "6621",
    "no_cuenta_eje": "1000000000000001",
    "tipo": 2,
    "medioPago": "SPEI STP - Alquimia PAY",
    "fechaOperacion": "2022-02-28 17:06:15",
    "institucionOrdenante": "90646",
    "nombreOrdenante": "ALQUIMIA",
    "tipoCuentaOrdenante": "1",
    "cuentaOrdenante": "100000000000000001",
    "rfcCurpOrdenante": "ND",
    "claveRastreo": "DEMWEBHOOKS00000000000004",
    "monto": "10.00",
    "nombreBeneficiario": "DESARROLLO SA",
    "cuentaBeneficiario": "100000000000000001",
    "rfcCurpBeneficiario": "",
    "concepto": "Prueba SPEI-IN abono1"
}

Parametros

Parametro Tipo Descripción
id string Identificador de la transacción.
no_cuenta_eje string Número de Cuenta Eje asignado por la Banca.
tipo int Indica el tipo de transacción, donde 1 = CARGO y 2 = ABONO.
medioPago string Indica el nombre del Medio de Pago de la transacción.
fechaOperacion date Indica la fecha en la que se realiza la transacción.
institucionOrdenante string Indica el código de la institución bancaria ó el nombre de la institución que realizó la transacción, en caso de ser 0 (cero), el dato no aplica.
nombreOrdenante string Indica el nombre de quien realizó la transacción.
tipoCuentaOrdenante int Indica el tipo de cuenta, donde 40 = Clabe Interbancaria, 3 = # Tarjeta y 0 = No Aplica.
cuentaOrdenante int Indica el número de cuenta del responsable que detona-ordena la transacción.
rfcCurpOrdenante string Indica el RFC o CURP del responsable que detona-ordena la transacción.
claveRastreo string Clave de Rastreo asociada a la transacción.
monto decimal Indica el monto (valor monetario) de la transacción.
nombreBeneficiario string Indica el nombre del beneficiario, es decir, quien recibe la transacción.
cuentaBeneficiario string ndica el número de cuenta del beneficiario, es decir, quien recibe la transacción.
rfcCurpBeneficiario string Indica el RFC o CURP del beneficiario, es decir, quien recibe la transacción.
concepto string Indica el concepto de la transacción establecida por el Ordenante.

Bloqueo de tarjeta

curl -X POST \
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/bancaalquimiapay/1.0.0/v2/operaciones-tarjeta

var settings = {
  "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/operaciones-tarjeta",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer <ACCESS_TOKEN>",
    "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "id_cliente": "123",
    "id_cuenta_ahorro": "1234",
    "no_tarjeta": "1234567890123456",
    "operacion": "1",
    "api_key": "xxxxxxxAPIKEYxxxxxxxx"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/operaciones-tarjeta',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'id_cliente=123&id_cuenta_ahorro=1234&no_tarjeta=1234567890123456&operacion=1&api_key=xxxxxxxAPIKEYxxxxxxxx',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'id_cliente=123&id_cuenta_ahorro=1234&no_tarjeta=1234567890123456&operacion=1&api_key=xxxxxxxAPIKEYxxxxxxxx'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/sanboxalquimiapay/1.0.0/v2/operaciones-tarjeta", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{

}

Servicio permite bloqueo de tarjetas de Visa - Alquimia

Http Request

POST /1.0.0/v2/operaciones-tarjeta

Parametros

Parametros Tipo Descripción
id_cliente int Identificador del usuario, se obtiene del servicio Perfil del usuario
id_cuenta_ahorro int Identificador que se obtiene del servicio de Cuentas de ahorro del cliente
no_tarjeta string No. de la tarjeta a bloquear
operacion int Siempre será 1 para el bloqueo
api_key string API Key generada para la cuenta de ahorro.

API Key/Webhook

Creacion

curl -X POST\
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>",
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "ips": "192.168.100.200",
      "url_notificacion": "192.168.0.40",
      "medios_pago": "5",
      "api_key": "xxxxxxxxxxxxxxxApiKeyxxxxxxxxxxxxx"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'ips=192.168.100.200&url_notificacion=192.168.0.40&medios_pago=5&api_key=xxxxxxxxxxxxxxxApiKeyxxxxxxxxxxxxx',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'ips=192.168.100.200&url_notificacion=192.168.0.40&medios_pago=5&api_key=xxxxxxxxxxxxxxxApiKeyxxxxxxxxxxxxx'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "id_cuenta_ahorro": "123",
  "api_key": "xxxxxxxxxxxxxxxApiKeyxxxxxxxxxxxxx",
  "ips": "192.168.100.200",
  "url_notificacion": "192.168.0.40",
  "medios_pago": "5",
  "estatus": 1,
  "usuario_alta": 12345,
  "usuario_actualizacion": 12345,
  "fecha_alta":{
    "expression": "NOW()",
    "params":[]
  },
  "fecha_actualizacion":{
    "expression": "NOW()",
    "params":[]
  },
  "id": 37,
  "_links":{
    "self":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico/37"
    },
    "otp-dinamico_collection":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico"
    },
    "cuenta-ahorro-cliente_collection":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente"
    },
    "cuentaAhorro_record":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123"
    },
    "curies":[{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico/37?expand={rel}",
      "name": "expand",
      "title": "Embeddable related resources."
    }],
    "expand:cuentaAhorro":{
      "href": "cuentaAhorro"
    },
    "expand:usuarioAlta":{
      "href": "usuarioAlta"
    },
    "cuentaAhorro":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123"
    },
    "usuarioAlta":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cliente/12345"
    }
  }
}

Https Request

POST /1.0.0/v2/<id_cuenta>/cuenta-ahorro

Parametros

Parametro Tipo Descripción
ips string REQUERIDO - IP´s versión 4, en caso de necesitar más de una IP, se agrega una coma (,) entre cada IP, Ejemplo: 192.1.1.1, 198.5.11
codigo_seguridad string OPCIONAL en caso de no usar api_key - Código generado por el cliente.
soft_token string OPCIONAL en caso de no usar api_key - Código generado en aplicativo AQPayToken.
api_key string API Key generada para la cuenta de ahorro.
url_notificacion string OPCIONAL - Puede ser SOLO UNA IPv4 o URL.
medios_pago string OPCIONAL - Es requerido en el momento de que se agrega el nodo url_notificacion. Se puede mandar más de un medio de pago, separado por coma, ejemplo: 1, 5, 8

Listado

curl -X GET\
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \ 
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico?estatus=1'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico?estatus=1",
    "method": "GET",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUIMIA>"
    },
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico?estatus=1',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>'
}
conn.request("GET", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico?estatus=1", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

[
  {
    "id": 37,
    "id_cuenta_ahorro": 123,
    "api_key": "xxxxxxxxxxxxxxxApiKeyxxxxxxxxxxxxx",
    "estatus": 1,
    "ips": "192.168.100.200",
    "url_notificacion": "192.168.0.40",
    "medios_pago": "5",
    "timestamp": "2022-04-08 12:23:29",
    "usuario_alta": 12345,
    "fecha_alta": "2022-04-08 12:23:29",
    "usuario_actualizacion": 12345,
    "fecha_actualizacion": "2022-04-08 12:23:29",
    "_links":{"self":{"href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico/37"}}
  }
]

Https Request

GET /1.0.0/v2/<id_otp>/cuenta-ahorro

Parametros

Parametro Tipo Descripción
estatus int REQUERIDO - Siempre debe ser 1.

Edición

curl -X POST\
    -H 'Authorization: Bearer <ACCESS_TOKEN>' \
    -H 'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>' \
  -H 'Content-Type: x-www-form-urlencoded' \
  '<URL>/<contexto>/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico/<id_otp>'
var settings = {
    "url": "https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico",
    "method": "POST",
    "timeout": 0,
    "headers": {
      "Authorization": "Bearer <ACCESS_TOKEN>",
      "AuthorizationAlquimia": "Bearer <ACCESS_TOKEN_ALQUMIA>",
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "data": {
      "codigo_seguridad": "123456",
      "soft_token": "123456",
      "api_key": "xxxxxxxapi_keyxxxxxxxx",
      "url_notificacion": "https://ejemplo.com",
      "id_otp": "37",
      "actualizar": "1"
    }
  };

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/<id_cuenta>/otp-dinamico',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'api_key=123456&url_notificacion=https%3A%2F%2Fejemplo.com&id_otp=37&actualizar=1',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer <ACCESS_TOKEN>',
    'AuthorizationAlquimia: Bearer <ACCESS_TOKEN_ALQUIMIA>',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'api_key=123456&url_notificacion=https%3A%2F%2Fejemplo.com&id_otp=37&actualizar=1'
headers = {
  'Authorization': 'Bearer <ACCESS_TOKEN>',
  'AuthorizationAlquimia': 'Bearer <ACCESS_TOKEN_ALQUIMIA>',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("PATCH", "/sanboxalquimiapay/1.0.0/v2/cuenta-ahorro/123/otp-dinamico/37", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
  "id": 37,
  "id_cuenta_ahorro": 123,
  "api_key": "xxxxxxxxxApiKeyxxxxxxxxx",
  "estatus": 1,
  "ips": "187.190.4.61",
  "url_notificacion": "https://ejemplo.com",
  "medios_pago": "3,4",
  "timestamp": "2022-04-08 12:23:29",
  "usuario_alta": 12345,
  "fecha_alta": "2022-04-08 12:23:29",
  "usuario_actualizacion": 12345,
  "fecha_actualizacion":{
    "expression": "NOW()",
    "params":[]
  },
  "_links":{
    "self":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico/37"
    },
    "otp-dinamico_collection":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico"
    },
    "cuenta-ahorro-cliente_collection":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente"
    },
    "cuentaAhorro_record":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123"
    },
    "curies":[{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123/otp-dinamico/37?expand={rel}",
      "name": "expand",
      "title": "Embeddable related resources."
    }],
    "expand:cuentaAhorro":{
      "href": "cuentaAhorro"
    },
    "expand:usuarioAlta":{
      "href": "usuarioAlta"
    },
    "cuentaAhorro":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cuenta-ahorro-cliente/123"
    },
    "usuarioAlta":{
      "href": "http://demomatic.alquimiadigital.mx/cpanel/index.php/api/v2/cliente/12345"
    }
  }
}

Https Request

POST /1.0.0/v2/<id_cuenta>/cuenta-ahorro

Parametros

Parametro Tipo Descripción
codigo_seguridad string OPCIONAL, en caso de usar api_key - Código generado por el cliente.
soft_token string OPCIONAL, en caso de usar api_key - Código generado en aplicativo AQPayToken.
Api_key string api key generado para la cuenta.
url_notificacion string OPCIONAL - Puede ser SOLO UNA IPv4 o URL.
id_otp int REQUERIDO - ID del OTP.
actualizar int REQUERIDO - Siempre debe ser 1 cuando se requiera actualizar.

Pago de servicios

Listado de servicios

curl --location 'https://wso2.alquimiapay.com/pagoservicios/1.0.0/v2/servicio' \
--header 'Authorization: Bearer {{token_Api_manager}}' \
--header 'AuthorizationAlquimia: Bearer {{token_Alquimia}}'
var settings = {
  "url": "https://wso2.alquimiapay.com/pagoservicios/1.0.0/v2/servicio",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{token_Api_manager}}",
    "AuthorizationAlquimia": "Bearer {{token_Alquimia}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/pagoservicios/1.0.0/v2/servicio',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{token_Api_manager}}',
    'AuthorizationAlquimia: Bearer {{token_Alquimia}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = ''
headers = {
  'Authorization': 'Bearer {{token_Api_manager}}',
  'AuthorizationAlquimia': 'Bearer {{token_Alquimia}}'
}
conn.request("GET", "/pagoservicios/1.0.0/v2/servicio", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

error: false,
datos:[
{
"id": 1,
"id_proveedor": 1,
"nombre": "AGUAKAN (Cancun)",
"fecha_alta": "2022-06-16 15:55:04",
"fecha_actualizacion": "2022-06-16 15:55:04",
"_embedded":{"productos":[{"id": 1, "id_servicio": 1, "nombre": "Agua Cancun (Mun. de Benito Juarez y de Isla Mujeres)",},
"_links":{"self":{"href": "http://pagoservicios.alquimiadigital.mx/index.php/api/v1/servicio/1"},
"datosProducto":{"1": "c"}
},
{
"id": 2,
"id_proveedor": 1,
"nombre": "Aguas de Saltillo",
"fecha_alta": "2022-06-16 15:55:04",
"fecha_actualizacion": "2022-06-16 15:55:04",
"_embedded":{"productos":[{"id": 2, "id_servicio": 2, "nombre": "Aguas de Saltillo",},
"_links":{"self":{"href": "http://pagoservicios.alquimiadigital.mx/index.php/api/v1/servicio/2"},
"datosProducto":{"2": "c"}
},
{
"id": 3,
"id_proveedor": 1,
"nombre": "Amazon",
"fecha_alta": "2022-06-16 15:55:04",
"fecha_actualizacion": "2022-06-16 15:55:04",
"_embedded":{"productos":[{"id": 3, "id_servicio": 3, "nombre": "Amazon $100",},
"_links":{"self":{"href": "http://pagoservicios.alquimiadigital.mx/index.php/api/v1/servicio/3"},
"datosProducto":{"3": "a", "4": "a", "5": "a", "6": "a",}
},
]

servicio que nos permite listar los provedores para pagos de servicios.

Https Request

GET pagoservicios/1.0.0/v2/servicio

Parametros

Parametro Tipo Descripción
id_cliente int id de cliente alquimia
id_servicio int id del servicio
servicio string nombre del proveedor

Pago de servicio

curl --location 'https://wso2.alquimiapay.com/pagoservicios/1.0.0/v2/pago' \
--header 'Authorization: Bearer {{token_Api_manager}}' \
--header 'AuthorizationAlquimia: Bearer {{token_Alquimia}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'id_cliente=12345' \
--data-urlencode 'id_servicio=7' \
--data-urlencode 'servicio=AT-T / Iusacell' \
--data-urlencode 'id_producto=16' \
--data-urlencode 'producto=Recarga $10' \
--data-urlencode 'tipo_front=1' \
--data-urlencode 'tipo_referencia=a' \
--data-urlencode 'monto_cobro=10.0' \
--data-urlencode 'monto_comision=0.0' \
--data-urlencode 'comision_proveedor=0.0' \
--data-urlencode 'referencia=123456789' \
--data-urlencode 'telefono=7291559953' \
--data-urlencode 'concepto=prueba pago de serv.' \
--data-urlencode 'cuenta_ahorro=1000000000000001' \
--data-urlencode 'codigo_seguridad=1234' \
--data-urlencode 'token=1234' \
--data-urlencode 'tipo_cuenta=3'
var settings = {
  "url": "https://wso2.alquimiapay.com/pagoservicios/1.0.0/v2/pago",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{token_Api_manager}}",
    "AuthorizationAlquimia": "Bearer {{token_Alquimia}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "id_cliente": "12345",
    "id_servicio": "7",
    "servicio": "AT-T / Iusacell",
    "id_producto": "16",
    "producto": "Recarga $10",
    "tipo_front": "1",
    "tipo_referencia": "a",
    "monto_cobro": "10.0",
    "monto_comision": "0.0",
    "comision_proveedor": "0.0",
    "referencia": "123456789",
    "telefono": "7291559953",
    "concepto": "prueba pago de serv.",
    "cuenta_ahorro": "1000000000000001",
    "codigo_seguridad": "1234",
    "token": "1234",
    "tipo_cuenta": "3"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://wso2.alquimiapay.com/pagoservicios/1.0.0/v2/pago',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'id_cliente=12345&id_servicio=7&servicio=AT-T%20%2F%20Iusacell&id_producto=16&producto=Recarga%20%2410&tipo_front=1&tipo_referencia=a&monto_cobro=10.0&monto_comision=0.0&comision_proveedor=0.0&referencia=123456789&telefono=7291559953&concepto=prueba%20pago%20de%20serv.&cuenta_ahorro=1000000000000001&codigo_seguridad=1234&token=1234&tipo_cuenta=3',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{token_Api_manager}}',
    'AuthorizationAlquimia: Bearer {{token_Alquimia}}',
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


import http.client

conn = http.client.HTTPSConnection("wso2.alquimiapay.com")
payload = 'id_cliente=12345&id_servicio=7&servicio=AT-T%20%2F%20Iusacell&id_producto=16&producto=Recarga%20%2410&tipo_front=1&tipo_referencia=a&monto_cobro=10.0&monto_comision=0.0&comision_proveedor=0.0&referencia=123456789&telefono=7291559953&concepto=prueba%20pago%20de%20serv.&cuenta_ahorro=1000000000000001&codigo_seguridad=1234&token=1234&tipo_cuenta=3'
headers = {
  'Authorization': 'Bearer {{token_Api_manager}}',
  'AuthorizationAlquimia': 'Bearer {{token_Alquimia}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/pagoservicios/1.0.0/v2/pago", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Respuesta:

{
"id_cliente": "2608454",
"id_servicio": "7",
"servicio": "AT-T / Iusacell",
"id_producto": "16",
"producto": "Recarga $10",
"tipo_front": "1",
"tipo_referencia": "a",
"monto_cobro": "10.0",
"monto_comision": "0.0",
"comision_proveedor": "0.0",
"referencia": "7291559953",
"telefono": "7291559953",
"concepto": "prueba devops",
"cuenta_ahorro": "1000000000000001",
"tipo_cuenta": "3",
"estatus_pago": 6,
"proveedor": "Gestopago",
"id_usuario": 12345,
"fecha_alta":{
"expression": "now()",
"params":[]
},
"fecha_actualizacion":{
"expression": "now()",
"params":[]
},
"id": 3893,
"id_instructor": 2608454,
"id_pago": null,
"autorizacion": "559572",
"folio_pago": "PPF2L20231227174519",
"mensaje_pago": "Operacion realizada con exito"
}

servicio que nos permite efectuar el pago del servicio seleccionado.

Https Request

POST /pagoservicios/1.0.0/v2/pago

Parametros

Parametro Tipo Descripción
id_cliente int id de cliente alquimia
id_servicio int id del servicio
servicio string nombre del proveedor
id_producto int id del producto
producto string nombre del producto
tipo_front int 1 cuando monto_cobro es el monto total del producto, 2 cuando monto_cobro es la comisión del producto
tipo_referencia string a= numero telefonico, difernete de a = referencia de servicio a pagar.
monto_cobro float monto del producto + monto de comisión dependiendo de tipo_front
monto_comision float monto de comisión dependiendo de tipo_front
comision_proveedor float siempre 0.0
referencia int referencia numérica que coloca el cliente
telefono int 10 dígitos
concepto string concepto del pago
cuenta_ahorro int número de cuenta Alquimia o tarjeta
codigo_seguridad int código de seguridad del cliente
token int token dinámico obtenido de la app Alquimiapay
tipo_cuenta int siempre 3 - para cuenta de ahorro

Errors

The Kittn API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The kitten requested is hidden for administrators only.
404 Not Found -- The specified kitten could not be found.
405 Method Not Allowed -- You tried to access a kitten with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The kitten requested has been removed from our servers.
418 I'm a teapot.
429 Too Many Requests -- You're requesting too many kittens! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.