Display customised payment buttons
curl --request POST \
--url https://api.stage.rocka.live/api/payments/logo \
--header 'Content-Type: application/*+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"currency": "EUR",
"country": "DE"
}
'import requests
url = "https://api.stage.rocka.live/api/payments/logo"
payload = {
"currency": "EUR",
"country": "DE"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/*+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/*+json'},
body: JSON.stringify({currency: 'EUR', country: 'DE'})
};
fetch('https://api.stage.rocka.live/api/payments/logo', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stage.rocka.live/api/payments/logo",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'currency' => 'EUR',
'country' => 'DE'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/*+json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.stage.rocka.live/api/payments/logo"
payload := strings.NewReader("{\n \"currency\": \"EUR\",\n \"country\": \"DE\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/*+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.stage.rocka.live/api/payments/logo")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/*+json")
.body("{\n \"currency\": \"EUR\",\n \"country\": \"DE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stage.rocka.live/api/payments/logo")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/*+json'
request.body = "{\n \"currency\": \"EUR\",\n \"country\": \"DE\"\n}"
response = http.request(request)
puts response.read_body{
"Example: DE": {
"value": {
"url": "https://rocka.blob.core.windows.net/logo-button/de.svg",
"type": "country",
"id": "de",
"displayName": "GERMANY"
}
}
}Design the payment form
Display customised payment buttons
POST
/
api
/
payments
/
logo
Display customised payment buttons
curl --request POST \
--url https://api.stage.rocka.live/api/payments/logo \
--header 'Content-Type: application/*+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"currency": "EUR",
"country": "DE"
}
'import requests
url = "https://api.stage.rocka.live/api/payments/logo"
payload = {
"currency": "EUR",
"country": "DE"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/*+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/*+json'},
body: JSON.stringify({currency: 'EUR', country: 'DE'})
};
fetch('https://api.stage.rocka.live/api/payments/logo', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stage.rocka.live/api/payments/logo",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'currency' => 'EUR',
'country' => 'DE'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/*+json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.stage.rocka.live/api/payments/logo"
payload := strings.NewReader("{\n \"currency\": \"EUR\",\n \"country\": \"DE\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/*+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.stage.rocka.live/api/payments/logo")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/*+json")
.body("{\n \"currency\": \"EUR\",\n \"country\": \"DE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stage.rocka.live/api/payments/logo")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/*+json'
request.body = "{\n \"currency\": \"EUR\",\n \"country\": \"DE\"\n}"
response = http.request(request)
puts response.read_body{
"Example: DE": {
"value": {
"url": "https://rocka.blob.core.windows.net/logo-button/de.svg",
"type": "country",
"id": "de",
"displayName": "GERMANY"
}
}
}Authorizations
Body
application/*+json
Payment currency. Currently accepted: EUR.
Customer's unique identifier in your records.
Customer's email address.
Customer's IP address.
Customer's country's ISO 3166 code. For example, DE for Germany or FR for France.
The first 6 digits of the customer's bank card number. If you include this parameter, the endpoint will generate a custom button for the customer's bank.
Response
200 - application/json
Button appearance configuration.
Button type (bank or country).
Available options:
bank, country URL to the SVG logo that will be part of the button.
Payment option choice. For example, country code or bank ID.
Alternative display name for the payment option. For example, United Kingdom or Lloyds Bank.
Country's ISO 3166 code (only for bank buttons).
Last modified on September 17, 2026
Was this page helpful?