Play your partSUPPORTLOGINGET STARTED →
EXPLOREWHY GRAJAGENTSLEARNFEESPIONEER
GETREADYANDJUMP.COM · BUILT IN DETROIT
SDK

WHAT THE SDK
WILL COVER.

Being built

The interesting question about an SDK for a commerce platform is not which language it is in — it is which invariants it enforces for you, so that an integration cannot make the mistakes GRAJ works hard to prevent.

What to know
Money handling belongs in the library
Every amount in minor units, never a float, and never a client-computed total sent to a server that trusts it. A library that makes the wrong thing hard to type prevents a class of bug that documentation never will.
Errors that can be acted on
A rejected write should say which field, which constraint and what to do — not return a database message. That is the difference between an integration somebody finishes and one they abandon at the second wall.
Idempotency by default
A client library should make a retried mutation safe without anybody thinking about it, because the developer who forgets is not being careless — they are being human at the end of a long day.
Status
Designed, not published. The design principles are recorded here so they can be argued with before any code is written, which is the cheapest moment to change them.
Where to go next
GRAJ

READY TO
RUN YOUR GAME ON GRAJ.

Free to join. Participants keep 95% of every transaction; GRAJ takes 5%. Built for 195 countries — payments live in the United States.