1. Webhooks
Arcanum Pay
  • Arcanum API
    • Getting Started
      • Documentation Overview
      • Request Authorization
    • API Reference V1
      • Create Deposit
      • Create Withdrawal
      • Get Deposit Status
      • Get Withdrawal Status
      • Get Merchant Balance
    • Webhooks
      • Callback Verification
      • Callback Payload
    • Schemas
      • DepositResponseDto
      • UserDataDto
      • CreateDepositDto
      • WithdrawalResponseDto
      • CreateWithdrawalDto
      • StatusResponseDto
      • MerchantBalanceDto
      • MerchantBalancesResponseDto
  1. Webhooks

Callback Payload

After an operation changes status, the system sends an HTTP callback (webhook) to the callbackUrl you specified when creating the deposit or withdrawal.

Delivery#

Method: POST
Content-Type: application/json
Timeout: 20 seconds per attempt
Retries: up to 3 attempts with exponential backoff (1s, 2s, 4s)
Your endpoint must respond with any 2xx status code to confirm receipt. Any other response or timeout triggers a retry.

Callback Payload#

{
  "operationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "operationType": "deposit",
  "status": 1,
  "amount": "100.00",
  "receivedAmount": "95.00",
  "currency": "USDT",
  "paymentMethod": "card",
  "merchantOperationId": "order-001",
  "createdAt": "2026-05-28T12:00:00.000Z",
  "confirmedAt": "2026-05-28T12:05:00.000Z",
  "signature": "a3f2b8c1d4e5..."
}

Fields#

FieldTypeAlways presentDescription
operationIdstring (UUID)YesUnique operation identifier
operationTypestringYes"deposit" or "withdrawal"
statusnumberYesOperation status (see Statuses)
amountstringYesInitial operation amount
receivedAmountstringNoNet amount received by merchant after fee. Only for deposits with final status (Approved, Declined)
subtractedAmountstringNoTotal amount debited including fee. Only for withdrawals with final status (Approved, Declined)
currencystringYesCurrency code (e.g. USDT, USDC)
paymentMethodstringYesPayment method used (e.g. card)
merchantOperationIdstring | nullYesYour operation identifier passed during creation, null if not provided
createdAtstring (ISO8601)YesOperation creation timestamp
confirmedAtstring (ISO8601) | nullYesTimestamp when operation reached final status, null if still processing
signaturestringYesHMAC-SHA256 signature for verification (hex)

Amount Fields Logic#

For deposits with a final status:
receivedAmount = amount - merchant fee (net amount credited to balance)
For withdrawals with a final status:
subtractedAmount = amount + merchant fee (total amount debited from balance)
These fields are only present when the operation has reached a final status (Approved or Declined).

Statuses#

CodeStatusDescription
1ApprovedOperation completed successfully
2DeclinedOperation was declined
3ProcessingOperation is still being processed
Status codes are the same for both deposits and withdrawals.
Modified at 2026-05-28 15:03:30
Previous
Callback Verification
Next
DepositResponseDto
Built with