Issue an API key
curl --request POST \
--url https://api.staging.paywire.xyz/payments/merchants/me/api-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "production 2026-10"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: 'production 2026-10'})
};
fetch('https://api.staging.paywire.xyz/payments/merchants/me/api-keys', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.staging.paywire.xyz/payments/merchants/me/api-keys"
payload = { "label": "production 2026-10" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.staging.paywire.xyz/payments/merchants/me/api-keys");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"label\": \"production 2026-10\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
{
"merchantId": "0193a0b1-2c3d-7e4f-8a9b-0c1d2e3f4a5b",
"keyId": "0193a0d2-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
"apiKey": "w3g_9Qr4...full-key-shown-once",
"prefix": "w3g_9Qr4"
}{
"title": "Merchant.TooManyKeys",
"status": 409,
"detail": "A merchant can have at most 5 active API keys; revoke one first."
}Account
Issue an API key
The full key is returned once. A gateway can have at most 5 active keys.
POST
/
payments
/
merchants
/
me
/
api-keys
Issue an API key
curl --request POST \
--url https://api.staging.paywire.xyz/payments/merchants/me/api-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "production 2026-10"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: 'production 2026-10'})
};
fetch('https://api.staging.paywire.xyz/payments/merchants/me/api-keys', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.staging.paywire.xyz/payments/merchants/me/api-keys"
payload = { "label": "production 2026-10" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.staging.paywire.xyz/payments/merchants/me/api-keys");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"label\": \"production 2026-10\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
{
"merchantId": "0193a0b1-2c3d-7e4f-8a9b-0c1d2e3f4a5b",
"keyId": "0193a0d2-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
"apiKey": "w3g_9Qr4...full-key-shown-once",
"prefix": "w3g_9Qr4"
}{
"title": "Merchant.TooManyKeys",
"status": 409,
"detail": "A merchant can have at most 5 active API keys; revoke one first."
}The full key is in the response once. See Rotating a key.