Developers

Start with a link.
Grow to the API.

Accept payments from every country, get payouts in any currency — to any account, card or wallet. Take your first payment with a no-code link today; the full REST API is waiting when you outgrow it. Nothing gets rewritten along the way.

Sandbox is instant and free · live keys after a quick check
freeconomy.shop/p/8Qm2
Pixel Forge Games14:52 left
10 000
Waiting for payment…
Webhook delivered
payment.paid
Integration ladder

Four steps. One engine.

Integration is not a month of work. Start where it's easy, climb when the business asks for it — everything you build stays with you.

01Live

Payment link

Create a link in the dashboard and send it to the buyer — in a chat, an email or under a video. You can sell today.

0 lines of code
02Live

Dynamic QR

A fresh QR for every payment: the buyer scans and pays from their phone, the way they're used to. No frontend to host.

0 lines of code
03Soon

Embedded widget

checkout.js opens the payment right on your page — the buyer never leaves your site or game.

5 lines of code
04Live

REST API

Payments, payouts, balances and webhooks under your full control — host to host.

Full control

One engine underneath: same keys, same payments, same dashboard on every step. Climbing up never means rewriting.

Quickstart

A payment is one POST.

Amounts are integers in minor units, a retried request never creates a second payment, every webhook is signed. The things that usually hurt in payment APIs are already solved here.

  • No double charges

    Idempotency-Key on create and webhook dedup by event id: a retry returns the original result, never a new payment.

  • Not a cent is lost

    amountMinor is an integer count of the currency's minor units. No floats, no rounding: 1 000 000 = 10 000.00 ₽.

  • Webhooks you can trust

    Every delivery is signed — verify on the raw body. Duplicate and late events can't corrupt a payment's status.

  • Sandbox equals live

    Same request shape in both worlds. Debug on test keys, switch the key prefix — and you're taking real money.

POST /api/v1/payments
# create a payment — amount in integer minor units
curl https://app.freeconomy.shop/api/v1/payments \
  -H "Authorization: Bearer sk_test_9f2b…" \
  -H "Idempotency-Key: order_10482" \
  -H "Content-Type: application/json" \
  -d '{ "amountMinor": 1000000, "currency": "RUB", "method": "sbp" }'

# → 201 Created
{
  "id":          "pay_3Kd9…",
  "status":      "pending",
  "amountMinor": 1000000,
  "currency":    "RUB"
}

# the buyer pays → a signed webhook: payment.paid
REST API

Six endpoints do all the work.

The version lives in the path, so nothing breaks without your say-so. Bearer auth on every call, amounts in integer minor units.

Base URL https://app.freeconomy.shop/api/v1 · Authorization: Bearer sk_live_…
POST/payments

Create a payment. Idempotency-Key header required.

POST/payments/:id/qr

Issue the QR for a payment — show it to the buyer.

GET/payments

List payments with filters and cursor paging.

GET/payments/:id

One payment and its current status.

POST/payouts

Create a payout: the amount and where it goes — account, card or wallet.

GET/balances

Available and pending balance per currency.

Webhooks

Four events tell the whole story.

Each terminal has its own webhook URL and signing secret. Verify the signature on the raw body; the dashboard has a tester, one-click replay and a full delivery log.

payment.paid

Money received and confirmed.

payment.failed

Payment failed or expired unpaid.

payment.refunded

A confirmed payment was returned to the buyer.

payout.settled

Your payout reached its account, card or wallet.

Take your first payment today.

Sandbox keys are instant and free — no calls, no waiting. When you're ready for real money, the check takes a couple of minutes and a real person walks you through it.

Sandbox is instant · live keys after a quick check