Playmos
Gamehub
Make yourself at home.

Sign in to your Playmos account.

For developers
and publishers
Developers Payments & verification
Documentation Payments & verification

Verify payments.

The chain determines settlement. Your backend determines whether the payment fulfills the intended purchase.

Payment lifecycle#

StatusWhat it means
createdAn intent exists. No settlement is proven.
pendingSettlement is in progress. Wait and verify the same ID.
confirmedThe service reports a confirmed payment. Inspect verification provenance.
failedThe attempt failed. Diagnose before creating a new purchase.

Verification provenance#

verifiedVia: 'chain' means the status was derived from chain verification. 'cache' is cached/offline information; 'degraded' means fresh chain verification is unavailable. Do not treat a degraded cached result as a fresh financial receipt.

IAP verification matches the payment’s on-chain event. Round admission checks the exact pool, round key and entrant identity. A transaction hash alone is not proof that the expected payment succeeded.

Grant once on your backend#

Keep sk_ keys server-side. Verify the ID under your studio, match player/SKU/amount and atomically deduplicate fulfillment. Webhooks use the same fulfillment record so a webhook and a manual verification cannot grant twice.

Recover from an interrupted request#

Persist the purchase key before sending. Retry the same purchase with the same key. After you know the payment ID, retry verify(id). A timeout or wallet cancellation is not a confirmed purchase.

Payment inputs#

FieldContract
amountDecimal string, positive and at most two decimal places. Public sandbox cap: 1.00 per request.
sku / playerIdRequired product and opaque player IDs. Match both during fulfillment.
gameIdUse game_sandbox_iap with the public sandbox key; your own key resolves studio-owned resources.
studioOptional recipient wallet; otherwise the service uses the key’s configured studio wallet.
idempotencyKeyPersist once per purchase; reuse on retry. Omitting it creates a new SDK-generated key per call.
metadataUp to 20 string key/value pairs. No secrets or authorization claims.

Payment and verification fields#

Payment includes ID, kind, status, amount/fee/net, chain and creation time. txHash is optional until there is a transaction. Entry-only split and roundKey are not part of the narrower VerifyResult. Verification may include identity, chainAmount and integer chainAmountMicro; splitBps is not a typed field on either result.

IAP charges 1% to Playmos. Read the receipt’s exact decimal fee/net; do not derive a ledger from rounded UI cents. Own-pool contests use their immutable series split. The legacy/shared-sandbox entry split is not your studio’s published take.

Keep buildingYour first payment