Acepta pagos en USDT y USDC con una sola llamada a la API
Crea una solicitud de pago para un pedido o una factura, envía a tu cliente a una página de pago alojada o muestra la dirección en tu propio checkout, y recibe un webhook cuando se pague. Pagos en stablecoins en Ethereum, BNB Chain y Polygon, con precio en dólares.
- Una dirección nueva y una página de pago alojada para cada pedido
- USDT y USDC, con precio en dólares
- Un webhook en cuanto el pago se completa
- Request created
- Customer pays to the address
- Marked as paid
Una pasarela de pagos cripto para cobrar en stablecoins
Un pago único es una solicitud por un importe exacto: un pedido en tu tienda, una factura, una recarga. Cada solicitud recibe su propia dirección nueva, así que una transferencia a ella solo puede pertenecer a ese pago. Sin memos, sin conciliar por importe y sin revisar a mano un explorador de bloques.
Fijas el precio en dólares y eliges USDT o USDC y una red. Una stablecoin vale un dólar, así que el cliente envía exactamente el importe que pediste y el precio no cambia entre el checkout y la confirmación.
El pago empieza como pendiente y pasa a pagado cuando una transferencia lleva el importe completo a su dirección. Tu servidor se entera por un webhook, y la página de pago alojada se actualiza sola.
Qué te ofrece Pagos únicos
Una dirección única por pago
Cada solicitud recibe una dirección nueva, así cada transferencia entrante corresponde exactamente a un pedido o una factura.
Página de pago alojada
Una página de checkout lista muestra el importe, la dirección con código QR, la red y el tiempo restante, y confirma el pago por sí sola.
Precio en dólares
Fija el importe en dólares y cobra en USDT o USDC. Sin tipos de cambio que cotizar ni volatilidad que asumir.
Elige lo que recibes
Fija lo que paga el cliente, o lo que quieres recibir después de la comisión y deja que la API calcule el importe del cliente.
Webhooks de pago con reintentos
Tu servidor recibe un webhook cuando el pago se completa, con el importe recibido, la comisión y tu id de pedido.
Tu id de pedido adjunto
Envía tu propio id con la solicitud y recíbelo en la API y en el webhook, así un pago siempre corresponde a un pedido.
Cómo funciona
Del registro a la primera llamada en unos minutos.
- 1
Crea un proyecto One-Time Payments
Regístrate, abre el proyecto One-Time Payments en el panel y copia su clave de API.
- 2
Crea un pago para el pedido
Envía la red, USDT o USDC, el importe en dólares y tu id de pedido. Recibes el pago con su propia dirección.
- 3
Envía al cliente a pagar
Redirígelo a lirchain.com/pay/<id del pago> o muestra la dirección y el importe en tu propio checkout. El cliente tiene una hora para pagar.
- 4
Entrega el pedido cuando esté pagado
Cuando la transferencia se confirma, el pago pasa a pagado, el dinero está en tu saldo y se llama a tu webhook.
curl https://api.lirchain.com/merchant/one-time-payment/create \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"network": "polygon",
"asset": "USDT",
"amount": 49.5,
"external_id": "order-1042"
}'const API_KEY = "YOUR_API_KEY";
async function createPayment(params) {
const response = await fetch("https://api.lirchain.com/merchant/one-time-payment/create", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify(params),
});
if (!response.ok) {
throw new Error(`LirChain API ${response.status}: ${await response.text()}`);
}
return response.json();
}
const result = await createPayment({
network: "polygon",
asset: "USDT",
amount: 49.5,
external_id: "order-1042",
});const API_KEY = "YOUR_API_KEY";
type CreatePaymentParams = {
network: string;
asset: string;
amount?: number;
receive_amount?: number;
external_id?: string;
};
type CreatePaymentResult = {
id: string;
external_id: string | null;
network: string;
address: string;
asset: string;
amount: number;
pay_amount: number;
receive_amount: string;
status: string;
fee: string;
created_ms: number;
expire_ms: number;
};
async function createPayment(params: CreatePaymentParams): Promise<CreatePaymentResult> {
const response = await fetch("https://api.lirchain.com/merchant/one-time-payment/create", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify(params),
});
if (!response.ok) {
throw new Error(`LirChain API ${response.status}: ${await response.text()}`);
}
return response.json();
}
const result = await createPayment({
network: "polygon",
asset: "USDT",
amount: 49.5,
external_id: "order-1042",
});import requests
API_KEY = "YOUR_API_KEY"
def create_payment(**params):
response = requests.post(
"https://api.lirchain.com/merchant/one-time-payment/create",
headers={"x-api-key": API_KEY},
json=params,
timeout=30,
)
response.raise_for_status()
return response.json()
result = create_payment(
network="polygon",
asset="USDT",
amount=49.5,
external_id="order-1042",
)<?php
const API_KEY = "YOUR_API_KEY";
function create_payment(array $params): array
{
$curl = curl_init("https://api.lirchain.com/merchant/one-time-payment/create");
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($params),
CURLOPT_HTTPHEADER => ["x-api-key: " . API_KEY, "content-type: application/json"],
]);
$body = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($body === false || $status >= 400) {
throw new Exception("LirChain API $status: $body");
}
return json_decode($body, true);
}
$result = create_payment([
"network" => "polygon",
"asset" => "USDT",
"amount" => 49.5,
"external_id" => "order-1042",
]);package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
const apiKey = "YOUR_API_KEY"
func CreatePayment(params map[string]any) (map[string]any, error) {
body, err := json.Marshal(params)
if err != nil {
return nil, err
}
request, err := http.NewRequest("POST", "https://api.lirchain.com/merchant/one-time-payment/create", bytes.NewReader(body))
if err != nil {
return nil, err
}
request.Header.Set("x-api-key", apiKey)
request.Header.Set("content-type", "application/json")
response, err := http.DefaultClient.Do(request)
if err != nil {
return nil, err
}
defer response.Body.Close()
data, err := io.ReadAll(response.Body)
if err != nil {
return nil, err
}
if response.StatusCode >= 400 {
return nil, fmt.Errorf("LirChain API %d: %s", response.StatusCode, data)
}
var result map[string]any
return result, json.Unmarshal(data, &result)
}
func main() {
result, err := CreatePayment(map[string]any{
"network": "polygon",
"asset": "USDT",
"amount": 49.5,
"external_id": "order-1042",
})
fmt.Println(result, err)
}{
"id": "ccf1c790-9d3d-4cda-98a9-5cd590a102df",
"external_id": "order-1042",
"network": "polygon",
"address": "0x20d5b8802fc43b24cdbc9cdaa59dd6690626ad2c",
"asset": "USDT",
"amount": 49.5,
"pay_amount": 49.5,
"receive_amount": "49.2525",
"status": "pending",
"fee": "0",
"created_ms": 1791503932667,
"expire_ms": 1791507532667
}{
"type": "one-time-payment",
"payment": {
"id": "ccf1c790-9d3d-4cda-98a9-5cd590a102df",
"external_id": "order-1042",
"project_id": "3d6b1130-da92-4ddf-bad2-93f898993c39",
"network": "polygon",
"address": "0x20d5b8802fc43b24cdbc9cdaa59dd6690626ad2c",
"asset": "USDT",
"contract": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
"amount": 49.5,
"pay_amount": 49.5,
"receive_amount": "49.2525",
"received": "49.5",
"status": "paid",
"fee": "0.2475",
"created_ms": 1791503932667,
"expire_ms": 1791507532667
}
}Todos los endpoints y campos están en la referencia de la API de Pagos únicos (en inglés). ¿Usas un agente de programación? Dale lirchain.com/llms-full.txt y podrá escribir la integración por ti.
Redes y stablecoins para los pagos
Los pagos únicos se pagan en USDT o USDC. Eliges la red y la stablecoin de cada pago.
| Red | Monedas y tokens |
|---|---|
| Ethereum | USDTUSDC |
| BNB Chain | USDTUSDC |
| Polygon | USDTUSDC |
Para qué usan los equipos Pagos únicos
Tiendas online y checkout
Añade la opción de pagar con cripto a tu checkout: crea un pago por pedido y redirige al comprador a la página alojada.
Facturas
Cobra a tus clientes en USDT o USDC con un enlace de pago y ve cada factura pasar a pagada sin perseguir hashes de transacción.
Bienes digitales y SaaS
Entrega una licencia, una descarga o un periodo de suscripción automáticamente desde el webhook de pago.
Bots y mini apps
Vende acceso o créditos dentro de un bot de Telegram o Discord con una llamada a la API por compra.
Ventas internacionales
Recibe pagos en stablecoins de clientes de cualquier lugar, con el mismo flujo y la misma comisión para todos los países.
Servicios y reservas
Cobra una señal o el precio completo de una reserva y confírmala en cuanto el pago se complete.
Precios de Pagos únicos
Crear un pago es gratis. La comisión se cobra solo cuando se paga: el porcentaje de tu plan, como mínimo $0.10.
| Plan | Free | Starter | Business | Enterprise |
|---|---|---|---|---|
| Precio al mes | Gratis | $19.99 | $49.99 | $249.99 |
| Pagos cada 30 días | 100 | 10.000 | 200.000 | 10.000.000 |
| Comisión por pago cobrado | 1% | 0,5% | 0,375% | 0,25% |
Cada plan incluye los cuatro productos. Comparar los planes
Pagos únicos: preguntas y respuestas
- ¿Cómo acepto pagos en USDT en mi web?
- Crea un proyecto One-Time Payments y, para cada pedido, crea un pago por la API con su importe en dólares. Envía al cliente a la página de pago alojada o muestra la dirección en tu checkout, y entrega el pedido cuando llegue el webhook de pago.
- ¿Con qué stablecoins y redes pueden pagar los clientes?
- USDT y USDC en Ethereum (ERC-20), BNB Chain (BEP-20) y Polygon. Eliges la stablecoin y la red de cada pago.
- ¿Tengo que construir una página de pago?
- No. Cada pago tiene una página alojada en lirchain.com/pay/<id del pago> que muestra el importe, la dirección, un código QR y una cuenta atrás, y se actualiza sola cuando se recibe el pago. También puedes construir la tuya con la API.
- ¿Cómo sé que un pago en cripto se ha pagado?
- Configura una URL de webhook en el proyecto y se enviará un webhook one-time-payment cuando el pago pase a pagado. Si tu servidor no responde con un estado 2xx, el mismo webhook se vuelve a enviar cada minuto, hasta 20 veces, siempre con la misma cabecera x-webhook-id para que puedas ignorar uno que ya procesaste. También puedes leer el estado del pago por la API en cualquier momento.
- ¿Cuánto cuesta aceptar pagos en cripto?
- Crear un pago es gratis. Un pago cobrado cuesta el porcentaje de tu plan (1% en Free, 0,5% en Starter, 0,375% en Business, 0,25% en Enterprise), como mínimo $0.10. El plan Free incluye 100 pagos cada 30 días y Starter incluye 10.000.
- ¿Puedo fijar el importe que recibo después de la comisión?
- Sí. Envía receive_amount en lugar de amount y la API calcula lo que tiene que pagar el cliente para que recibas exactamente eso después de la comisión.
- ¿Cuánto tiempo tiene el cliente para pagar?
- Una hora desde que se crea el pago. La página de pago alojada muestra el tiempo restante.
Funciona con el resto de LirChain
Una cuenta, un saldo y una API para los cuatro productos.
Empieza gratis con Pagos únicos
Las cuentas nuevas empiezan en el plan Free, con todos los productos incluidos y sin tarjeta.