Skip to main content
POST
/
v1
/
submit
/
send-transaction-otp
Send a transaction (OTP auth)
curl --request POST \
  --url https://api.byzantine.fi/v1/submit/send-transaction-otp \
  --header 'Content-Type: application/json' \
  --header 'X-Pubkey: <api-key>' \
  --header 'X-Signature: <x-signature>' \
  --header 'X-Timestamp: <x-timestamp>' \
  --data '{
  "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  "otpCode": "123456"
}'
{
  "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "broadcastedAt": "2025-11-19T21:16:02.894Z",
  "transactionReceipt": {
    "transactionHash": "0x123...",
    "transactionIndex": 123,
    "blockHash": "<string>",
    "blockNumber": 123,
    "gasUsed": "<string>",
    "effectiveGasPrice": "<string>",
    "blobGasUsed": "<string>",
    "blobGasPrice": "<string>",
    "from": "<string>",
    "to": "<string>",
    "contractAddress": "<string>"
  },
  "fiatDepositInstructions": {
    "currency": "usd",
    "bank_name": "Lead Bank",
    "bank_address": "1801 Main St., Kansas City, MO 64108",
    "payment_rails": [
      "AchPush"
    ],
    "bank_beneficiary_name": "John Smith",
    "bank_beneficiary_address": "1234 Main St., Kansas City, MO 64108",
    "bank_account_number": "1234567890",
    "bank_routing_number": "87654321",
    "iban_number": "FR12345678901234567890",
    "iban_bic": "BICFR12345"
  }
}

Authorizations

X-Pubkey
string
header
required

Integrator's ECDSA public key (P-256 curve, compressed SEC1 format). Example: 0x038fedef7c12f93bbf342ad8943b7a825a3b41f61c9dc118b2c718efebabbf62fd

Headers

X-Timestamp
string
required

Unix timestamp in seconds (UTC). Must be within tolerance window (1 minute) to prevent replay attacks. Example: 1760375826

X-Signature
string
required

ECDSA signature (DER-encoded, hex with 0x prefix). Signs the message: {timestamp}{METHOD}{path_and_query}{json_body}. Example: 0x3045022100...

Query Parameters

chain_id
integer
required

Chain ID (1 for Ethereum, 8453 for Base)

Required range: x >= 0

Body

application/json
transactionId
string<uuid>
required

A UUID string

Example:

"550e8400-e29b-41d4-a716-446655440000"

otpCode
string
required

The OTp code that the user received via email.

Example:

"123456"

Response

Transaction executed successfully

transactionId
string<uuid>
required

A UUID string

Example:

"550e8400-e29b-41d4-a716-446655440000"

status
enum<string>
required

The current status of the transaction.

Available options:
created,
waiting_for_funds,
funds_in_transfer,
processing,
completed
Example:

"completed"

broadcastedAt
string<date-time> | null

Exact timestamp when the transaction was broadcasted on-chain. Only available for completed transactions.

Example:

"2025-11-19T21:16:02.894Z"

transactionReceipt
object

Ethereum transaction receipt

fiatDepositInstructions
object