curl --request POST \
--url https://public-test.blips.network/customers/{customerId}/payment-address \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://public-test.blips.network/customers/{customerId}/payment-address"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://public-test.blips.network/customers/{customerId}/payment-address', 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://public-test.blips.network/customers/{customerId}/payment-address",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-test.blips.network/customers/{customerId}/payment-address"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-test.blips.network/customers/{customerId}/payment-address")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-test.blips.network/customers/{customerId}/payment-address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"platformCustomerId": "dbs_cust_4Er9nYwL2mQ8kR7XcT1pZa",
"addressId": "addr_123",
"ppvAddress": "alice@dbs.blips.network",
"status": "ACTIVE",
"isDefault": true,
"createdAt": "2026-04-05T12:00:00Z",
"updatedAt": "2026-04-05T12:00:00Z"
}Issue the customer's singleton PPV payment address.
Issue or return the customer’s singleton PPV payment address for your authenticated platform. This customer-scoped action has no request body, issues in the BLIPS-managed customer-name@platform.blips.network format, and returns the existing active address idempotently instead of creating a second one.
curl --request POST \
--url https://public-test.blips.network/customers/{customerId}/payment-address \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://public-test.blips.network/customers/{customerId}/payment-address"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://public-test.blips.network/customers/{customerId}/payment-address', 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://public-test.blips.network/customers/{customerId}/payment-address",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-test.blips.network/customers/{customerId}/payment-address"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-test.blips.network/customers/{customerId}/payment-address")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-test.blips.network/customers/{customerId}/payment-address")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"platformCustomerId": "dbs_cust_4Er9nYwL2mQ8kR7XcT1pZa",
"addressId": "addr_123",
"ppvAddress": "alice@dbs.blips.network",
"status": "ACTIVE",
"isDefault": true,
"createdAt": "2026-04-05T12:00:00Z",
"updatedAt": "2026-04-05T12:00:00Z"
}Authorizations
Integration-key Basic Auth (clientId:clientSecret) as documented in docs/public/AUTHENTICATION.md.
Path Parameters
BLIPS customer identifier in Customer:<uuid> format for the existing customer that owns or will receive the issued PPV payment address.
Response
Customer payment address returned.
Frozen MVP public customer payment-address issuance response. ppvAddress is returned in BLIPS-managed customer-name@platform.blips.network form for public surfaces.
BLIPS customer identifier in Customer:<uuid> format that owns this issued PPV address.
Platform-side customer mapping identifier in <platformslug>_cust_<base58uuid> format bound to the customer that owns this issued PPV address.
Stable identifier for the issued customer payment-address record.
Public PPV address in BLIPS-managed customer-name@platform.blips.network format.
Current lifecycle status for the issued customer payment address.
ACTIVE Whether this is the active default PPV address for the customer.
Address issuance timestamp.
Last update timestamp for this customer payment-address record.