Skip to main content
POST
Create Payment

Authorizations

Authorization
string
header
required

Server API Key (format: {keyId}:{secret})

Body

application/json
userId
string
required

User ID

transactionId
string
required

Unique transaction ID (provided by platform)

productId
string
required

Product ID

amount
number
required

Payment amount

Required range: x >= 0.01
currency
string
required

Currency code (ISO 4217, required)

  • USD, KRW recommended
  • e.g., USD, KRW, JPY, EUR
Pattern: ^[A-Z]{3}$
platform
enum<string>
required

Payment platform

Available options:
iOS,
Android,
Web,
Roblox,
Other
productName
string

Product name (optional)

distributionType
enum<string>

Distribution type (optional, determines store fee):

  • MOBILE_STORE: Mobile external store (Google Play, App Store) - 30%
  • PC_STORE: PC external store (Steam, etc.) - 30%
  • MOBILE_SELF_STORE: Mobile self-payment - 0%
  • PC_SELF_STORE: PC self-store - 0%

When omitted, it is inferred from platform: iOS/AndroidMOBILE_STORE, WebPC_SELF_STORE, Roblox/OtherPC_STORE. Send it explicitly whenever the inferred value would be wrong for your build.

Available options:
MOBILE_STORE,
MOBILE_SELF_STORE,
PC_STORE,
PC_SELF_STORE
purchasedAt
string<date-time>

Payment time (ISO 8601 UTC format, optional)

  • Format: YYYY-MM-DDTHH:mm:ss.sssZ
  • Example: 2024-01-15T10:30:00.000Z
  • When omitted, the server records the time it received the request

Settlement is always attributed to the moment the SDK API recorded the payment, so call the API as soon as the payment completes.

netAmount
number

Net amount after store fees (optional)

Required range: x >= 0.01
netCurrency
string

Currency of netAmount (ISO 4217, optional)

Pattern: ^[A-Z]{3}$
callbackId
string

Webhook tracking ID (included in webhook events triggered by this request)

isTest
boolean
default:false

Test mode (does not create actual data)

Response

Success

data
object
required