Refira / Developers

Built to be built on.

Everything the console does, your code can do. A tenant-scoped REST API, publishable and secret keys, and signed webhooks for every state change. Real endpoints, real payloads.

/v1 RESTpk_live_sk_live_whsec_refira-signature
/01

Authentication

Two keys per tenant. The publishable key is safe in the browser. The secret key is server-only, shown once, and revocable. Requests are authenticated with a bearer secret key and scoped to your tenant.

keys
# publishable - browser-safe
pk_live_1dac0336c6c701bce05d18b3

# secret - server only, shown once, revocable
sk_live_...  # send as: authorization: Bearer sk_live_...
/02

REST API

Base URL is your Refira origin plus /v1. Every route is tenant-scoped by the key and rate-limited.

GET /v1/pingauth check, returns your tenant
GET /v1/walletslist treasury and partner wallets
GET /v1/payoutslist payouts with receipts
POST /v1/payoutscreate a payout for a partner
/03

Create a payout

Refira computes the 0.1 percent fee, applies your policy and risk gate, and returns the record. Execution is idempotent on the payout id.

POST /v1/payouts
curl https://refira.gg/v1/payouts \
  -H "authorization: Bearer sk_live_..." \
  -d partnerId="acct_4821" \
  -d amountUsd=7853.00 \
  -d period="2026-08"

# 200
{ "id": "po_9f2a",
  "status": "READY",
  "feeUsdc": "7.86",
  "netUsdc": "7845.14",
  "chainId": "base" }
/04

Webhooks

Signed with a per-tenant secret. Verify the refira-signature header before trusting a delivery. Every delivery is logged, and you can send a test event from the console.

delivery
# header
refira-signature: t=1723_,v1=<hmac-sha256>

# body
{ "type": "payout.paid",
  "data": { "payoutId": "po_9f2a",
    "txHash": "0x84f2...c1",
    "network": "base",
    "netUsdc": "7845.14" } }
/05

Events

Emitted from the payment engine as state changes.

payout.createda payout was created (READY, review, or held)
payout.paidconfirmed on-chain, with the tx hash
payout.failedreverted or failed to broadcast
fraud.flaggedrisk held a payout before it was payable
/06

Tenancy

Every key belongs to one tenant. All reads and writes are scoped to that tenant's namespace, so your key can never touch another operator's data. Rate limits are fail-closed on money operations.

Ready

Get your keys and ship.

Book a demo ->