Referencia de Transactions
Registrar Wallet
Registra un wallet en un blockchain para que pueda firmar y enviar transactions. Haz esto una vez por wallet por blockchain antes de enviar cualquier transaction.
Solicitud
POST /api/v1/transactions/register-wallet
Encabezados
X-AccessKey— Tu clave de acceso de entidadContent-Type: application/json
Cuerpo
walletAddress(requerido) — La dirección del wallet a registrarblockchain(requerido) — El ID del blockchain en el que registrarpassphrase(opcional) — Solo necesario si el wallet fue creado con una passphrase
Respuesta
Devuelve el resultado de la transaction del node en caso de éxito.
- cURL
- TypeScript
curl -X POST \
'https://your-tms-url/api/v1/transactions/register-wallet' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Content-Type: application/json' \
-d '{
"walletAddress": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"blockchain": "08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2"
}'
const res = await fetch('https://your-tms-url/api/v1/transactions/register-wallet', {
method: 'POST',
headers: {
'X-AccessKey': 'your-entity-access-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
walletAddress: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
blockchain: '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2',
}),
});
const data = await res.json();
console.log(data);
Crear Transaction
Envía una transaction a un blockchain. El wallet debe estar ya registrado en el blockchain de destino antes de llamar a este endpoint. El TMS elige un node disponible de los nodes permitidos por tu clave de acceso y reenvía la transaction.
Solicitud
POST /api/v1/transactions
Encabezados
X-AccessKey— Tu clave de acceso de entidadContent-Type: application/json
Cuerpo
blockchainId(requerido) — ID del blockchain de destinoto(requerido) — Dirección del wallet destinatariowalletAddress— Dirección del wallet firmantefrom— Dirección del wallet remitentepayload— Los datos a almacenarpayloadType—textojsonpassphrase— Solo si el wallet fue creado con unametadata— Pares clave-valor opcionales
Respuesta
Devuelve el objeto de transaction incluyendo transactionId en caso de éxito.
Ejemplo de respuesta
{
"transactionId": "a1b2c3d4e5f6...",
"blockchainId": "08c28f29...",
"status": "pending",
"payload": "hello blockchain",
"payloadType": "text",
"from": "54677be3...",
"to": "54677be3..."
}
- cURL
- TypeScript
curl -X POST \
'https://your-tms-url/api/v1/transactions' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Content-Type: application/json' \
-d '{
"blockchainId": "08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2",
"from": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"to": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"walletAddress": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"payload": "hello blockchain",
"payloadType": "text"
}'
const res = await fetch('https://your-tms-url/api/v1/transactions', {
method: 'POST',
headers: {
'X-AccessKey': 'your-entity-access-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
blockchainId: '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2',
from: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
to: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
walletAddress: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
payload: 'hello blockchain',
payloadType: 'text',
}),
});
const tx = await res.json();
console.log('Transaction ID:', tx.transactionId);
Obtener Transaction
Recupera el payload y los metadatos de una transaction específica por su ID y blockchain. Útil para verificar que una transaction se registró correctamente.
Solicitud
GET /api/v1/transactions/{blockchainId}/{transactionId}
Encabezados
X-AccessKey— Tu clave de acceso de entidad
Parámetros de ruta
blockchainId— El blockchain al que se envió la transactiontransactionId— El ID devuelto cuando se creó la transaction
Respuesta
Devuelve el objeto completo de la transaction incluyendo payload, estado, altura de bloque y marcas de tiempo.
Ejemplo de respuesta
{
"transactionId": "a1b2c3d4e5f6...",
"blockchainId": "08c28f29...",
"payload": "hello blockchain",
"payloadType": "text",
"status": "confirmed",
"blockHeight": 2301,
"from": "54677be3...",
"to": "54677be3...",
"timestamp": {
"exactTime": "2026-05-25T19:00:00Z"
}
}
- cURL
- TypeScript
curl -X GET \
'https://your-tms-url/api/v1/transactions/{blockchainId}/{transactionId}' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Accept: application/json'
const blockchainId = '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2';
const transactionId = 'your-transaction-id';
const res = await fetch(
`https://your-tms-url/api/v1/transactions/${blockchainId}/${transactionId}`,
{
headers: {
'X-AccessKey': 'your-entity-access-key',
'Accept': 'application/json',
},
}
);
const tx = await res.json();
console.log('Status:', tx.status);
console.log('Block height:', tx.blockHeight);
console.log('Payload:', tx.payload);
Crear Transaction JSON
Envía una transaction cuyo payload es un objeto JSON estructurado. El TMS serializa el objeto en el blockchain. Úsalo cuando quieras almacenar registros legibles por máquina en lugar de texto plano.
Solicitud
POST /api/v1/transactions/json
Encabezados
X-AccessKey— Tu clave de acceso de entidadContent-Type: application/json
Cuerpo
blockchainId(requerido) — ID del blockchain de destinoto(requerido) — Dirección del wallet destinatariopayload(requerido) — Un objeto JSON para almacenar en la cadenawalletAddress(opcional) — Wallet firmante (por defecto igual afrom)from(opcional) — Dirección del wallet remitentepassphrase(opcional) — Solo si el wallet fue creado con unametadata(opcional) — Pares clave-valor de cadena
Respuesta
{
"transactionId": "a1b2c3d4e5f6...",
"blockchainId": "08c28f29...",
"status": "pending",
"payloadType": "json"
}
- cURL
- TypeScript
curl -X POST \
'https://your-tms-url/api/v1/transactions/json' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Content-Type: application/json' \
-d '{
"blockchainId": "08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2",
"to": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"walletAddress": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"payload": { "event": "invoice_paid", "amount": 1500, "currency": "USD" }
}'
const res = await fetch('https://your-tms-url/api/v1/transactions/json', {
method: 'POST',
headers: {
'X-AccessKey': 'your-entity-access-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
blockchainId: '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2',
to: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
walletAddress: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
payload: { event: 'invoice_paid', amount: 1500, currency: 'USD' },
}),
});
const tx = await res.json();
console.log('Transaction ID:', tx.transactionId);
Crear Transaction de Texto
Envía una transaction cuyo payload es una cadena de texto plano. Idéntico aPOST /api/v1/transactions pero con tipo explícito — úsalo cuando quieras dejar claro en tu código que el payload es texto.
Solicitud
POST /api/v1/transactions/text
Encabezados
X-AccessKey— Tu clave de acceso de entidadContent-Type: application/json
Cuerpo
blockchainId(requerido) — ID del blockchain de destinoto(requerido) — Dirección del wallet destinatariowalletAddress(requerido) — Dirección del wallet firmantefrom— Dirección del wallet remitentepayload— La cadena de texto a almacenarpayloadType— Debe ser"text"passphrase(opcional) — Solo si el wallet fue creado con unametadata(opcional) — Pares clave-valor de cadena
Respuesta
{
"transactionId": "a1b2c3d4e5f6...",
"blockchainId": "08c28f29...",
"status": "pending",
"payload": "hello blockchain",
"payloadType": "text"
}
- cURL
- TypeScript
curl -X POST \
'https://your-tms-url/api/v1/transactions/text' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Content-Type: application/json' \
-d '{
"blockchainId": "08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2",
"from": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"to": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"walletAddress": "54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585",
"payload": "hello blockchain",
"payloadType": "text"
}'
const res = await fetch('https://your-tms-url/api/v1/transactions/text', {
method: 'POST',
headers: {
'X-AccessKey': 'your-entity-access-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
blockchainId: '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2',
from: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
to: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
walletAddress: '54677be320b0bd704a99ee1f3d60c7309dfdee4810b1846d7b66ddbe0e84f585',
payload: 'hello blockchain',
payloadType: 'text',
}),
});
const tx = await res.json();
console.log('Transaction ID:', tx.transactionId);
Obtener Historial de Transactions
Devuelve una lista paginada de transactions enviadas por tu entidad a través del TMS. Admite filtrado por estado, tipo de flujo, blockchain, remitente y destinatario.
Solicitud
GET /api/v1/transactions/history
Encabezados
X-AccessKey— Tu clave de acceso de entidad
Parámetros de consulta
status(opcional) — Filtrar por estado, p. ej.pending,confirmedflow_type(opcional) — Filtrar por tipo de flujoblockchain_id(opcional) — Filtrar por blockchain específicofrom(opcional) — Filtrar por dirección del wallet remitenteto(opcional) — Filtrar por dirección del wallet destinatariopage(opcional) — Número de página (por defecto: 0)pageSize(opcional) — Resultados por página (por defecto: 20)
Respuesta
{
"items": [
{
"id": 1,
"transactionId": "a1b2c3...",
"blockchainId": "08c28f29...",
"status": "confirmed",
"payloadType": "text",
"from": "54677be3...",
"to": "54677be3...",
"createdAt": "2026-05-25T19:00:00Z"
}
],
"total": 1,
"page": 0,
"pageSize": 20
}
- cURL
- TypeScript
curl -X GET \
'https://your-tms-url/api/v1/transactions/history?status=confirmed&pageSize=10' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Accept: application/json'
const params = new URLSearchParams({
status: 'confirmed',
blockchain_id: '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2',
page: '0',
pageSize: '20',
});
const res = await fetch(
`https://your-tms-url/api/v1/transactions/history?${params}`,
{
headers: {
'X-AccessKey': 'your-entity-access-key',
'Accept': 'application/json',
},
}
);
const history = await res.json();
console.log('Total:', history.total);
history.items.forEach(tx => console.log(tx.transactionId, tx.status));
Obtener Entrada del Historial por ID
Recupera un único registro del historial de transactions por su ID interno del TMS (el campo id devuelto en la lista del historial). Es distinto deltransactionId en la cadena.
Solicitud
GET /api/v1/transactions/history/{id}
Encabezados
X-AccessKey— Tu clave de acceso de entidad
Parámetros de ruta
id— El ID interno del registro de historial del TMS
Respuesta
{
"id": 42,
"transactionId": "a1b2c3...",
"blockchainId": "08c28f29...",
"status": "confirmed",
"payloadType": "text",
"from": "54677be3...",
"to": "54677be3...",
"createdAt": "2026-05-25T19:00:00Z"
}
- cURL
- TypeScript
curl -X GET \
'https://your-tms-url/api/v1/transactions/history/42' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Accept: application/json'
const id = 42;
const res = await fetch(
`https://your-tms-url/api/v1/transactions/history/${id}`,
{
headers: {
'X-AccessKey': 'your-entity-access-key',
'Accept': 'application/json',
},
}
);
const entry = await res.json();
console.log('Transaction ID:', entry.transactionId);
console.log('Status:', entry.status);
Obtener Estado de Transaction en Cola
Verifica el estado de una transaction en la cola de envío para un blockchain dado. Usa esto para hacer polling cuando el TMS devuelve un ID de mensaje en lugar de un ID de transaction finalizado.
Solicitud
GET /api/v1/transactions/{blockchainId}/queue/{msgId}
Encabezados
X-AccessKey— Tu clave de acceso de entidad
Parámetros de ruta
blockchainId— El blockchain al que se envió la transactionmsgId— El ID del mensaje en cola devuelto durante el envío
Respuesta
{
"msgId": "msg-abc123",
"status": "pending",
"transactionId": "a1b2c3...",
"blockchainId": "08c28f29..."
}
- cURL
- TypeScript
curl -X GET \
'https://your-tms-url/api/v1/transactions/08c28f29.../queue/msg-abc123' \
-H 'X-AccessKey: your-entity-access-key' \
-H 'Accept: application/json'
const blockchainId = '08c28f29a62819120958984b761ddf8ccb45951612731409873994958fd150a2';
const msgId = 'msg-abc123';
const res = await fetch(
`https://your-tms-url/api/v1/transactions/${blockchainId}/queue/${msgId}`,
{
headers: {
'X-AccessKey': 'your-entity-access-key',
'Accept': 'application/json',
},
}
);
const queueEntry = await res.json();
console.log('Status:', queueEntry.status);
console.log('Transaction ID:', queueEntry.transactionId);