En esta página
Listar
Recorre tus canales de pago de más nuevo a más antiguo con paginación por cursor y filtra por proyecto, estado o tu propio identificador externo.
GET/v1/payment-channels
Clave de API: Payment
Devuelve los canales visibles para esta credencial, de más nuevo a más antiguo. Úsalo para conciliar tus registros de clientes con los nuestros, o para localizar un canal por el external_id que le asignaste.
Parámetros de consulta
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
limit |
integer | 20 |
Tamaño de página, de 1 a 100. |
cursor |
string | — | Cursor opaco: el next_cursor de la página anterior. |
status |
string | — | active, blocked o provisioning. Se puede repetir; los duplicados se rechazan. |
external_id |
string | — | Coincidencia exacta con el identificador que diste al crear el canal. |
project_id |
string | — | Limita a un solo proyecto (prj_…). |
Cualquier otro parámetro se rechaza. No existe external_order_id ni created_from / created_to: eso es de facturas y retiros, no de canales.
Ejemplo
GET /v1/payment-channels?limit=50&status=active&status=provisioning HTTP/1.1
Host: api.paymos.io
Authorization: HMAC-SHA256 pk_live_…:…
X-Request-Timestamp: 1767225660
Respuesta (200 OK)
{
"items": [
{
"id": "pc_2QhKZv6mRt9WdA3nYpLbXf",
"project_id": "prj_xFukZuAJZR06pLVBh3uwzv",
"external_id": "customer-42",
"status": "active",
"is_accepting_payments": true,
"is_fully_provisioned": false,
"is_test": false,
"applied_fee_percent": 1.0,
"customer_fee_percent": 0,
"networks": [
{
"network": "TRC20",
"status": "active",
"address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"tokens": [
{ "symbol": "USDT", "minimum_deposit": "1.00" },
{ "symbol": "USDC", "minimum_deposit": "1.00" }
]
},
{
"network": "ERC20",
"status": "active",
"address": "0x9f2a6c1b4e8d7350ab11c9e5f0d2743b86ce41d9",
"tokens": [
{ "symbol": "USDT", "minimum_deposit": "12.00" },
{ "symbol": "USDC", "minimum_deposit": "12.00" }
]
},
{
"network": "SOL",
"status": "provisioning",
"tokens": [
{ "symbol": "USDC", "minimum_deposit": null }
]
}
],
"created_at": 1767225600,
"updated_at": 1767225780
},
{
"id": "pc_6BwTyH4nPl8QmZ2vKrJdSc",
"project_id": "prj_xFukZuAJZR06pLVBh3uwzv",
"external_id": "customer-41",
"status": "provisioning",
"is_accepting_payments": false,
"is_fully_provisioned": false,
"is_test": false,
"applied_fee_percent": 1.0,
"customer_fee_percent": 0,
"networks": [
{
"network": "TRC20",
"status": "provisioning",
"tokens": [
{ "symbol": "USDT", "minimum_deposit": null },
{ "symbol": "USDC", "minimum_deposit": null }
]
},
{
"network": "ERC20",
"status": "provisioning",
"tokens": [
{ "symbol": "USDT", "minimum_deposit": null },
{ "symbol": "USDC", "minimum_deposit": null }
]
},
{
"network": "SOL",
"status": "provisioning",
"tokens": [
{ "symbol": "USDC", "minimum_deposit": null }
]
}
],
"created_at": 1767225540,
"updated_at": 1767225540
}
],
"next_cursor": "CfDJ8JvN…"
}
Paginación
El orden es created_at y, a igualdad, el id del canal, los dos descendentes, así que la secuencia se mantiene estable mientras paginas.
- —
next_cursorvalenullen la última página. Esa es la señal para parar. - —Un cursor queda ligado a los filtros que lo generaron. Si cambias
status,external_idoproject_idy reutilizas el cursor antiguo, recibes400 pagination_cursor_invalid: la alternativa sería saltarse en silencio filas que nunca llegaste a ver. - —Los cursores caducan 24 horas después de emitirse. Pasado ese plazo, arranca otra vez por la primera página.
- —Un
project_idfuera del alcance de tu credencial devuelve una página vacía en lugar de un 404, así que la API nunca confirma si existe un proyecto que no puedes ver.
Errores
| Code | HTTP | Cuándo |
|---|---|---|
payment_channels_disabled |
503 | Los canales de pago no están activados para tu cuenta en este entorno. |
payment_key_required |
403 | La petición se firmó con una clave Payout (rk_). |
pagination_cursor_invalid |
400 | El cursor está mal formado, ha caducado o está ligado a otros filtros. |
field_invalid_enum |
400 | Un valor de status desconocido. |
field_invalid_format |
400 | project_id no es un identificador prj_ válido, o status se repitió dos veces con el mismo valor. |
payment_channel_external_id_invalid |
400 | external_id supera los 128 caracteres. |
field_out_of_range |
400 | limit queda fuera de 1–100. |
query_parameter_unknown |
400 | Un parámetro que no está en la tabla de arriba. |
Consulta Códigos de error para el catálogo completo.