01 · Quickstart
  1. 01 Create a key Sign up and a sandbox key is waiting. No approval step, no call.
  2. 02 Quote a corridor GET a quote to see the rate, the fee and the arrival window before committing.
  3. 03 Create the payment POST with an idempotency key. Retry safely; you will never double-send.
  4. 04 Listen for settlement Subscribe to payment.credited and close the invoice from the webhook.
curl https://api.gowire.ai/v1/payments \
  -H "Authorization: Bearer sk_test_9f2c" \
  -H "Idempotency-Key: 8a41-inv-20268" \
  -d source[currency]=EUR \
  -d source[amount]=50000 \
  -d target[currency]=USD \
  -d beneficiary=ben_8f2c19 \
  -d reference=INV-20268
import { Gowire } from "@gowire/node";

const gw = new Gowire(process.env.GOWIRE_KEY);

const payment = await gw.payments.create({
  source: { currency: "EUR", amount: 50000 },
  target: { currency: "USD" },
  beneficiary: "ben_8f2c19",
  reference: "INV-20268"
}, { idempotencyKey: "8a41-inv-20268" });

console.log(payment.status); // "routing"
import gowire

gw = gowire.Client(api_key=os.environ["GOWIRE_KEY"])

payment = gw.payments.create(
    source={"currency": "EUR", "amount": 50000},
    target={"currency": "USD"},
    beneficiary="ben_8f2c19",
    reference="INV-20268",
    idempotency_key="8a41-inv-20268",
)

print(payment.status)  # "routing"
02 · Endpoints
Verb Path Does
GET /v1/quotes Rate, fee and arrival window for a corridor and amount
POST /v1/payments Create and route a payment
GET /v1/payments/:id Current status and full timeline
POST /v1/batches Submit up to 5,000 payments with pre-flight validation
GET /v1/balances Balance per currency, available and reserved
POST /v1/beneficiaries Store a payee with validated account details
GET /v1/reconciliation Matched settlements and open exceptions for a period
03 · Webhooks
payment.routing

Rail selected; the payment is on its way out.

payment.credited

Beneficiary bank confirmed the credit.

payment.held

Screening needs a decision from you.

payment.failed

Rejected, with the reason and a retry option.

batch.validated

Pre-flight finished; valid and invalid rows listed.

reconciliation.exception

A settlement the agent could not match alone.

Signed with HMAC-SHA256, retried with backoff for 24 hours, and replayable from the dashboard.

API reference

Every endpoint, every field, with request and response examples.

Open the reference

SDKs

Node, Python, Go and Ruby, generated from the same spec and versioned together.

Browse on GitHub

Status

Uptime and incident history per corridor, with an RSS feed and webhook.

View status