Skip to main content
POST
/
payments
/
orders
import cobo_waas2
from cobo_waas2.models.create_payment_order_request import CreatePaymentOrderRequest
from cobo_waas2.models.order import Order
from cobo_waas2.rest import ApiException
from pprint import pprint

# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
    # Replace `<YOUR_PRIVATE_KEY>` with your private key
    api_private_key="<YOUR_PRIVATE_KEY>",
    # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
    host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = cobo_waas2.PaymentApi(api_client)
    create_payment_order_request = cobo_waas2.CreatePaymentOrderRequest(
        merchant_id="1001",
        token_id="ETH_USDT",
        order_amount="100.00",
        fee_amount="2.00",
        psp_order_code="P20240201001",
    )

    try:
        # Create pay-in order
        api_response = api_instance.create_payment_order(
            create_payment_order_request=create_payment_order_request
        )
        print("The response of PaymentApi->create_payment_order:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling PaymentApi->create_payment_order: %s\n" % e)

{
  "order_id": "5001",
  "merchant_id": "1001",
  "token_id": "ETH_USDT",
  "chain_id": "ETH",
  "payable_amount": "103.03",
  "receive_address": "0x1234567890abcdef1234567890abcdef12345678",
  "currency": "USD",
  "order_amount": "100.00",
  "fee_amount": "2.00",
  "exchange_rate": "0.99",
  "expired_at": 1711324800,
  "merchant_order_code": "M20240201001",
  "psp_order_code": "P20240201001",
  "status": "Pending",
  "received_token_amount": "103.0305",
  "created_timestamp": 1744689600,
  "updated_timestamp": 1744689600,
  "transactions": [
    {
      "tx_id": "tx_123e4567-e89b-12d3-a456-426614174003",
      "tx_hash": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
      "token_id": "ETH_USDT",
      "from_address": "0xF8e4bfc10A2821DF52D3322cB5170E5E9276b537",
      "to_address": "0x15B95A2D8af95D9F48148667B6b8B3CdF89e4F15",
      "amount": "0.15",
      "status": "Submitted",
      "created_timestamp": 1610445878970,
      "updated_timestamp": 1610445878970
    }
  ],
  "settlement_status": "Pending"
}
import cobo_waas2
from cobo_waas2.models.create_payment_order_request import CreatePaymentOrderRequest
from cobo_waas2.models.order import Order
from cobo_waas2.rest import ApiException
from pprint import pprint

# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
    # Replace `<YOUR_PRIVATE_KEY>` with your private key
    api_private_key="<YOUR_PRIVATE_KEY>",
    # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
    host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = cobo_waas2.PaymentApi(api_client)
    create_payment_order_request = cobo_waas2.CreatePaymentOrderRequest(
        merchant_id="1001",
        token_id="ETH_USDT",
        order_amount="100.00",
        fee_amount="2.00",
        psp_order_code="P20240201001",
    )

    try:
        # Create pay-in order
        api_response = api_instance.create_payment_order(
            create_payment_order_request=create_payment_order_request
        )
        print("The response of PaymentApi->create_payment_order:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling PaymentApi->create_payment_order: %s\n" % e)

Authorizations

BIZ-API-KEY
string
header
required

The API key. For more details, refer to API key.

In the API playground, enter your API secret, and your API key will be accordingly calculated.

Body

application/json

The request body to create a pay-in order.

merchant_id
string
required

The merchant ID.

Example:

"1001"

token_id
string
required

The ID of the cryptocurrency used for payment. Supported values:

  • USDC: ETH_USDC, ARBITRUM_USDCOIN, SOL_USDC, BASE_USDC, MATIC_USDC2, BSC_USDC
  • USDT: TRON_USDT, ETH_USDT, ARBITRUM_USDT, SOL_USDT, BASE_USDT, MATIC_USDT, BSC_USDT
Example:

"ETH_USDT"

order_amount
string
required

The base amount of the order, excluding the developer fee (specified in fee_amount), in the currency specified by currency. If currency is not specified, the amount is in the cryptocurrency specified by token_id.

Values must be greater than 0 and contain two decimal places.

Example:

"100.00"

fee_amount
string
required

The developer fee for the order, in the currency specified by currency. If currency is not specified, the fee is in the cryptocurrency specified by token_id.

If you are a merchant directly serving payers, set this field to 0. Developer fees are only relevant for platforms like payment service providers (PSPs) that charge fees to their downstream merchants.

The developer fee is added to the base amount (order_amount) to determine the final charge. For example:

  • Base amount (order_amount): "100.00"
  • Developer fee (fee_amount): "2.00"
  • Total charged to customer: "102.00"

Values can contain up to two decimal places.

Example:

"2.00"

psp_order_code
string
required

A unique reference code assigned by you as a developer to identify this order in your system. This code must be unique across all orders in your system. The code should have a maximum length of 128 characters.

Example:

"P20240201001"

currency
string
default:""

The fiat currency for the base order amount and the developer fee. Currently, only USD is supported.

If left empty, both order_amount and fee_amount will be denominated in the cryptocurrency specified by token_id

Example:

"USD"

merchant_order_code
string

A unique reference code assigned by the merchant to identify this order in their system. The code should have a maximum length of 128 characters.

Example:

"M20240201001"

expired_in
integer
default:1800

The number of seconds until the pay-in order expires, counted from when the request is sent. For example, if set to 1800, the order will expire in 30 minutes. Must be greater than zero and cannot exceed 3 hours (10800 seconds). After expiration:

  • The order status becomes final and cannot be changed
  • The received_token_amount field will no longer be updated
  • Funds received after expiration will be categorized as late payments and can only be settled from the developer balance.
  • A late payment will trigger a transactionLate webhook event.
Example:

1800

use_dedicated_address
boolean

This field has been deprecated.

Example:

false

custom_exchange_rate
string

A custom exchange rate that defines how much fiat currency equals 1 unit of cryptocurrency. If not provided, the system's default exchange rate will be used.

For example, if the fiat currency is USD and the cryptocurrency is USDT, setting custom_exchange_rate to "0.99" means that 1 USDT will be valued at 0.99 USD.

Example:

"1.00"

Response

The request was successful.

order_id
string
required

The order ID.

Example:

"5001"

token_id
string
required

The ID of the cryptocurrency used for payment. Supported tokens:

  • USDC: ETH_USDC, ARBITRUM_USDCOIN, SOL_USDC, BASE_USDC, MATIC_USDC2, BSC_USDC
  • USDT: TRON_USDT, ETH_USDT, ARBITRUM_USDT, SOL_USDT, BASE_USDT, MATIC_USDT, BSC_USDT
Example:

"ETH_USDT"

chain_id
string
required

The ID of the blockchain network where the payment transaction should be made. Supported chains:

  • USDC: ETH, ARBITRUM, SOL, BASE, MATIC, BSC
  • USDT: TRON, ETH, ARBITRUM, SOL, BASE, MATIC, BSC
Example:

"ETH"

payable_amount
string
required

The cryptocurrency amount to be paid for this order.

Example:

"103.03"

receive_address
string
required

The recipient wallet address to be used for the payment transaction.

Example:

"0x1234567890abcdef1234567890abcdef12345678"

currency
string
required

The fiat currency of the order.

Example:

"USD"

order_amount
string
required

The base amount of the order in fiat currency, excluding the developer fee (specified in fee_amount).

Example:

"100.00"

fee_amount
string
required

The developer fee for the order in fiat currency. It is added to the base amount (order_amount) to determine the final charge.

Example:

"2.00"

exchange_rate
string
required

The exchange rate between a currency pair. Expressed as the amount of fiat currency per one unit of cryptocurrency. For example, if the cryptocurrency is USDT and the fiat currency is USD, a rate of "0.99" means 1 USDT = 0.99 USD.

Example:

"0.99"

psp_order_code
string
required

A unique reference code assigned by the developer to identify this order in their system.

Example:

"P20240201001"

status
enum<string>
required

The current status of the pay-in order:

  • Pending: The order has been created and is awaiting payment. No incoming transaction has been detected.
  • Processing: An incoming transaction has been detected at the recipient address.
  • Completed: The payment has been fully received and is now complete.
  • Expired: The order has reached its expiration time without receiving any payment, or the order has been cancelled by the Update pay-in order operation.
  • Underpaid: The order has reached its expiration time. A payment was received but the amount is less than the order's required amount.
Available options:
Pending,
Processing,
Completed,
Expired,
Underpaid
Example:

"Pending"

received_token_amount
string
required

The total cryptocurrency amount received for this order. Updates until the expiration time. Precision matches the token standard (e.g., 6 decimals for USDT).

Example:

"103.0305"

merchant_id
string

The merchant ID.

Example:

"1001"

expired_at
integer

The expiration time of the pay-in order, represented as a UNIX timestamp in seconds.

Example:

1711324800

merchant_order_code
string

A unique reference code assigned by the merchant to identify this order in their system.

Example:

"M20240201001"

created_timestamp
integer

The creation time of the order, represented as a UNIX timestamp in seconds.

Example:

1744689600

updated_timestamp
integer

The last update time of the order, represented as a UNIX timestamp in seconds.

Example:

1744689600

transactions
object[]

An array of transactions associated with this pay-in order. Each transaction represents a separate blockchain operation related to the pay-in process.

settlement_status
enum<string>

The current status of a settlement.

  • Pending: The settlement has been created and is awaiting processing.
  • Processing: The settlement is being processed.
  • Completed: The funds have been successfully deposited into the bank account or the withdrawal crypto address.
  • PartiallyCompleted: Some settlement transactions have been completed successfully, while others have failed.
  • Failed: The settlement could not be completed due to an error.
Available options:
Pending,
Processing,
Completed,
PartiallyCompleted,
Failed
Example:

"Pending"