Skip to content

Submit a transaction for verification

POST
/payments/process
curl --request POST \
--url https://hub.stablezact.com/api/v1/payments/process \
--header 'Content-Type: application/json' \
--header 'X-Public-Key: <X-Public-Key>' \
--data '{ "paymentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "network": "example", "transactionHash": "example", "senderAddress": "example" }'

Hands a broadcast transaction to the server to verify on chain. This can take well over thirty seconds, because it waits on confirmations. A transaction that has not confirmed yet is answered with 400 and a verificationAttempts count rather than an error, and should be retried.

Media typeapplication/json
object
paymentId
required
string format: uuid
network
required

Must match the network the payment was created on.

string
transactionHash
required

An EVM hash is 0x followed by 64 hex characters. Solana hashes are validated against their own format.

string
senderAddress

Optional. Validated against the address format for network.

string
Examplegenerated
{
"paymentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"network": "example",
"transactionHash": "example",
"senderAddress": "example"
}

Verified.

Media typeapplication/json
object
success
boolean
Examplegenerated
{
"success": true
}

Rejected, or not yet confirmed on chain.

Media typeapplication/json
object
success
boolean
error
required

Short machine-ish reason.

string
message

Longer explanation, when there is one.

string
verificationAttempts
integer
Example
{
"success": false,
"error": "Transaction not yet confirmed on blockchain",
"verificationAttempts": 8
}

Missing or invalid credentials.

Media typeapplication/json
object
success
boolean
error
required

Short machine-ish reason.

string
message

Longer explanation, when there is one.

string
Example
{
"error": "API credentials required. Use x-public-key header or x-api-key and x-api-secret headers."
}