SDK de NodeVista previa
Cliente para Node 20 y TypeScript.
Terminal
npm install @tinkay/sdkUso
TypeScript
import { Tinkay } from "@tinkay/sdk";const tinkay = new Tinkay({ apiKey: process.env.TINKAY_API_KEY! });const contact = await tinkay.contacts.create({ name: "Camila Rodríguez", email: "[email protected]", company: "Kipu Pagos",});await tinkay.tickets.create({ subject: "Error 500 al exportar", description: "Reportado desde el panel interno.", contact_id: contact.id, priority: "high",});for await (const c of tinkay.contacts.list()) { console.log(c.email);}Sin SDK
Mientras el paquete está en vista previa, un wrapper de veinte líneas alcanza.
tinkay.ts
const BASE = "https://api.tinkay.app/v1";async function request<T>(path: string, init: RequestInit = {}): Promise<T> { const res = await fetch(BASE + path, { ...init, headers: { Authorization: `Bearer ${process.env.TINKAY_API_KEY}`, "Content-Type": "application/json", ...init.headers, }, }); if (!res.ok) { const { error } = await res.json().catch(() => ({ error: { message: res.statusText } })); throw new Error(`Tinkay ${res.status}: ${error.message}`); } return res.json() as Promise<T>;}export const tinkay = { createContact: (body: { name: string; email: string; company?: string }) => request<{ data: { id: string } }>("/contacts", { method: "POST", body: JSON.stringify(body) }), createTicket: (body: { subject: string; description: string; contact_id: string; priority?: string }) => request<{ data: { id: string; number: number } }>("/tickets", { method: "POST", body: JSON.stringify(body) }),};