Quick Start
Start accepting crypto payments in minutes
Introduction
In this quick start guide, we'll walk you through the concepts you need to understand, and the steps to start accepting cryptocurrency payments.
By the end of this guide, you'll have a payment flow and notification channel up and running.
Concepts
API keys
API keys are used to authenticate requests to our application programming interface (API) on behalf of your account.
They should be kept secret, as they provide access to portions of your account.
You can create and manage API keys here.
Scopes
API keys can be created with different levels of permission, known as scopes.
Select the minimum scope necessary for your use case.
| Scope | Description |
|---|---|
| Read analytics | Allows read-only access to analytics data. |
| Automate payments | Allows creating invoices and receiving payment events. |
| Full control | Allows full access to your account, including creating and managing API keys and notifications. |
When you create an API key, you will be shown the key value only once. Be sure to copy it and store it securely.
Usage
When you see <API Key> in our API documentation, replace it with your actual API key.
Security practices
If you believe an API key has been compromised, you can delete it and create a new one.
See Manage API Keys.
Invoices
An invoice represents a request for payment. It contains information about the amount to be paid, the currency, and other metadata.
See how to create an invoice with the API.
Request example
{
"amount": 25.00,
"fiat_currency": "USD",
"invoice_title": "Order #12345",
"invoice_message": "Delivery within 3-5 business days."
}See all invoice request fields.
When you create an invoice, our system generates a unique URL that you can share with your customers. This URL leads to a checkout page where they can complete the payment.
Response body
{
"success": true,
"invoice": {
"id": 12345,
"share_token": "<Share Token>",
"created_at": "2025-11-11T11:11:00.000Z",
"pay_url": "https://point-of-sale-domain/pay-invoice?share_token=<Share Token>"
}
}An invoice can reference one payment at a time. It is possible a payment spawned from an invoice may fail, in which case the invoice will return to an unpaid state and can be paid again.
This makes the task of tracking payments easier, as you can always refer to the invoice by ID to see the current status of most recent payment attempt.
Once an invoice is paid successfully, it is locked from the customer, cannot return to unpaid status, and additional payments cannot be created by its checkout page.
When you create an invoice, you should store the invoice ID alongside your order or transaction in your own system, so products or services can be delivered in response to updates received from notification channels.
Service notifications
Payment events
Payment events are notifications sent to your application.
Some examples of when you might receive a payment event:
- When a payment is detected by a node
- When it's confirmed enough times to be considered permanent
- When a payment fails
Example Event Payload
{
"event": "payment_confirmed",
"invoice_id": "12345",
"status": "Paid",
"payment_id": "6789"
}Event payloads contain information about the event, such as the type of event, invoice ID, and any relevant data.
Notifications
Notification channels are how you receive notifications when events occur.
There are several types, and their availabilities vary according to your subscription plan.
Types of channels
| Type | Behavior | Availability |
|---|---|---|
| Webhook | Receive via HTTP POST request | Free |
| Stream Consumer | Receive as an HTTP Server-Sent-Event | Pro & Business |
| Websocket | Receive as a websocket message | Business |
The standard and free notification channel is the Webhook.
A webhook sends an HTTP request to your server at the URL you specify containing the event payload.
See Create a webhook.
Learn more about webhooks.
Once you have a webhook set up, you can start receiving payment events to your application.