Skip to main content
POST
/
ramp
/
order
/
{order_id}
/
approvals
Submit order approval
curl --request POST \
  --url https://api.etherfuse.com/ramp/order/{order_id}/approvals \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "approvalMessageId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "approvalMessage": "<string>",
  "signature": "<string>",
  "publicKey": "<string>"
}
'
{
  "approvalMessageId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "completed": true
}

Authorizations

Authorization
string
header
required

API key sent in the Authorization header.

Path Parameters

order_id
string<uuid>
required

The order ID

Body

application/json
approvalMessageId
string<uuid>
required

The approvalMessageId from the order's approval. Echoed back to guard against approving a superseded proposal: a stale id is rejected and the caller re-reads the order for the current one.

approvalMessage
string
required

The exact approvalMessage bytes the owner signed, byte-identical to what was signed. Validated against the pending proposal.

signature
string
required

ECDSA P-256 signature over the approvalMessage, as a hex string. Most server-side signers output DER-wrapped hex (~142 characters, often starts with 30); browser WebCrypto outputs raw r‖s as 128 hex characters. Either layout is accepted. See the worked example in Embedded Wallets.

publicKey
string

Optional compressed SEC1 signer public key. When omitted, the wallet's registered signerPublicKey is used. When provided, it must match.

Response

Approval accepted

approvalMessageId
string<uuid>
required

Echoed from the request.

completed
boolean
required

Whether the embedded-wallet transaction is now fully approved. Embedded wallets use a single owner key today, so a successful 200 always returns true.