Most developers think about crypto payments as a checkout problem.

Generate an invoice.

Show a payment page.

Wait for a webhook.

Mark the order as paid.