---
title: "Submit a transaction hash for a chain without a memo"
method: POST
path: "/v1/billing/crypto/intents/{intentId}/submit"
tags: ["Billing"]
---

# Submit a transaction hash for a chain without a memo

`POST /v1/billing/crypto/intents/{intentId}/submit`

## Request

- Base URL: `https://ratchetgate.com`
- URL: `https://ratchetgate.com/v1/billing/crypto/intents/{intentId}/submit`
- Auth: HTTP bearer

Ethereum, Base, and Bitcoin transfers carry no memo, so a payment cannot identify itself. Submit the transaction hash and Ratchet verifies it on-chain: destination, asset, amount, and confirmations are all re-derived rather than trusted. A transaction can only ever settle one payment.

## Path parameters

- `intentId` string, required

## Request body

- object
  - `tx_hash` string, required

## Response `200`

Default Response

- object

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `402`: Insufficient prepaid credit.
- `403`: Scope, policy, or budget refusal.
- `404`: Not found.
- `409`: Conflicting state or idempotency-key reuse.
- `413`: Payload too large.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/ratchetgate/apis/ratchet-api.md) · [All operations](https://skmtc.dev/ratchetgate/apis/ratchet-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ratchetgate/apis/ratchet-api/revisions/5712f33c692f?raw)
