Nyaur Docs

SDK TypeScript

Memasang dan memakai @nyaur/sdk, client bertipe untuk REST API /v1.

@nyaur/sdk adalah client TypeScript untuk API /v1. Tanpa dependency runtime, berjalan di Node 18+, Bun, Deno, Cloudflare Workers, dan browser (tetap simpan token di server).

Instalasi

bun add @nyaur/sdk
# atau
npm install @nyaur/sdk

Quickstart

import { createClient, NyaurApiError } from "@nyaur/sdk";

const nyaur = createClient({
  baseUrl: "https://api.nyaur.id",
  token: process.env.NYAUR_TOKEN!,
});

const product = await nyaur.products.create({
  name: "Kelas Copywriting",
  status: "active",
  prices: [{ type: "fixed", amount: 250_000, recurring: "one_time" }],
});

const checkout = await nyaur.checkouts.create({
  productId: product.id,
  customerEmail: "pembeli@example.com",
  locale: "id",
});
console.log(checkout.total); // rupiah bulat, sudah termasuk PPN

try {
  await nyaur.orders.get("ord_tidak_ada");
} catch (error) {
  if (error instanceof NyaurApiError) {
    console.error(error.status, error.type, error.message);
  }
}

Resource

ResourceMethod
productslist, create, get, update, remove (mengarsipkan)
checkoutscreate, get
orderslist, get
customerslist, create, get
webhookslist, create, get, update, remove, deliveries, process
eventslist, replay
deliveriesreplay
tokenscreate, list, revoke

Method list menerima { limit, offset } dan mengembalikan { data, meta }. Method lain mengembalikan objeknya langsung.

Webhook

const endpoint = await nyaur.webhooks.create({
  url: "https://contoh.id/webhooks/nyaur",
  events: ["checkout.paid", "order.paid"],
});
console.log(endpoint.secret); // nyaur_whsec_..., hanya muncul sekali

SDK tidak memverifikasi tanda tangan. Pakai contoh di Webhooks.

Error

Respons non-2xx melempar NyaurApiError dengan status, type, dan message. Pada 429, tunggu sesuai header Retry-After. Batas: 300 permintaan per menit per organisasi.

Mode

Mode (sandbox atau live) mengikuti token. Lihat Sandbox vs live.

Mock fetch

Opsi fetch memungkinkan menyuntikkan implementasi sendiri, misalnya untuk tes:

const nyaur = createClient({
  baseUrl: "https://api.nyaur.id",
  token: "nyaur_oat_test",
  fetch: async () =>
    new Response(JSON.stringify({ data: { id: "prd_1" } }), { status: 200 }),
});

On this page