Init payment
curl --request POST \
--url https://{host}/payment/v1/payments/init \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"paymentLocation": "<string>",
"receiptId": "<string>",
"memberId": "<string>",
"operationId": "<string>",
"amount": 1
}
'import requests
url = "https://{host}/payment/v1/payments/init"
payload = {
"paymentLocation": "<string>",
"receiptId": "<string>",
"memberId": "<string>",
"operationId": "<string>",
"amount": 1
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paymentLocation: '<string>',
receiptId: '<string>',
memberId: '<string>',
operationId: '<string>',
amount: 1
})
};
fetch('https://{host}/payment/v1/payments/init', 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://{host}/payment/v1/payments/init",
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([
'paymentLocation' => '<string>',
'receiptId' => '<string>',
'memberId' => '<string>',
'operationId' => '<string>',
'amount' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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://{host}/payment/v1/payments/init"
payload := strings.NewReader("{\n \"paymentLocation\": \"<string>\",\n \"receiptId\": \"<string>\",\n \"memberId\": \"<string>\",\n \"operationId\": \"<string>\",\n \"amount\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://{host}/payment/v1/payments/init")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"paymentLocation\": \"<string>\",\n \"receiptId\": \"<string>\",\n \"memberId\": \"<string>\",\n \"operationId\": \"<string>\",\n \"amount\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/payment/v1/payments/init")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentLocation\": \"<string>\",\n \"receiptId\": \"<string>\",\n \"memberId\": \"<string>\",\n \"operationId\": \"<string>\",\n \"amount\": 1\n}"
response = http.request(request)
puts response.read_body{
"paymentId": "<string>"
}{
"name": "<string>",
"message": "<string>",
"details": null
}Init payment
deprecated
Create POS payment in it’s initial state, which is WaitingMemberConfirmation. This means, that payment will be shown in mobile app where member should select payment methods and confirm the payment.
POST
/
v1
/
payments
/
init
Init payment
curl --request POST \
--url https://{host}/payment/v1/payments/init \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"paymentLocation": "<string>",
"receiptId": "<string>",
"memberId": "<string>",
"operationId": "<string>",
"amount": 1
}
'import requests
url = "https://{host}/payment/v1/payments/init"
payload = {
"paymentLocation": "<string>",
"receiptId": "<string>",
"memberId": "<string>",
"operationId": "<string>",
"amount": 1
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paymentLocation: '<string>',
receiptId: '<string>',
memberId: '<string>',
operationId: '<string>',
amount: 1
})
};
fetch('https://{host}/payment/v1/payments/init', 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://{host}/payment/v1/payments/init",
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([
'paymentLocation' => '<string>',
'receiptId' => '<string>',
'memberId' => '<string>',
'operationId' => '<string>',
'amount' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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://{host}/payment/v1/payments/init"
payload := strings.NewReader("{\n \"paymentLocation\": \"<string>\",\n \"receiptId\": \"<string>\",\n \"memberId\": \"<string>\",\n \"operationId\": \"<string>\",\n \"amount\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://{host}/payment/v1/payments/init")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"paymentLocation\": \"<string>\",\n \"receiptId\": \"<string>\",\n \"memberId\": \"<string>\",\n \"operationId\": \"<string>\",\n \"amount\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/payment/v1/payments/init")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paymentLocation\": \"<string>\",\n \"receiptId\": \"<string>\",\n \"memberId\": \"<string>\",\n \"operationId\": \"<string>\",\n \"amount\": 1\n}"
response = http.request(request)
puts response.read_body{
"paymentId": "<string>"
}{
"name": "<string>",
"message": "<string>",
"details": null
}Authorizations
JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"
Body
application/jsontext/jsonapplication/*+json
Payment location. Concatenation of StoreId + Terminal Id
Required string length:
1 - 128Unique payment identifier
Required string length:
1 - 64Id of member who checked in on the POS, who suppose to pay for the purchase Must contain latin alphanumeric characters, max length 32. Allowed special characters: '-', '_'
Required string length:
1 - 36Unique identifier of initiate payment operation (should be same only for retries of the same operation)
Required string length:
1 - 64Amount to pay
Required range:
x >= 0Response
OK
Payment id used to manage initiated payment and retrieve payment status
Minimum string length:
1Last modified on August 10, 2026