Vývojáři
Tři volání a webhook.
Gateway je hostovaný checkout, takže integrace je záměrně malá: vytvoříte objednávku, pošlete zákazníka na stránku a ověříte podepsaný výsledek. Vše níže je celé rozhraní, se kterým přijdete do styku. Platební UI, logiku metod, 3-D Secure, peněženky i účtenky tvoříme a udržujeme my.
Jak to vypadá
S čím se integrujete.
- REST přes HTTPS
- JSON na vstupu i výstupu
- API klíče typu Bearer
- Idempotency klíče
- Podepsané webhooky
- Ochrana proti replay útokům
- Testovací a produkční režim
- SDK pro iOS a Android
- Pluginy pro e-shopy
- Vestavěná pole
Rychlý start
Od nuly k zaplacené objednávce.
Celá úspěšná cesta. Částky jsou v nejmenších jednotkách měny, reference jsou vaše a na checkout URL přesměrujete zákazníka. Základní URL API dostanete spolu se sandbox klíči. Exportujte ji jako PROTOCORE_API_BASE a níže uvedená volání poběží přesně tak, jak jsou napsaná.
Vytvoření objednávky
Jedno volání s částkou, měnou a vaší vlastní referencí. Idempotency klíč si generujete sami. Opakovaný požadavek vrátí původní objednávku a nevytvoří druhou.
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"
}'Přesměrování zákazníka na checkout
Odpověď obsahuje checkout URL na vašem vlastním checkout hostu, tedy tom, který jste dostali se sandboxem, nebo na vaší doméně, jakmile ji na nás nasměrujete. Přesměrujte zákazníka na ni nebo ji otevřete v SDK. Na té stránce žijí platební metody, peněženky i 3-D Secure, takže na vaší straně není co stavět.
{
"id": "ord_2h4Kq9wRz",
"reference": "9F21-0716",
"amount": 4900,
"currency": "EUR",
"status": "pending",
"checkout_url": "https://<your-checkout-host>/c/2h4Kq9wRz"
}Ověření podepsaného výsledku
Po dokončení platby dorazí na váš endpoint podepsaná událost. Než čemukoli uvěříte, ověřte podpis pomocí webhook secretu a teprve pak objednávku vyřiďte podle reference, kterou už znáte.
{
"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" }
}
}Reference
Endpointy, které opravdu použijete.
V dokumentaci toho najdete víc, ale tohle je sada, kterou většina integrací nikdy nepřeroste.
Webhooky
O čem se dozví váš backend.
Každá událost nese referenci objednávky, kterou jste vytvořili, takže váš handler může být jen switch podle typu a vyhledání na vaší straně.
Zkontrolujte podpis dřív, než uvěříte tělu.
Každé doručení nese časové razítko a HMAC podpis surového těla. Porovnávejte v konstantním čase, odmítejte vše starší, než je vaše tolerance, a duplicitní id události berte jako již zpracované. Při odpovědi jiné než 2xx zkoušíme znovu, takže i váš handler by měl být idempotentní.
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;
}Záruky
Vlastnosti, na kterých můžete stavět.
Idempotentní vytváření
Každé vytvoření objednávky přijímá idempotency klíč. Opakovaný požadavek, ať po timeoutu, deployi nebo opětovném doručení z fronty, vrátí původní objednávku, místo aby strhl platbu dvakrát.
Podepsané události chráněné proti replay útokům
Webhooky nesou HMAC podpis s časovým razítkem a stabilní id události. Doručení se opakuje s backoffem, dokud váš endpoint neodpoví 2xx, takže okno deploye vás o platbu nepřipraví.
Jedna reference od začátku do konce
Reference, kterou zadáte při vytvoření, se objeví na checkoutu, účtence, webhooku, výplatě i u každé pozdější refundace. Nemusíte mapovat žádný druhý identifikátor mezi systémy.
Testovací režim běží stejným kódem
Testovací klíče spouští totožné toky nad testovacími relacemi. Co projde v testu, to půjde do ostrého provozu. Liší se jen klíče, které posíláte, ne endpointy, které voláte.
Testovací data
Jak vyzkoušet cesty, na kterých záleží.
Ke každé cestě níže patří testovací karta. Najdete ji spolu s klíči, jakmile vám vystavíme sandbox. Čísla jsou pro každý sandbox jiná a nezveřejňujeme je zde, aby zůstala správná i při změnách testovacích rozsahů karetních schémat. Chování je v obou případech deterministické: test si stejně snadno ověří zamítnutí jako úspěch.
Získejte klíče a začněte.
Sandbox obchodník s API klíči, webhook secrety a všemi zapnutými metodami — plus kompletní reference, aby váš tým mohl integrovat dřív, než se cokoli podepíše.