/api/v1/p2p/my-merchantСтейджSelf-service read of the merchant's OWN profile: identification, the api-credentials representation, webhook URL, redirect URLs, IP whitelist, deal limits (deal_min_amount / deal_max_amount / daily_deal_amount_limit — present only when set) and the kill_switch / kill_switch_reason banner fields. Dual authentication: cabinet JWT (Authorization: Bearer, merchant role) OR the merchant HMAC pair — the scope is resolved from the presented credentials.
Merchant cabinet session JWT (Authorization header, Bearer scheme) — used by the /api/v1/p2p/my-merchant endpoint.
In: header
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/p2p/my-merchant" \ -H "X-Merchant-Token: <MERCHANT_TOKEN>" \ -H "X-Timestamp: <UNIX_TIMESTAMP>" \ -H "X-Signature: t=<UNIX_TIMESTAMP>,v1=<HEX_HMAC_SHA256>"{ "merchant": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "email": "string", "status": "string", "kill_switch": true, "kill_switch_reason": "string", "balance_usdt": "string", "escrow_usdt": "string", "trc20_address": "string", "project_url": "string", "checkout_brand_name": "string", "success_redirect_url": "string", "fail_redirect_url": "string", "finance_chat_id": "string", "appeal_chat_id": "string", "ip_whitelist": [ "string" ], "api_token": "string", "withdrawal_address": "string", "moderation_status": "string", "api_version": "string", "webhook_url": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "deal_min_amount": "string", "deal_max_amount": "string", "daily_deal_amount_limit": "string" }, "auto_withdrawal_mode": "AUTO_UP_TO_LIMIT", "auto_withdrawal_effective_limit_usdt_cents": "string"}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "instance": "../dictionary", "errors": [ { "field": "amount", "message": "must be greater than 0", "code": "POSITIVE_REQUIRED" } ]}Rotate API keys POST POST
Atomically replaces the existing credentials. Returns a new token and secret. Rotation grace period (confirmed behavior): the outgoing pair remains valid for a limited window (15 minutes by default, configurable by the operator via `MERCHANT_KEY_GRACE_PERIOD`; `0` disables it). Grace is strictly paired — during the window only the FULL old pair (old token + old secret) is accepted; mixed combinations return 401. Outbound webhooks are signed with the NEW secret immediately.
Update your own profile and deal limits (cabinet JWT) PATCH PATCH
Partial update of the merchant's own profile: `name`, `webhook_url`, `withdrawal_address`, `success_redirect_url`, `fail_redirect_url`, `checkout_brand_name`, `finance_chat_id`, `appeal_chat_id`, `ip_whitelist`, and the three deal limits. Limit pointer semantics: missing = unchanged, `0` = cleared (NULL), `>0` = set (in minor units). The min/max pair is checked for consistency. Status, balances, and fees are admin-only. Authentication: cabinet JWT.