PartnerCut · Documentation API v1 · stable Ouvrir le CRM →

POST /api/v1/customers/attribute

Rattacher un client

Déclare qu'un client vient d'un ambassadeur. À appeler à l'inscription, avec le code lu dans l'URL ou dans le cookie posé par le SDK.

Portée requise : customers:write. écrit dans votre projet

Le corps de la requête

ChampTypeCe qu'il fait
customerId
obligatoire
string L'identifiant du client chez vous, celui-là même que vous enverrez ensuite dans vos événements de revenu.
referralCode
obligatoire
string Le code lu dans le paramètre « ref » de l'URL, ou dans le cookie que le SDK a posé au clic.
⚠ Un code inconnu ne fait PAS échouer l'appel : la réponse rend « attributed: false » avec son motif. Un « ?ref= » périmé traîne des années dans les favoris et les emails ; il ne doit pas casser une inscription.
clickedAt string Date du contact d'origine, ISO 8601. Sert quand vous rattachez a posteriori, par exemple lors d'une reprise de données.

Exemples

cURL

curl -X POST https://partnercut.fr/api/v1/customers/attribute \
  -H "Authorization: Bearer $PARTNERCUT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"customerId":"cus_demo_003","referralCode":"CLAIRE01"}'

PHP

$response = $client->request('POST', 'https://partnercut.fr/api/v1/customers/attribute', [
    'headers' => ['Authorization' => 'Bearer '.$key],
    'json' => [
        'customerId' => 'cus_demo_003',
        'referralCode' => 'CLAIRE01',
    ],
]);

// 201 : première écriture. 200 : rejeu, la même commission est rendue.
$created = 201 === $response->getStatusCode();
$data = $response->toArray()['data'];

JavaScript

const response = await fetch('https://partnercut.fr/api/v1/customers/attribute', {
    method: 'POST',
    headers: {
        Authorization: `Bearer ${key}`,
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        "customerId": "cus_demo_003",
        "referralCode": "CLAIRE01"
    }),
})

// 201 : première écriture. 200 : rejeu, la même commission est rendue.
const created = response.status === 201
const { data } = await response.json()

Les réponses

CodeQuand
200 Toujours 200, que le rattachement ait eu lieu ou non. Lisez « attributed » et « reason ».

Ce qu'il faut savoir

Le rattachement est VERROUILLÉ une fois posé : un second appel avec un autre code ne le déplace pas. Sans cela, le dernier lien cliqué volerait la commission du premier.
La durée du rattachement est celle du programme. Au-delà, les revenus de ce client ne commissionnent plus.

Essayer pour de vrai