Crypto payments for online courses and education

Your best students are often the ones whose bank card will not go through — a developer abroad, a designer between countries, a family paying for tutoring across a border. Paysell lets them pay in USDT or TON and hands your platform a confirmed enrolment about a minute later.

  • USDT and TON on the TON network
  • Access granted on a signed webhook
  • Works for students whose cards decline
  • 0.2% per payment, no monthly fee

What usually goes wrong

The student is ready, the card is not

Cross-border education payments fail constantly: a card issued in one country, a school registered in another, a 3-D Secure prompt that never arrives. The student wants the course, has the money, and still sees a decline screen at the last step.

Disputes after the course is finished

A learner watches every module, then asks the bank for their money back. Proving delivery of a video lesson to an issuer is close to impossible, so the school refunds a course that was fully consumed and pays a dispute fee for the privilege.

Group and instalment payments turn into bookkeeping

Cohorts pay in tranches, parents pay for children, companies pay for three employees at once. Without per-order invoices, matching a transfer to a seat becomes a spreadsheet that a curator maintains between lessons.

Tutors have no infrastructure at all

An individual teacher rarely gets a merchant account, so lessons are paid by transfer to a personal wallet or card, without invoices, receipts or any automatic confirmation. Every no-show and every underpaid lesson becomes a personal conversation.

How Paysell helps

Open the course on `payment.credited`

Your LMS creates an invoice with its own order id — student, cohort, course — and waits for the signed webhook. Verify the HMAC signature and grant access. Retries continue for up to 24 hours, so a platform restart never leaves a paid student locked out.

One payment page for every channel

The hosted page shows a QR code and opens Tonkeeper or MyTonWallet directly, and the same link works on your site, in a Telegram bot, in a mini app or pasted into a chat with a private student. Nothing to build twice.

Enrolments that cannot be reversed

A confirmed transfer on the TON network cannot be recalled by a bank after the last module. Refunds stay a policy decision you make from your own balance, which means your refund window is the one written in your terms, not the one an issuer imposes.

Fees that leave the tuition intact

0.2% of the received payment, fixed when you register the store, with no setup fee and no monthly fee, and network fees on incoming payments paid by Paysell. Invoices run from 3 to 10,000 USDT or 0.1 to 7,000 TON, which covers a single lesson and a full-year programme alike.

Where it fits

Self-paced course enrolmentsCohort programmes and bootcamp seatsSingle lessons and tutoring packagesWebinars, intensives and workshopsCorporate seats bought in bulkMembership access to a learning community

Integration in minutes

Enrolment wired to a webhook

Create a store in the dashboard, take its API key, and call the invoice endpoint when a student clicks buy. Put the student and course ids in the order id field so the webhook tells you exactly which seat to open, and redirect to the returned payment page. If you sell without an LMS, generate the link manually in the dashboard and send it in a message — the flow is identical. Signature checks and event formats are documented.

Full API reference
Create an invoice for a course seat
curl -X POST https://paysell.me/api/merchant/v1/invoices \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"asset":"USDT_TON","amount":"25","order_id":"order-1042"}'
Cavab
{
  "invoice_id": "12c22c1a-a496-4c1e-abe3-72661ef8706e",
  "payment_url": "https://paysell.me/pay/12c22c1a-a496-4c1e-abe3-72661ef8706e",
  "asset": "USDT_TON",
  "amount": "25",
  "status": "pending",
  "expires_at": "2026-09-06T17:20:55Z"
}

Pricing at a glance

One rate for every payment, whatever you sell and wherever your customer is.

0.2%
per payment
0
setup and monthly fee
0.7 USDT / 0.52 TON
withdrawal fee
25 USDT / 19 TON
minimum withdrawal

Withdraw to any TON wallet in a couple of clicks from the dashboard.

Questions

Can I accept USDT for online courses?

Yes. Paysell accepts USDT and TON on the TON network, which is what most international students already hold. The money is credited in the coin they paid, because nothing is converted in transit. Coming next: Tron.

How does the student get access after paying?

Your platform waits for the signed `payment.credited` webhook and opens the course on that event. It carries the order id you supplied — typically the student and cohort — so granting access is a single lookup. Never open a course on a screenshot of a transfer.

How fast do I get paid?

A payment reaches your store balance roughly a minute after the student sends it: we wait for a masterchain block plus three confirmations and reconcile against an independent source before crediting. Moving the balance to your own wallet is a separate withdrawal request: it goes to your own wallet from the dashboard and passes automated anti-fraud checks before it is signed.

Can a student get a chargeback after finishing the course?

No. There is no chargeback mechanism on the TON network, so a completed payment stays completed. Refunds are handled through support rather than an API call, and if your policy grants one you can also send it yourself from your balance as a normal transfer — the decision belongs to your school rather than to a card issuer.

Do I need a company to sell courses this way?

Individual tutors and registered schools go through the same process. A store starts accepting payments as soon as you create it, and the store review runs in parallel to open withdrawals without holding up incoming payments. We may ask for verification, as any payment service does, depending on your volumes and category.

Can I take instalments or deposits for a programme?

Yes — issue a separate invoice for each tranche with its own order id, and let your platform decide what each payment unlocks. Invoices expire after two hours by default and can be set from one minute to 24 hours, and an underpaid invoice stays open a further 24 hours so a student can top it up.

What if a student pays more than the invoice?

The overpayment is credited to you in full — nothing is trimmed or held back. The invoice always shows the amount actually received, so your curator sees the real number when deciding whether to refund the difference or apply it to the next module.

Related solutions

Ready to take your first crypto payment?

Create an account, connect a store and issue your first invoice today — no setup fee, no waiting for approval.

Create an account