---
title: "Submit a signed credit transfer"
method: POST
path: "/v1/pay/transfer"
tags: ["Voidly Pay"]
---

# Submit a signed credit transfer

`POST /v1/pay/transfer`

Canonicalize the JSON envelope, sign with your Ed25519 secret key, POST {envelope, signature}. See voidly-pay-invariants.md for the 9-check settlement rule.

## Request body

- object
  - `envelope` object, required
  - `signature` string, required

## Response `200`

Settlement receipt

## Other responses

- `400` — Structured failure — invalid_signature / envelope_expired / envelope_window_too_long / amount_out_of_range / per_tx_cap_exceeded
- `402` — insufficient_balance
- `403` — sender_frozen or recipient_not_allowed
- `404` — sender_not_found or sender_pubkey_not_found
- `409` — nonce_seen — regenerate nonce and retry
- `429` — daily_cap_exceeded
- `503` — system_frozen

---

[API](https://skmtc.net/voidly/apis/voidly-api.md) · [All operations](https://skmtc.net/voidly/apis/voidly-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/voidly/voidly-api/revisions/decbe6fd40a8/schema)
