Skip to content
Creative Payments

Take bank and coin payments.

A hosted checkout, a clean API and payouts in LTC or BTC, for people who sell their own SaaS. Mollie takes the bank methods, CoinGate and BTCPay Server the coins.

Fee calculator

Example

From 1.00 to 100,000.00. Type a price or drag the slider.

Buyer pays
EUR 49.00
Fee example: 1.9% + EUR 0.20
EUR 1.13
Network fee LTC
EUR 0.08

You receive

EUR 47.79

Paid out as

0.59737500 LTC

USDT on Tron payouts: coming soon.

Example numbers only. Your own fee is set by the operator for each account. The network fee and the coin rate are not live. Example rate: 1 LTC = EUR 80.00.

Three providers behind one checkout.

  • MollieBank methods such as iDEAL and Bancontact
  • CoinGateCrypto, the coins it supports
  • BTCPay ServerBitcoin, Litecoin and the payouts

Three moves, from account to payout.

  1. Get your account

    Access is by request. The operator creates your account, sets your fee and your payout coins, and sends you an invite. You create test and live API keys in your dashboard.

  2. Send buyers to the hosted checkout

    Create a payment with one API call and send the buyer to the link you get back. They choose a method the operator has switched on for you, a bank method or a coin, and the page takes them through paying.

  3. A payout for each payment

    Each confirmed payment creates a payout of its own: the price minus the fee and the network fee, in LTC or BTC, to the address you saved. A payout can be held and then goes out by itself once that is resolved. Signed webhooks tell your server when a payment is paid, fails or expires, and when a payout is sent or fails.

A fee on each payment.

Your account

The operator’s provider accounts take the payments, so there is nothing for you to connect. The hosted checkout and a dashboard come with the account; in the dashboard you create test and live API keys.

  • A percentage plus a fixed amount on each payment, in the currency of the payment. Example: 1.9% + EUR 0.20.
  • Each confirmed payment creates a payout of its own, in LTC or BTC, to the address you saved. The network fee comes out of the payout. A payout can be held and then goes out by itself once that is resolved.
  • Methods that a buyer can reverse after paying are never switched on for your account.
  • You set the price of each payment in EUR or USD.

1.9% + EUR 0.20per payment, example only

Set by the operator

The operator decides these when your account is created, and can change them later.

  • Your fee. It is set for each account, so the example on this page may not be yours.
  • Which payout coins are on for you: LTC and BTC. You pick one of them, and save its address, in your dashboard. USDT on Tron: coming soon.
  • The payment methods your buyers see.
  • Whether payouts are paused for your account.

Request access

One request in. One signed webhook out.

  • A REST API with an OpenAPI file. Read the OpenAPI file and generate a client in any language.
  • Test and live API keys. A test key never moves real money.
  • Idempotency keys. For 24 hours, the same key gets the stored response back, not a second payment. The same key with a different request body is rejected with a 422.
  • Signed webhooks. Every delivery carries an HMAC signature, is retried with backoff, and is listed in your dashboard.

POST /api/v1/payments

curl https://payments.kewaii.com/api/v1/payments \
  -H "Authorization: Bearer cp_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1049-attempt-1" \
  -d '{
    "amount": "49.00",
    "currency": "EUR",
    "description": "Order 1049",
    "return_url": "https://shop.example/thanks",
    "metadata": {
      "order_id": "1049"
    }
  }'

# 201 Created
{
  "id": "pay_k4q7m2x9v8c1b5n3z6d0f2gh",
  "object": "payment",
  "status": "created",
  "amount": "49.00",
  "currency": "EUR",
  "fee": "1.13",
  "description": "Order 1049",
  "metadata": {
    "order_id": "1049"
  },
  "checkout_url": "https://payments.kewaii.com/pay/3vQB7B6MrGQHehYtG8JNQSjQdXbNUjpkLUWGDKvvQdk",
  "livemode": false,
  "method": null,
  "created": "2026-11-06T12:00:00.000Z",
  "expires_at": "2026-11-07T12:00:00.000Z",
  "paid_at": null
}

Sent to your webhook endpoint

POST /your/webhook-path HTTP/1.1
Content-Type: application/json
User-Agent: CreativePayments-Webhooks/1
CP-Event-Id: evt_3f2a9c0d81b4e6f70a1c2d3e
CP-Signature: t=1793966400,v1=af2bdbe1aa9b6ec1e2ade1d694f41fc71a831d0268e9891562113d8a62add1bf

{
  "id": "evt_3f2a9c0d81b4e6f70a1c2d3e",
  "type": "payment.paid",
  "created": 1793966400,
  "livemode": false,
  "data": {
    "id": "pay_k4q7m2x9v8c1b5n3z6d0f2gh",
    "status": "paid",
    "amount": "49.00",
    "currency": "EUR",
    "description": "Order 1049",
    "metadata": {
      "order_id": "1049"
    },
    "paidAt": "2026-11-06T12:00:00.000Z"
  }
}

Sample requests. The host, key, ids and signature are placeholders.

Coins in. Coins out.

Buyers pay with the bank methods and coins the operator switches on for you. Your payouts are made in LTC or BTC, to the address you saved.

  • BTCPayouts to your address. Buyers can pay with it when the operator has it switched on.
  • LTCPayouts to your address. Buyers can pay with it when the operator has it switched on.
  • USDTBuyers can pay with USDT on Tron when the operator has it switched on. USDT payouts: Coming soon
  • +Other coins through CoinGate, as the operator turns them on. Your payout is still made in LTC or BTC.

The operator chooses which payout coins are on for you. A payout can be held, for example while the operator tops up the payout wallet, when no payout address is saved, or when payouts are paused for the account. A held payout goes out by itself once that is resolved. Your dashboard shows each payout with its status, and what to do when one is held.

Straight answers

Can buyers pay by card?

Card payments from the card networks are not offered. A buyer can reverse them after paying, and methods like that are never switched on for your account. Buyers pay with the bank methods and coins the operator has turned on for you.

What does it cost?

A fee on each payment, set by the operator for each account: a percentage plus a fixed amount in the currency of the payment. The example on this page is 1.9% plus EUR 0.20. Your own rate is set when your account is created, so it may differ.

How do payouts work?

Each confirmed payment creates a payout of its own, in LTC or BTC, to the address you saved in your dashboard. The operator chooses which of the two are on for you, and the network fee comes out of the payout. Buyers can pay with USDT on Tron when the operator has it switched on, but USDT payouts are coming soon. A payout can be held, for example while the operator tops up the payout wallet, when no payout address is saved, or when payouts are paused for the account. A held payout goes out by itself once that is resolved. Your dashboard shows each payout with its status, and what to do when one is held.

Which currencies can I price in?

EUR and USD. You set the price of each payment in one of them, and the buyer pays in a method the operator has switched on.

Is there a test mode?

Yes. You can create a test API key and a live one in your dashboard. A test key creates test payments and no real money moves; the two modes never see each other’s payments.

Can buyers pay with a coin you do not list?

Bitcoin and Litecoin can be offered directly, and CoinGate adds other coins it supports. Both depend on what the operator has turned on for you. Your payout is still made in LTC or BTC.

How do I get an account?

Accounts are created by the operator. Send your work email in the box below: your request goes to the operator, and an account exists only once the operator has created it. The operator then sends you an invite to set your password.

Ask for access.

Access is by request. Your request is sent to the operator, and an account is created by the operator after they review it. No account exists until then.