Skip to main content

KryptoGO Payment API (1.0.0)

Download OpenAPI specification:Download

Introduction

The KryptoGO Payment API allows organizations to seamlessly integrate cryptocurrency payments into their applications. Whether you're building a game, e-commerce platform, or any digital service, this API enables you to accept crypto payments and process withdrawals without managing complex blockchain infrastructure.

Typical Flow

  1. Payment Processing - When your user want to top up or make purchases, create a payment intent
  2. Status Monitoring - Track the status of payment intents, with updates via callback or polling
  3. Token Transfer - Use the Asset Pro Transfer API to transfer tokens to users when they want to withdraw funds

Use Cases

  • Gaming: Enable players to purchase in-game assets and withdraw earnings
  • E-commerce: Accept cryptocurrency payments for products and services
  • Digital Services: Offer subscription payments with crypto
  • Marketplaces: Facilitate buyer-seller transactions using blockchain technology
  • Loyalty Programs: Distribute rewards tokens to customers

Payment

Payment Intent API for creating and managing payment requests

Create payment intent

Create a new payment intent when a user wants to top up their account or make a purchase using cryptocurrency.

Authorizations:
StudioApiKey
header Parameters
X-Client-ID
required
string

OAuth client ID.

Please visit studio.kryptogo.com and register for your organization, and then go to Account Settings to find your OAuth Client ID.

Origin
required
string

Your application's domain

Request Body schema: application/json
required
fiat_amount
required
string

The amount in fiat currency

fiat_currency
required
string
Enum: "TWD" "USD"

The fiat currency code

callback_url
string

The URL to receive the payment result update

order_data
object

Arbitrary data about the order (e.g., order_id, item_id). Will be returned unaltered in callbacks. Max 1000 characters when marshalled.

group_key
string

A custom identifier for the payment intent, can be used to classify the payment intent.

Responses

Callbacks

Request samples

Content type
application/json
{
  • "fiat_amount": "300.0",
  • "fiat_currency": "TWD",
  • "callback_url": "https://example.com/callback",
  • "order_data": {
    },
  • "group_key": "buy_stone_with_usdt"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "data": {
    }
}

Callback payload samples

Callback
POST: Payment result update
Content type
application/json
{}

Get payment intent status

Check the current status of a specific payment intent.

Authorizations:
StudioApiKey
path Parameters
id
required
string

The payment intent ID

header Parameters
X-Client-ID
required
string

OAuth client ID.

Please visit studio.kryptogo.com and register for your organization, and then go to Account Settings to find your OAuth Client ID.

Origin
required
string

Your application's domain

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "data": {
    }
}

List payment intents for organization

Get all payment intents for your organization.

Authorizations:
StudioApiKey
query Parameters
page_number
integer
Default: 1

Page number for pagination

page_size
integer
Default: 10

Number of items per page

client_id
string

Filter by client ID

status
Array of strings
Items Enum: "pending" "success" "expired" "insufficient_not_refunded" "insufficient_refunded"

Filter by payment intent status. Multiple status values can be provided.

group_key
string

Filter by group key. Uses substring matching (fuzzy search) - will return results where group key contains this value.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "data": {
    }
}

Withdrawal

APIs for managing token transfers and supported tokens

Transfer tokens

Transfer tokens to a user's wallet when they want to withdraw funds from your application. This API can be used for game payouts, user withdrawals, or automated rewards distribution.

Example Use Cases:

  • Game rewards: Transfer USDT to players who earned tokens
  • User withdrawals: Allow users to withdraw their balance to external wallets
  • Automated payouts: Distribute earnings or rewards to multiple users

Complete Example Request:

{
  "chain_id": "arb",
  "contract_address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
  "amount": "50.0",
  "wallet_address": "0x3fE5aC82B997255b8226abb6aEfd91f405fe2e8e"
}

This example transfers 50 USDT on Arbitrum to the specified wallet address.

Authorizations:
StudioApiKey
Request Body schema: application/json
required
chain_id
required
string
Enum: "eth" "arb" "bsc" "matic" "btc" "sol" "tron"

The blockchain network identifier. Supported values:

  • "eth" - Ethereum Mainnet
  • "arb" - Arbitrum One
  • "bsc" - BNB Smart Chain
  • "matic" - Polygon
  • "btc" - Bitcoin
  • "sol" - Solana
  • "tron" - TRON
contract_address
required
string

The smart contract address of the token to transfer.

Common token examples:

  • USDT on Arbitrum: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
  • USDT on Ethereum: "0xdAC17F958D2ee523a2206206994597C13D831ec7"
  • USDC on Arbitrum: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
  • USDC on Ethereum: "0xA0b86a33E6441b8C4505B8C4505B8C4505B8C4505"

Note: For native tokens (ETH, BNB, MATIC, etc.), use the wrapped token contract address.

amount
required
string

The amount of tokens to transfer in human-readable format (not raw/wei amount).

Examples:

  • For USDT (6 decimals): "100.123456" means 100.123456 USDT
  • For ETH (18 decimals): "0.5" means 0.5 ETH
  • For tokens with different decimals, always use the human-readable amount

Important: This is NOT in USD value, but in the actual token amount.

wallet_address
required
string

The recipient's wallet address where tokens will be sent

Responses

Request samples

Content type
application/json
{
  • "chain_id": "arb",
  • "contract_address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
  • "amount": "100.123456",
  • "wallet_address": "0x3fE5aC82B997255b8226abb6aEfd91f405fe2e8e"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "data": {
    }
}