Upsert Billing Contact
curl --request PUT \
--url https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"brandName": "<string>",
"invoiceTo": "<string>",
"advertiserName": "<string>"
}
'import requests
url = "https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}"
payload = {
"brandName": "<string>",
"invoiceTo": "<string>",
"advertiserName": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({brandName: '<string>', invoiceTo: '<string>', advertiserName: '<string>'})
};
fetch('https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}', 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.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'brandName' => '<string>',
'invoiceTo' => '<string>',
'advertiserName' => '<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.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}"
payload := strings.NewReader("{\n \"brandName\": \"<string>\",\n \"invoiceTo\": \"<string>\",\n \"advertiserName\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"brandName\": \"<string>\",\n \"invoiceTo\": \"<string>\",\n \"advertiserName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"brandName\": \"<string>\",\n \"invoiceTo\": \"<string>\",\n \"advertiserName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Billing API
Upsert Billing Contact
Create or update a billing contact.
A billing contact records who is behind an ad: the agency or advertiser that runs
the campaign (advertiserName), the brand the ad promotes (brandName) and the
company that pays the invoice (invoiceTo). Marketplaces in the EU display these
details next to each ad to meet the Digital Services Act (DSA).
This is the first step of the DSA setup. After creating a contact, link it to vendors with Upsert Vendor Billing Contact, then assign it to campaigns.
You choose billing_contact_id. Sending an existing ID replaces all three fields,
and the change applies to every campaign that uses the contact.
See the DSA setup guide.
PUT
/
public
/
v1
/
billing-service
/
billing-contacts
/
{billing_contact_id}
Upsert Billing Contact
curl --request PUT \
--url https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"brandName": "<string>",
"invoiceTo": "<string>",
"advertiserName": "<string>"
}
'import requests
url = "https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}"
payload = {
"brandName": "<string>",
"invoiceTo": "<string>",
"advertiserName": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({brandName: '<string>', invoiceTo: '<string>', advertiserName: '<string>'})
};
fetch('https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}', 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.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'brandName' => '<string>',
'invoiceTo' => '<string>',
'advertiserName' => '<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.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}"
payload := strings.NewReader("{\n \"brandName\": \"<string>\",\n \"invoiceTo\": \"<string>\",\n \"advertiserName\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"brandName\": \"<string>\",\n \"invoiceTo\": \"<string>\",\n \"advertiserName\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/billing-service/billing-contacts/{billing_contact_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"brandName\": \"<string>\",\n \"invoiceTo\": \"<string>\",\n \"advertiserName\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Autorizaciones
Parámetros de ruta
Cuerpo
application/json
Respuesta
Successful Response
¿Esta página le ayudó?