Skip to main content
All requests require authentication. You can get your API credentials (Access ID and Access Secret) from the Tender dashboard. Tender uses two authentication methods, depending on the endpoint: Each endpoint page shows which method it uses in a note at the top.

Basic (Access ID) Authentication

Payment and System endpoints (/v1/api/payment/* and /v1/api/system/*) only require your public access ID:
No request signing is needed for these endpoints. Your Access Secret is never sent.

Signed (HMAC) Authentication

All other endpoints require HMAC signature-based authentication. Each request must include these headers:

Request Signing

To protect the integrity of your API requests, Tender uses HMAC-SHA256 signature authentication. This ensures that each request is securely verified and that the data hasn’t been altered in transit. Each request’s headers must include:
  1. x-access-id: Your public API access ID
  2. x-request-id: A unique UUID v4 for each request
  3. x-timestamp: Current timestamp in ISO 8601 format
  4. authorization: Base64-encoded HMAC-SHA256 signature

How Signatures Are Generated

An authorization signature is generated using:
  1. A JSON payload containing the timestamp, request ID, and access ID
  2. Your API secret key
  3. HMAC-SHA256 algorithm
  4. Base64 encoding of the resulting hash
The signed payload structure:

Signature Algorithm


Signed Request Example


Important Notes

  • Keep your Access Secret secure: Never expose it in client-side code or public repositories
  • Generate a new request ID for each request using UUID v4
  • Use ISO 8601 format for timestamps (e.g., 2025-03-15T09:45:53.000Z)
  • Invalid signatures will result in a 401 Unauthorized error
For troubleshooting authentication errors, see the Errors section.