Customer Sessions
curl --request POST \
--url https://api-sandbox.pavewaygroup.com/v1/sessions/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_email": "<string>"
}
'import requests
url = "https://api-sandbox.pavewaygroup.com/v1/sessions/create"
payload = { "customer_email": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer_email: '<string>'})
};
fetch('https://api-sandbox.pavewaygroup.com/v1/sessions/create', 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-sandbox.pavewaygroup.com/v1/sessions/create",
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([
'customer_email' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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-sandbox.pavewaygroup.com/v1/sessions/create"
payload := strings.NewReader("{\n \"customer_email\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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-sandbox.pavewaygroup.com/v1/sessions/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.pavewaygroup.com/v1/sessions/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodySessions
Customer Sessions
Create secure, short-lived sessions for your customers.
POST
/
sessions
/
create
Customer Sessions
curl --request POST \
--url https://api-sandbox.pavewaygroup.com/v1/sessions/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_email": "<string>"
}
'import requests
url = "https://api-sandbox.pavewaygroup.com/v1/sessions/create"
payload = { "customer_email": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer_email: '<string>'})
};
fetch('https://api-sandbox.pavewaygroup.com/v1/sessions/create', 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-sandbox.pavewaygroup.com/v1/sessions/create",
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([
'customer_email' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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-sandbox.pavewaygroup.com/v1/sessions/create"
payload := strings.NewReader("{\n \"customer_email\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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-sandbox.pavewaygroup.com/v1/sessions/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.pavewaygroup.com/v1/sessions/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyCustomer sessions allow you to create a temporary, authenticated context for a customer. This is commonly used to let customers manage their own payment methods or view their billing history in your application without exposing your Secret Keys.
Authentication
Include your Secret Key in theAuthorization header as a Bearer token.
Authorization: Bearer sk_test_...
Request Body
The email address of the customer to create a session for.
Response
Returns asession_token which can be used in client-side requests for a limited time (default 30 minutes).
{
"success": true,
"message": "Session created successfully",
"data": {
"session_token": "cs_AbCdEf...",
"customer_email": "[email protected]",
"expires_at": "2024-01-01T12:30:00Z"
}
}
Validate a Session
Check if a session token is still valid.POST /v1/sessions/validate
-H "Authorization: Bearer cs_AbCdEf..."
Revoke a Session
Explicitly terminate a session (Logout).POST /v1/sessions/revoke
-H "Authorization: Bearer cs_AbCdEf..."
⌘I

