Skip to main content

Partner Links and Attribution

What this page solves​

Retrieve partner links and their codes, check client affiliation, and create custom partner codes.

When to use it​

Use this workflow when displaying partner links, checking a known client affiliation, or creating a custom code.

Before you start​

Use an active signed API key and the access required by the selected operation. See Authentication and Partnership permissions. Read access is sufficient for the default link, the link list and the affiliation check. The affiliation check uses POST but is read-only. Creating a custom code requires write access.

  1. 1
    Retrieve the default link.
  2. 2
    List partner links and retain their returned link codes.
  3. 3
    If your workflow needs an affiliation check, submit the client email to the documented operation.
  4. 4
    Create a custom partner code only when required, then verify the link list.
  5. 5
    Pass the returned code under the parameter name accepted by the selected report.

Main endpoints​

Example request​

Request-shape example; replace the authentication placeholders with a fresh signature.

GET /v1/partnership/partner/default-link HTTP/1.1
Host: <your-api-host>
EXN-API-KEY: <your-api-key>
EXN-TIMESTAMP: <fresh-unix-milliseconds>
EXN-SIGN-VERSION: 1
EXN-DATA: <base64url-signed-data>
EXN-SIGN: <base64url-signature>

What to expect in return​

HTTP 200 returns the default link and its components. The link list returns data and total; its partner_account can be null.

{
"full_default_link": "https://www.exness.com/a/demo22",
"domain": "exness.com",
"code": "demo22",
"path": "/a/demo22",
"url": "https://www.exness.com/a/demo22"
}

Common errors​

The following errors apply to the example operation. Other operations can declare a different subset; follow their API Reference links.

HTTP status / codeWhat It MeansHow to Fix It
429 / ThrottledA Partnership operation rate limit was exceeded.Slow down the request rate and honor Retry-After when it is returned.
504 / ServiceTransportErrorA service required by the Partnership operation could not be reached or timed out.Retry the request with exponential backoff.
500 / ErrorA Partnership operation failed because a required service could not complete the request.Retry the request with backoff.
401 / AuthenticationFailedA Partnership service rejected the authenticated request after request authentication. API-key and request-signature failures use the numeric authentication errors.Check the request authorization context. When the response uses the numeric envelope, follow the action for its error_message.
403 / PermissionDeniedThe authenticated identity cannot perform the operation or access the requested partner data.Use credentials with the required Partnership permission and resource access.
400 / ValidationErrorRequest validation failed, including bad-request or conflict conditions returned as validation errors.Do not retry unchanged. Correct the request using details, then sign the corrected request again.
502 / 1 — SYSTEM_BAD_GATEWAYThe API could not complete the request to the Partnership service.Retry the request with backoff.
503 / 2 — SYSTEM_TEMPORARY_UNAVAILABLEA required service is temporarily unavailable or the request deadline was exceeded.Retry the request with backoff.
500 / 3 — SYSTEM_INTERNAL_ERRORThe API encountered an unexpected internal error.Retry the request with backoff.
401 / 1000 — AUTH_INVALID_API_KEYThe API key is invalid, expired, revoked, or not allowed for the request source.Check the API key, its state, and its allowed source IP.
401 / 1001 — AUTH_INVALID_SIGNATUREThe request signature or signed timestamp is invalid.Rebuild the signature from the exact request and a fresh timestamp.
403 / 1002 — AUTH_FORBIDDENThe API key does not have a required operation scope.Use an API key with the required Partnership scope.
429 / 1003 — AUTH_RATE_LIMITThe authentication rate limit was exceeded.Honor Retry-After and reduce request rate.
400 / 3001 — REQUEST_INVALID_PARAMETERSRequired headers or signed request data are malformed or inconsistent.Correct the headers or signed values named by description, then sign the exact request again.

Recovery and reconciliation​

Write recovery

After an uncertain custom-code create, read the link list before another write. A custom code must contain 3–10 lowercase Latin letters, digits, underscores or hyphens; it cannot be numeric-only or start with c_. Preserve codes exactly as returned.