Developers

One API for collections and payouts

Create and verify customers, receive and send CHF, EUR and USD (more currencies coming), and trace payments. JSON over HTTPS, with signed webhooks.

This page is a preview of the Montezy API design. Endpoint names and fields are illustrative and may change before public release.

Authentication

Secret API keys per environment, sent as a Bearer token. Sandbox keys start with mtz_test_.

Idempotency

Send an Idempotency-Key header on every POST so retries never create a second payment.

Webhooks

Events are signed with HMAC-SHA256 in the Montezy-Signature header. Verify before trusting.

Endpoints

API overview

POST/v1/customersCreate a customer and start KYC
GET/v1/customers/{id}Customer details and verification status
GET/v1/balancesAvailable balance per currency
GET/v1/collectionsIncoming payments, with matching status
POST/v1/payoutsSend CHF, EUR or USD to a beneficiary
POST/v1/tracesOpen a trace on a missing or unmatched payment
POST/v1/agent-paymentsComing soon: agent payments checked against a mandate
Request · create payoutcurl
curl https://api.montezy.example/v1/payouts \
  -H "Authorization: Bearer mtz_test_…" \
  -H "Idempotency-Key: 7f1c…" \
  -d '{
    "amount": "4280.00",
    "currency": "CHF",
    "beneficiary": {
      "name": "Rheintal Logistik AG",
      "iban": "CH93 0076 2011 6238 5295 7"
    },
    "reference": "Invoice RL-2026-0917"
  }'
Response · 201 Createdjson
{
  "id": "po_01J9Z6…",
  "status": "processing",
  "amount": "4280.00",
  "currency": "CHF",
  "created_at": "2026-09-30T09:14:02Z"
}
Webhook · collection.creditedjson
{
  "type": "collection.credited",
  "customer_id": "C-10391",
  "amount": "25000.00",
  "currency": "CHF",
  "reference": "MTZ-CUST-010391"
}

Start in the sandbox

Open an account to get sandbox keys. Test customers, collections and payouts without moving real money.

Get API accessTalk to an engineer