Authentication

Authenticate your requests to the Unzer API.

Public key vs private key

After you sign your Unzer contract, you get four API keys:

  • Your sandbox public key (e.g. s-pub-xxxxxxxxxx)
  • Your sandbox private key (e.g. s-priv-xxxxxxxxxx)
  • Your production public key (e.g. p-pub-xxxxxxxxxx)
  • Your production private key (e.g. p-priv-xxxxxxxxxx)

Your API keys are configured with permissions valid for your specific account. They are tied to you as a merchant.

Key Infix Sandbox key example Production key example
Public key pub s-pub-xxxxxxxxxx p-pub-xxxxxxxxxx
Private key priv s-priv-xxxxxxxxxx p-priv-xxxxxxxxxx

Depending on the resource and method used, you either need your public key or your private key to authenticate your request.

For details on which features require a public key or a private key, go to: Authentication reference.

HTTP basic authentication

The Unzer API uses HTTP basic authentication (BA) over HTTPS.

HTTP basic authentication requires a username and password. In the Unzer API, the username is your API key, and the password is empty:

  • Username: your API key
  • Password:

To provide an empty password, add a colon (:) at the end of your key, like this:

-u s-priv-xxxxxxxxxx:

Remember to encode your API key with a Base64 encoder:

curl https://api.unzer.com/v1/payments/charges \
  -u s-priv-xxxxxxxxxx:
var heidelpay = new Heidelpay('s-priv-xxxxxxxxxx');
Heidelpay heidelpay = new Heidelpay("s-priv-xxxxxxxxxx")
// In PHP you do not need to hash the secret key because it is done for you.
// You can just create the Heidelpay object and pass your private key as parameter one
$heidelpay = new Heidelpay('s-priv-xxxxxxxxxx', SupportedLocale::GERMAN_GERMAN);