Razvijalci

Trije klici in webhook.

Gateway je gostovani checkout, zato je integracija namenoma majhna: ustvarite naročilo, stranko pošljete na stran, preverite podpisan rezultat. Spodaj je celotna površina — plačilni vmesnik, logika načinov plačila, 3-D Secure, denarnice in potrdila so naša skrb: mi jih gradimo in posodabljamo.

Zgradba

S čim se povezujete.

  • REST prek HTTPS
  • JSON noter, JSON ven
  • API ključi Bearer
  • Ključi idempotentnosti
  • Podpisani webhooki
  • Zaščita pred ponovitvijo (replay)
  • Testni in produkcijski način
  • SDK-ja za iOS in Android
  • Vtičniki za trgovine
  • Vgrajena polja

Hitri začetek

Od nič do plačanega naročila.

Celotna srečna pot. Zneski so v najmanjših enotah, reference so vaše, URL checkouta pa je naslov, kamor preusmerite stranko. Osnovni URL API-ja dobite skupaj s ključi za sandbox — izvozite ga kot PROTOCORE_API_BASE in spodnji klici delujejo natanko tako, kot so zapisani.

01

Ustvarite naročilo

En klic z zneskom, valuto in vašo lastno referenco. Ključ idempotentnosti generirate sami — ponovljena zahteva vrne prvotno naročilo, namesto da bi ustvarila drugo.

POST /v1/orders
curl -X POST "$PROTOCORE_API_BASE/v1/orders" \
  -H "Authorization: Bearer $PROTOCORE_API_KEY" \
  -H "Idempotency-Key: 9F21-0716" \
  -H "Content-Type: application/json" \
  -d '{
        "amount": 4900,
        "currency": "EUR",
        "reference": "9F21-0716",
        "line_items": [
          { "name": "Brand identity sprint", "amount": 3850 },
          { "name": "Typeface licensing",   "amount": 600 },
          { "name": "Rush delivery",        "amount": 400 }
        ],
        "return_url": "https://arcstudio.ro/thanks"
      }'
02

Stranko pošljite na checkout

Odgovor vsebuje URL checkouta na vašem checkout gostitelju — tistem, ki ste ga dobili s sandboxom, ali na vaši domeni, ko jo usmerite k nam. Preusmerite stranko nanj ali ga odprite v SDK-ju; na tej strani so načini plačila, denarnice in 3-D Secure, zato na vaši strani ni ničesar za graditi.

201 Created
{
  "id": "ord_2h4Kq9wRz",
  "reference": "9F21-0716",
  "amount": 4900,
  "currency": "EUR",
  "status": "pending",
  "checkout_url": "https://<your-checkout-host>/c/2h4Kq9wRz"
}
03

Preverite podpisan rezultat

Ko je plačilo zaključeno, na vašo končno točko prispe podpisan dogodek. Preden karkoli vzamete za resnično, preverite podpis z vašo skrivnostjo webhooka, nato izpolnite naročilo glede na referenco, ki jo že poznate.

POST /your/webhook — order.paid
{
  "type": "order.paid",
  "id": "evt_7Ka2Lm",
  "created": "2026-07-23T09:41:02Z",
  "data": {
    "id": "ord_2h4Kq9wRz",
    "reference": "9F21-0716",
    "amount": 4900,
    "currency": "EUR",
    "method": "usdc",
    "settlement": { "currency": "EUR", "amount": 4900, "rate": "0.9184" }
  }
}

Referenca

Končne točke, ki jih boste res uporabljali.

V dokumentaciji je več, a to je nabor, čez katerega večina integracij nikoli ne zraste.

POST /v1/orders
Ustvari naročilo in vrne URL njegovega checkouta. Sprejme ključ idempotentnosti.
GET /v1/orders/:id
Trenutno stanje naročila — status, način plačila, poravnava in vračila.
POST /v1/orders/:id/refunds
Vračilo za naročilo, polno ali delno, z obveznim razlogom.
POST /v1/orders/:id/void
Sprosti avtorizacijo pred poravnavo, tako da se denar sploh ne premakne.
POST /v1/links
Ustvari plačilno povezavo — enkratno ali zbirno, z izbirnim rokom veljavnosti.
GET /v1/payouts/:id
Paket poravnave in naročila, ki so ga financirala, s postavljenimi provizijami.
POST /v1/customers/:id/cards
Shrani kartico v trezor za plačila z enim klikom in ponavljajoča se plačila; vrne referenco žetona.
POST /v1/subscriptions
Bremeni shranjeno kartico po urniku; vsak cikel ustvari svoje naročilo.

Webhooki

O čem se sliši vaše zaledje.

Vsak dogodek nosi referenco naročila, ki ste jo ustvarili, zato je vaš handler lahko le switch po tipu in iskanje na vaši strani.

order.paid
Avtorizacija in zajem sta uspela — izpolnite naročilo glede na referenco.
order.failed
Plačilo ni bilo zaključeno, z razlogom, na podlagi katerega lahko operater ukrepa.
order.refunded
Vračilo je bilo izdano, polno ali delno, z razlogom in opombo.
order.disputed
Odprt je bil chargeback, z dokazi, ki so že priloženi naročilu.
payout.settled
Paket poravnave je odšel na vaš račun, s seznamom naročil zanj.
subscription.charged
Ponavljajoči se cikel je ustvaril svoje naročilo in potrdilo.
Preverjanje

Preverite podpis, preden zaupate telesu zahteve.

Vsaka dostava vsebuje časovni žig in podpis HMAC nad surovim telesom. Primerjajte v konstantnem času, zavrnite vse, kar je starejše od vašega okna tolerance, in podvojen id dogodka obravnavajte kot že obdelan — ob odgovorih, ki niso 2xx, poskusimo znova, zato naj bo idempotenten tudi vaš handler.

Node — preverjanje podpisa
import { createHmac, timingSafeEqual } from "node:crypto";

export function verify(rawBody, header, secret) {
  const [ts, sig] = header.split(",").map((p) => p.split("=")[1]);
  const expected = createHmac("sha256", secret)
    .update(`${ts}.${rawBody}`)
    .digest("hex");

  const a = Buffer.from(sig, "hex");
  const b = Buffer.from(expected, "hex");
  if (a.length !== b.length || !timingSafeEqual(a, b)) return false;

  // Reject replays outside a five-minute window.
  return Math.abs(Date.now() / 1000 - Number(ts)) < 300;
}

Jamstva

Lastnosti, na katere se lahko zanesete pri gradnji.

01

Idempotentno ustvarjanje

Vsako ustvarjanje naročila sprejme ključ idempotentnosti. Ponovljena zahteva — po časovni omejitvi, deployu ali ponovni dostavi iz vrste — vrne prvotno naročilo, namesto da bi bremenila dvakrat.

02

Podpisani dogodki z zaščito pred ponovitvijo

Webhooki nosijo podpis HMAC s časovnim žigom in stabilen id dogodka. Dostave se ponavljajo z umikom (backoff), dokler vaša končna točka ne odgovori z 2xx, zato okno deploya ne izgubi plačila.

03

Ena referenca, od začetka do konca

Referenca, ki jo podate ob ustvarjanju, se pojavi na checkoutu, potrdilu, webhooku, izplačilu in vseh poznejših vračilih. Drugega identifikatorja, ki bi ga morali preslikovati med sistemi, ni.

04

Testni način je ista koda

Testni ključi poganjajo enake tokove na testnih sejah. Kar gre skozi v testu, gre v produkcijo — razlika je v tem, katere ključe pošljete, ne katere končne točke kličete.

Testni podatki

Kako preizkusiti poti, ki štejejo.

Za vsako pot spodaj obstaja testna kartica, navedena skupaj z vašimi ključi ob izdaji sandboxa. Številke so za vsak sandbox posebej in tu niso objavljene, zato ostanejo pravilne, ko se testni razponi shem spremenijo. Obnašanje je v vsakem primeru determinističnog: test enako zlahka preveri zavrnitev kot uspeh.

Odobreno brez zapletov
Avtorizira in zajame brez izziva 3-D Secure — srečna pot.
Izziv 3-D Secure
Vsili izziv, ki ga lahko opravite, da preizkusite povratni korak.
Mehka zavrnitev
Zavrne zaradi premalo sredstev, nato poskusi znova po alternativni poti.
Trda zavrnitev
Trajno zavrne kot potekla kartica, brez ponovnega poskusa.
Testna omrežja USDC
Testni USDC na omrežjih Ethereum, Base in Solana, po fiksnem tečaju.
Simulacija nakazila
Testno nakazilo vIBAN označite kot prispelo, da se naročilo prestavi v status plačano.

Pridobite ključe in začnite.

Sandbox trgovec s ključi API, skrivnostmi webhookov in vklopljenimi vsemi metodami — plus celotna referenca, da lahko vaša ekipa integrira, še preden je karkoli podpisano.