Documentação da API

Node, PHP e servidor MCP

SDKs mínimos e sem dependências, para baixar e usar direto (não estão publicados no npm nem no Packagist). Cobrem pagamentos, consultas, estornos, saldo, catálogo, assinaturas e a verificação de webhooks.

Node.js (TypeScript)

import { Uneway, verifyWebhook } from '@uneway/node';

const uneway = new Uneway(process.env.UNEWAY_API_KEY!);

const created = await uneway.payments.create('mbway', { amount: 25, phone: '351912345678', order_id: 'pedido-2002' },
  { idempotencyKey: 'pedido-2002' });
const payment = await uneway.payments.retrieve('pedido-2002');
const page = await uneway.payments.list({ status: 'paid', per_page: 50 });
const balance = await uneway.balance.retrieve();

// webhook
const ok = verifyWebhook(rawBody, req.headers['x-uneway-signature'], process.env.UNEWAY_WEBHOOK_SECRET!);

Node 18+ (usa fetch nativo). Descompacte, rode npm install && npm run build na pasta e instale no seu projeto com npm install ./uneway-node. Em POST o SDK gera a Idempotency-Key se você não passar uma e repete a mesma nas novas tentativas. Erros viram UnewayError com code, status e requestId.

PHP

$uneway = new \Uneway\Client(getenv('UNEWAY_API_KEY'));

$created = $uneway->payments->create('multibanco', ['amount' => 120, 'order_id' => 'pedido-2003'],
    ['idempotency_key' => 'pedido-2003']);
$payment = $uneway->payments->retrieve('pedido-2003');
$balance = $uneway->balance->retrieve();

$ok = \Uneway\Webhook::verify($rawBody, $_SERVER['HTTP_X_UNEWAY_SIGNATURE'] ?? '', getenv('UNEWAY_WEBHOOK_SECRET'));

PHP 8.1+ com a extensão curl. Descompacte e use require 'uneway-php/autoload.php'; (ou a pasta como repositório path no Composer). Erros lançam \Uneway\UnewayException.

Servidor MCP

O servidor MCP (uneway-mcp.zip, Node 18+, sem dependências) deixa assistentes de IA compatíveis com o Model Context Protocol consultarem a sua conta pela API pública. Ferramentas: create_payment, get_payment, list_payments e get_balance. Use uma chave com só os escopos necessários (de preferência de sandbox para testar). Com chave de produção, create_payment fica bloqueado a menos que UNEWAY_MCP_ALLOW_LIVE=1.

{
  "mcpServers": {
    "uneway": {
      "command": "node",
      "args": ["/caminho/para/uneway-mcp/server.mjs"],
      "env": { "UNEWAY_API_KEY": "uw_test_SUA_CHAVE" }
    }
  }
}