Referencia

Base https://api.tikipay.ar. Montos como string. Auth: Authorization: Bearer …. Las URLs que nos pases tienen que ser https. La pestaña Respuesta es el JSON HTTP. El SDK lo envuelve en { http, data }.

GET /v1/salud

Pública. No lleva key.

curl https://api.tikipay.ar/v1/salud
$ch = curl_init('https://api.tikipay.ar/v1/salud');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
const r = await fetch('https://api.tikipay.ar/v1/salud');
const data = await r.json();
HTTP/1.1 200 OK

{
  "ok": true,
  "name": "Tiki Pay",
  "version": "1"
}

GET /v1/cuenta

Quién sos y si ya podés cobrar.

curl https://api.tikipay.ar/v1/cuenta \
  -H "Authorization: Bearer tiki_test_xxx"
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->cuenta();
print_r($r['data']);
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const r = await tiki.cuenta();
console.log(r.data);
HTTP/1.1 200 OK

{
  "data": {
    "id": 1,
    "email": "comercio@ejemplo.com",
    "nombre": "Ana Pérez",
    "puede_cobrar": true
  }
}

GET /v1/cargos

Lo que te cobramos por medio: lo nuestro más el procesador, en un solo porcentaje.

curl https://api.tikipay.ar/v1/cargos \
  -H "Authorization: Bearer tiki_test_xxx"
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->cargos();
const r = await tiki.cargos();
HTTP/1.1 200 OK

{
  "data": [
    { "medio": "transferencia", "label": "Transferencia", "porcentaje": "0.3500" },
    { "medio": "qr", "label": "QR", "porcentaje": "0.8000" },
    { "medio": "debito", "label": "Débito", "porcentaje": "2.0000" },
    { "medio": "credito", "label": "Crédito", "porcentaje": "3.0000" },
    { "medio": "prepaga", "label": "Prepaga", "porcentaje": "2.0000" }
  ]
}

POST /v1/cobros

201. Te devolvemos el link en url. success_url y error_url, si las mandás, tienen que ser https.

CampoEnvío
conceptoTexto que ve quien paga
montoString decimal, ej. 15000.00
vencimientonoISO 8601. Si no va, 7 días
tarjeta / qr / transferencianoBoolean. Default true
referencianoTu id interno
success_url / error_urlnohttps solamente
curl -X POST https://api.tikipay.ar/v1/cobros \
  -H "Authorization: Bearer tiki_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "concepto": "Factura 1001",
    "monto": "15000.00",
    "vencimiento": "2026-10-01T18:00:00-03:00",
    "tarjeta": true,
    "qr": true,
    "transferencia": true,
    "referencia": "FAC-1001",
    "success_url": "https://tudominio.com/ok",
    "error_url": "https://tudominio.com/error"
  }'
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->crearCobro(array(
  'concepto' => 'Factura 1001',
  'monto' => '15000.00',
  'vencimiento' => '2026-10-01T18:00:00-03:00',
  'tarjeta' => true,
  'qr' => true,
  'transferencia' => true,
  'referencia' => 'FAC-1001',
  'success_url' => 'https://tudominio.com/ok',
  'error_url' => 'https://tudominio.com/error'
));
echo $r['data']['data']['url'];
const r = await tiki.crearCobro({
  concepto: 'Factura 1001',
  monto: '15000.00',
  vencimiento: '2026-10-01T18:00:00-03:00',
  tarjeta: true,
  qr: true,
  transferencia: true,
  referencia: 'FAC-1001',
  success_url: 'https://tudominio.com/ok',
  error_url: 'https://tudominio.com/error'
});
console.log(r.data.data.url);
HTTP/1.1 201 Created

{
  "data": {
    "id": 12,
    "codigo": "TKI1-AB12CD34",
    "concepto": "Factura 1001",
    "monto": "15000.00",
    "monto_cobrado": "0.00",
    "estado": "PENDIENTE",
    "url": "https://pagos.ejemplo.com/d/TKI1-AB12CD34",
    "cvu": null,
    "qr": null,
    "referencia": "FAC-1001",
    "medios": { "tarjeta": true, "qr": true, "transferencia": true },
    "vencimiento": "2026-10-01 18:00:00",
    "success_url": "https://tudominio.com/ok",
    "error_url": "https://tudominio.com/error",
    "created_at": "2026-09-11 20:00:00",
    "updated_at": "2026-09-11 20:00:00"
  }
}

El objeto cobro (crear, listar, ver, sync) siempre trae estos campos:

Campo
idEntero interno
codigoCódigo público del cobro
conceptoLo que ve quien paga
monto / monto_cobradoString decimal
estadoPENDIENTE, EN_PROCESO, PAGADA, PAGADA_PARCIALMENTE, CANCELADO, DEVUELTA, DEVUELTA_PARCIALMENTE
urlLink para pagar
cvu / qrPueden ir null hasta que estén listos
referenciaTu id, o null
mediostarjeta, qr, transferencia
vencimiento / success_url / error_urlPueden ir null
created_at / updated_atFecha local

GET /v1/cobros

Filtros: estado, q (código, concepto o tu referencia).

curl "https://api.tikipay.ar/v1/cobros?estado=PENDIENTE&q=FAC-1001" \
  -H "Authorization: Bearer tiki_test_xxx"
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->cobros(array('estado' => 'PENDIENTE', 'q' => 'FAC-1001'));
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const r = await tiki.cobros({ estado: 'PENDIENTE', q: 'FAC-1001' });
HTTP/1.1 200 OK

{
  "data": [
    {
      "id": 12,
      "codigo": "TKI1-AB12CD34",
      "concepto": "Factura 1001",
      "monto": "15000.00",
      "monto_cobrado": "0.00",
      "estado": "PENDIENTE",
      "url": "https://pagos.ejemplo.com/d/TKI1-AB12CD34",
      "cvu": null,
      "qr": null,
      "referencia": "FAC-1001",
      "medios": { "tarjeta": true, "qr": true, "transferencia": true },
      "vencimiento": "2026-10-01 18:00:00",
      "success_url": "https://tudominio.com/ok",
      "error_url": "https://tudominio.com/error",
      "created_at": "2026-09-11 20:00:00",
      "updated_at": "2026-09-11 20:00:00"
    }
  ]
}

GET /v1/cobros/{id}

curl https://api.tikipay.ar/v1/cobros/12 \
  -H "Authorization: Bearer tiki_test_xxx"
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->cobro(12);
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const r = await tiki.cobro(12);
HTTP/1.1 200 OK

{
  "data": {
    "id": 12,
    "codigo": "TKI1-AB12CD34",
    "concepto": "Factura 1001",
    "monto": "15000.00",
    "monto_cobrado": "15000.00",
    "estado": "PAGADA",
    "url": "https://pagos.ejemplo.com/d/TKI1-AB12CD34",
    "cvu": "0000003100010000000001",
    "qr": "000201010212...",
    "referencia": "FAC-1001",
    "medios": { "tarjeta": true, "qr": true, "transferencia": true },
    "vencimiento": "2026-10-01 18:00:00",
    "success_url": "https://tudominio.com/ok",
    "error_url": "https://tudominio.com/error",
    "created_at": "2026-09-11 20:00:00",
    "updated_at": "2026-09-11 20:05:00"
  }
}

POST /v1/cobros/{id}/sync

Pide el estado actualizado del cobro.

curl -X POST https://api.tikipay.ar/v1/cobros/12/sync \
  -H "Authorization: Bearer tiki_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{}'
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->syncCobro(12);
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const r = await tiki.syncCobro(12);
HTTP/1.1 200 OK

{
  "data": {
    "id": 12,
    "codigo": "TKI1-AB12CD34",
    "concepto": "Factura 1001",
    "monto": "15000.00",
    "monto_cobrado": "15000.00",
    "estado": "PAGADA",
    "url": "https://pagos.ejemplo.com/d/TKI1-AB12CD34",
    "cvu": "0000003100010000000001",
    "qr": "000201010212...",
    "referencia": "FAC-1001",
    "medios": { "tarjeta": true, "qr": true, "transferencia": true },
    "vencimiento": "2026-10-01 18:00:00",
    "success_url": "https://tudominio.com/ok",
    "error_url": "https://tudominio.com/error",
    "created_at": "2026-09-11 20:00:00",
    "updated_at": "2026-09-11 20:05:00"
  }
}

POST /v1/cobros/{id}/devoluciones

201. El cobro tiene que estar acreditado. transaccion_id es opcional.

curl -X POST https://api.tikipay.ar/v1/cobros/12/devoluciones \
  -H "Authorization: Bearer tiki_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "monto": "1000.00",
    "transaccion_id": null
  }'
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->devolver(12, '1000.00', null);
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const r = await tiki.devolver(12, '1000.00');
HTTP/1.1 201 Created

{
  "data": {
    "id": 3,
    "cobro_id": 12,
    "monto": "1000.00",
    "tipo": "parcial",
    "estado": "DEVUELTA_PARCIALMENTE",
    "created_at": "2026-09-11 20:10:00"
  }
}

Transacciones

GET /v1/transacciones y GET /v1/transacciones/{id}. Filtros: medio (qr, transferencia, debito, credito, prepaga), estado (ACREDITADO, RECHAZADO). te_cobramos es el costo real. te_queda es lo que se acredita.

curl "https://api.tikipay.ar/v1/transacciones?medio=qr&estado=ACREDITADO" \
  -H "Authorization: Bearer tiki_test_xxx"

curl https://api.tikipay.ar/v1/transacciones/88 \
  -H "Authorization: Bearer tiki_test_xxx"
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$lista = $tiki->transacciones(array('medio' => 'qr', 'estado' => 'ACREDITADO'));
$una = $tiki->transaccion(88);
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const lista = await tiki.transacciones({ medio: 'qr', estado: 'ACREDITADO' });
const una = await tiki.transaccion(88);
HTTP/1.1 200 OK

{
  "data": {
    "id": 88,
    "cobro_id": 12,
    "medio": "qr",
    "monto": "15000.00",
    "te_cobramos": "120.00",
    "te_queda": "14880.00",
    "estado": "ACREDITADO",
    "codigo": "OP-998877",
    "fecha": "2026-09-11 20:05:00",
    "acreditacion": "2026-09-12 18:00:00"
  }
}

// GET /v1/transacciones devuelve el mismo objeto dentro de un array:
{ "data": [ { … } ] }

Devoluciones

GET /v1/devoluciones y GET /v1/devoluciones/{id}.

curl https://api.tikipay.ar/v1/devoluciones \
  -H "Authorization: Bearer tiki_test_xxx"

curl https://api.tikipay.ar/v1/devoluciones/3 \
  -H "Authorization: Bearer tiki_test_xxx"
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$lista = $tiki->devoluciones();
$una = $tiki->devolucion(3);
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const lista = await tiki.devoluciones();
const una = await tiki.devolucion(3);
HTTP/1.1 200 OK

{
  "data": {
    "id": 3,
    "cobro_id": 12,
    "monto": "1000.00",
    "tipo": "parcial",
    "estado": "DEVUELTA_PARCIALMENTE",
    "created_at": "2026-09-11 20:10:00"
  }
}

// GET /v1/devoluciones: { "data": [ { … } ] }

GET /v1/liquidaciones

Estimado de cuándo te llega cada pago.

curl https://api.tikipay.ar/v1/liquidaciones \
  -H "Authorization: Bearer tiki_test_xxx"
require 'Tiki.php';
$tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
$r = $tiki->liquidaciones();
const tiki = new TikiPay('tiki_test_xxx', 'https://api.tikipay.ar');
const r = await tiki.liquidaciones();
HTTP/1.1 200 OK

{
  "data": [
    {
      "id": 5,
      "transaccion_id": 88,
      "cobro_id": 12,
      "bruto": "15000.00",
      "te_cobramos": "120.00",
      "te_queda": "14880.00",
      "fecha_operacion": "2026-09-11 20:05:00",
      "fecha_estimada": "2026-09-12 18:00:00",
      "estado": "estimado"
    }
  ]
}