curl --request POST \
--url https://api.creem.io/v1/splits \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"type": "store",
"type_reference": "prod_1a2b3c4d",
"recipients": [
{
"recipient_type": "store",
"recipient_reference": "store_1a2b3c4d",
"amount": 25
}
],
"description": "Q3 revenue share"
}
'import requests
url = "https://api.creem.io/v1/splits"
payload = {
"type": "store",
"type_reference": "prod_1a2b3c4d",
"recipients": [
{
"recipient_type": "store",
"recipient_reference": "store_1a2b3c4d",
"amount": 25
}
],
"description": "Q3 revenue share"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'store',
type_reference: 'prod_1a2b3c4d',
recipients: [{recipient_type: 'store', recipient_reference: 'store_1a2b3c4d', amount: 25}],
description: 'Q3 revenue share'
})
};
fetch('https://api.creem.io/v1/splits', 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.creem.io/v1/splits",
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([
'type' => 'store',
'type_reference' => 'prod_1a2b3c4d',
'recipients' => [
[
'recipient_type' => 'store',
'recipient_reference' => 'store_1a2b3c4d',
'amount' => 25
]
],
'description' => 'Q3 revenue share'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.creem.io/v1/splits"
payload := strings.NewReader("{\n \"type\": \"store\",\n \"type_reference\": \"prod_1a2b3c4d\",\n \"recipients\": [\n {\n \"recipient_type\": \"store\",\n \"recipient_reference\": \"store_1a2b3c4d\",\n \"amount\": 25\n }\n ],\n \"description\": \"Q3 revenue share\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://api.creem.io/v1/splits")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"store\",\n \"type_reference\": \"prod_1a2b3c4d\",\n \"recipients\": [\n {\n \"recipient_type\": \"store\",\n \"recipient_reference\": \"store_1a2b3c4d\",\n \"amount\": 25\n }\n ],\n \"description\": \"Q3 revenue share\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creem.io/v1/splits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"store\",\n \"type_reference\": \"prod_1a2b3c4d\",\n \"recipients\": [\n {\n \"recipient_type\": \"store\",\n \"recipient_reference\": \"store_1a2b3c4d\",\n \"amount\": 25\n }\n ],\n \"description\": \"Q3 revenue share\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"mode": "test",
"object": "split",
"store_id": "store_1a2b3c4d",
"type": "store",
"type_reference": "prod_1a2b3c4d",
"enabled": true,
"recipients": [
{
"type": "percentage",
"recipient_type": "store",
"recipient_reference": "store_1a2b3c4d",
"amount": 25,
"enabled": true,
"invite_status": "pending"
}
],
"created_at": 1735689600000,
"description": "Q3 revenue share"
}Create a split
Create a revenue split for your store. The split applies either to your whole store (type: store) or to a single product (type: product). Recipients are existing stores (added directly) or email invitees; a split created with any email invitee starts disabled and activates once the first invitee accepts. The split is always created for the store the API key belongs to.
curl --request POST \
--url https://api.creem.io/v1/splits \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"type": "store",
"type_reference": "prod_1a2b3c4d",
"recipients": [
{
"recipient_type": "store",
"recipient_reference": "store_1a2b3c4d",
"amount": 25
}
],
"description": "Q3 revenue share"
}
'import requests
url = "https://api.creem.io/v1/splits"
payload = {
"type": "store",
"type_reference": "prod_1a2b3c4d",
"recipients": [
{
"recipient_type": "store",
"recipient_reference": "store_1a2b3c4d",
"amount": 25
}
],
"description": "Q3 revenue share"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'store',
type_reference: 'prod_1a2b3c4d',
recipients: [{recipient_type: 'store', recipient_reference: 'store_1a2b3c4d', amount: 25}],
description: 'Q3 revenue share'
})
};
fetch('https://api.creem.io/v1/splits', 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.creem.io/v1/splits",
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([
'type' => 'store',
'type_reference' => 'prod_1a2b3c4d',
'recipients' => [
[
'recipient_type' => 'store',
'recipient_reference' => 'store_1a2b3c4d',
'amount' => 25
]
],
'description' => 'Q3 revenue share'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.creem.io/v1/splits"
payload := strings.NewReader("{\n \"type\": \"store\",\n \"type_reference\": \"prod_1a2b3c4d\",\n \"recipients\": [\n {\n \"recipient_type\": \"store\",\n \"recipient_reference\": \"store_1a2b3c4d\",\n \"amount\": 25\n }\n ],\n \"description\": \"Q3 revenue share\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://api.creem.io/v1/splits")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"store\",\n \"type_reference\": \"prod_1a2b3c4d\",\n \"recipients\": [\n {\n \"recipient_type\": \"store\",\n \"recipient_reference\": \"store_1a2b3c4d\",\n \"amount\": 25\n }\n ],\n \"description\": \"Q3 revenue share\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creem.io/v1/splits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"store\",\n \"type_reference\": \"prod_1a2b3c4d\",\n \"recipients\": [\n {\n \"recipient_type\": \"store\",\n \"recipient_reference\": \"store_1a2b3c4d\",\n \"amount\": 25\n }\n ],\n \"description\": \"Q3 revenue share\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"mode": "test",
"object": "split",
"store_id": "store_1a2b3c4d",
"type": "store",
"type_reference": "prod_1a2b3c4d",
"enabled": true,
"recipients": [
{
"type": "percentage",
"recipient_type": "store",
"recipient_reference": "store_1a2b3c4d",
"amount": 25,
"enabled": true,
"invite_status": "pending"
}
],
"created_at": 1735689600000,
"description": "Q3 revenue share"
}Authorizations
API key for authentication. You can find your API key in the Creem dashboard under Settings > API Keys.
Body
Split creation payload
What the split applies to: store (every payment to your store) or product (payments for one product).
store, product "store"
The id of the entity the split applies to: your store id when type is store, or the product id when type is product.
"prod_1a2b3c4d"
The recipients of the split and their percentage shares. Between 1 and 10 recipients; shares must sum to at most 100.
Show child attributes
Show child attributes
An optional human-readable description of the split.
"Q3 revenue share"
Response
Successfully created the split
Unique identifier for the object.
String representing the environment.
test, prod, sandbox String representing the object's type. Objects of the same type share the same value.
"split"
The id of the store that owns this split.
"store_1a2b3c4d"
What the split applies to: store (every payment to the store) or product (payments for a specific product).
store, product "store"
The id of the entity the split applies to: the store id when type is store, or the product id when type is product.
"prod_1a2b3c4d"
Whether the split is active. A split created with email invitees starts disabled and activates once the first invitee accepts.
true
The recipients of the split and their shares.
Show child attributes
Show child attributes
Creation date of the split as a timestamp.
1735689600000
A human-readable description of the split.
"Q3 revenue share"