Autenticación

Cada petición se autentica con una API key de tu comercio. La llave identifica tu cuenta: todo lo que consultes o crees pertenece solo a ella.

Crear una llave

En el panel, entra a Desarrolladores → API keys y crea una. El secreto completo se muestra una sola vez: guárdalo en tu gestor de secretos o en las variables de entorno de tu servidor. Después solo verás el prefijo (tiptap_sk_a1b2c3d4••••••••1f2e).

Si la pierdes, revoca esa llave y crea otra. Revocar tiene efecto inmediato: las peticiones con esa llave empiezan a responder 401.

Mandar la llave

Usa el header Authorization con el esquema Bearer:

curl
curl https://go.paytiptap.com/api/v1/balance \
  -H "Authorization: Bearer tiptap_sk_TU_LLAVE"

También aceptamos el header X-Api-Key con la llave cruda, por si tu plataforma no te deja poner Authorization.

Node.js
const res = await fetch("https://go.paytiptap.com/api/v1/payment_links", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TIPTAP_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ title: "Orden #1042", amount: 25.0 }),
});

if (!res.ok) {
  const { error } = await res.json();
  throw new Error(`${error.code}: ${error.message}`);
}

const link = await res.json();
console.log(link.url);
PHP
$ch = curl_init("https://go.paytiptap.com/api/v1/payment_links");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . getenv("TIPTAP_API_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "title"  => "Orden #1042",
    "amount" => 25.00,
  ]),
]);
$link = json_decode(curl_exec($ch), true);
echo $link["url"];
Python
import os, requests

r = requests.post(
    "https://go.paytiptap.com/api/v1/payment_links",
    headers={"Authorization": f"Bearer {os.environ['TIPTAP_API_KEY']}"},
    json={"title": "Orden #1042", "amount": 25.00},
    timeout=20,
)
r.raise_for_status()
print(r.json()["url"])

La llave es secreta

Nunca la pongas en el navegador, en una app móvil ni en un repositorio público. Solo debe vivir en tu servidor. Cualquiera con la llave puede crear cobros a tu nombre y leer tus clientes.

Límite de peticiones

120 peticiones por minuto por llave. Si lo superas recibes 429 rate_limit_exceeded; espera unos segundos y reintenta con espera progresiva. Si necesitas más volumen, escríbenos.

Permisos

Todas las llaves tienen los mismos permisos sobre la cuenta que las emitió (no hay llaves de solo lectura todavía). Puedes tener hasta 10 activas: úsalas para separar ambientes o sistemas y así revocar uno sin tumbar los demás.