Skip to main content
ExuraCopy sends social.account.created when a user creates a PAMM or MAM master or investor account from Social Trading. The event allows the CRM to record the new account without polling the API.
This webhook reports accounts created through the Social Trading interface. It is not emitted for an account created by the CRM through the API.

Prepare the receiver

Implement a public HTTPS URL that:
  • Accepts POST requests with JSON.
  • Reads the body as raw bytes without modifying it before signature verification.
  • Validates the timestamp and HMAC signature.
  • Processes each event_id only once.
  • Returns a 2xx status only after durably storing the event.

Register the webhook

Use the CRM API key with administrative scope to register the receiver. Only one account webhook can exist per environment.
The destination must use HTTPS and cannot contain credentials or a URL fragment. A second registration returns 409.
signing_secret is returned only by registration and secret rotation. Store it immediately in a secrets manager; GET /account-webhook never returns it.

Manage the registration

Disable delivery without deleting the configuration:
Use ACTIVE to enable delivery again. Rotating the secret invalidates the previous value, so update the receiver’s secret storage immediately after rotation.

Headers

Payload

Passwords, API keys, and SSO tokens are never included.

Verify the signature

The signature is calculated over:
Node.js example:
Reject timestamps outside a short window—such as five minutes—to reduce replay attacks. Compare signatures in constant time.

Idempotency and responses

1

Verify authenticity

Validate the timestamp and signature against the original body.
2

Record event_id

Insert the event with a unique constraint. If it already exists, do not create the account again in the CRM.
3

Apply the change

Associate mt5_login with the user identified by external_reference.
4

Acknowledge receipt

Respond with 200, 202, or 204 after storing the event. The response body is ignored.
ExuraCopy retries connection failures, 408, 425, 429, and 5xx responses. Other 4xx responses are treated as permanent failures. Because of retries, the same event may arrive more than once.

Inspect and retry deliveries

Administrators can inspect webhook delivery state:
The optional status filter accepts PENDING, SENDING, RETRY, DELIVERED, or FAILED. Continue pagination with the next_cursor returned by the API. Retry a delivery by its numeric database id, not by event_id:
An already delivered event returns 409 and cannot be retried.
Account creation in Social Trading is not rolled back when the CRM receiver fails. Monitor the delivery endpoint and use the event listing and retry routes to recover failed deliveries.

Previous: Debit funds

Review the withdrawal workflow.

Next: Idempotency

Prevent duplicate operations and events.
Last modified on November 3, 2026