Create an Apple Pay merchant session
curl --request POST \
--url https://api.example.com/apple-pay/session \
--header 'Content-Type: application/json' \
--data '
{
"validationURL": "https://apple-pay-gateway.apple.com/paymentservices/startSession"
}
'import requests
url = "https://api.example.com/apple-pay/session"
payload = { "validationURL": "https://apple-pay-gateway.apple.com/paymentservices/startSession" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
validationURL: 'https://apple-pay-gateway.apple.com/paymentservices/startSession'
})
};
fetch('https://api.example.com/apple-pay/session', 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.example.com/apple-pay/session",
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([
'validationURL' => 'https://apple-pay-gateway.apple.com/paymentservices/startSession'
]),
CURLOPT_HTTPHEADER => [
"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://api.example.com/apple-pay/session"
payload := strings.NewReader("{\n \"validationURL\": \"https://apple-pay-gateway.apple.com/paymentservices/startSession\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/apple-pay/session")
.header("Content-Type", "application/json")
.body("{\n \"validationURL\": \"https://apple-pay-gateway.apple.com/paymentservices/startSession\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/apple-pay/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"validationURL\": \"https://apple-pay-gateway.apple.com/paymentservices/startSession\"\n}"
response = http.request(request)
puts response.read_body{}{
"message": "<string>"
}{
"message": "<string>"
}Apple Pay
Create an Apple Pay merchant session
Requests a merchant session from the Apple Pay gateway named in validationURL, over mTLS with the Merchant Identity certificate. The service accepts only the Apple Pay gateway hosts, and the sandbox hosts only in development.
POST
/
apple-pay
/
session
Create an Apple Pay merchant session
curl --request POST \
--url https://api.example.com/apple-pay/session \
--header 'Content-Type: application/json' \
--data '
{
"validationURL": "https://apple-pay-gateway.apple.com/paymentservices/startSession"
}
'import requests
url = "https://api.example.com/apple-pay/session"
payload = { "validationURL": "https://apple-pay-gateway.apple.com/paymentservices/startSession" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
validationURL: 'https://apple-pay-gateway.apple.com/paymentservices/startSession'
})
};
fetch('https://api.example.com/apple-pay/session', 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.example.com/apple-pay/session",
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([
'validationURL' => 'https://apple-pay-gateway.apple.com/paymentservices/startSession'
]),
CURLOPT_HTTPHEADER => [
"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://api.example.com/apple-pay/session"
payload := strings.NewReader("{\n \"validationURL\": \"https://apple-pay-gateway.apple.com/paymentservices/startSession\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/apple-pay/session")
.header("Content-Type", "application/json")
.body("{\n \"validationURL\": \"https://apple-pay-gateway.apple.com/paymentservices/startSession\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/apple-pay/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"validationURL\": \"https://apple-pay-gateway.apple.com/paymentservices/startSession\"\n}"
response = http.request(request)
puts response.read_body{}{
"message": "<string>"
}{
"message": "<string>"
}Body
application/json
The validation URL from the Apple Pay session
The validationURL of the onvalidatemerchant event that the Apple Pay session fired. Only its host is used, and it must be an Apple Pay gateway.
Minimum string length:
1Example:
"https://apple-pay-gateway.apple.com/paymentservices/startSession"
Response
Merchant session for the Apple Pay payment sheet
The opaque merchant session from Apple. Pass it unchanged to completeMerchantValidation.