POST api/customerfeeds
Each customer added will update any matching referrals to approved and add them as a pre-loaded member based on your account's settings. Each record is processed independently and the response includes a per-record outcome in the same order as the input. Larger integrations should use the CSV bulk import in the admin UI.
Request Information
URI Parameters
Query String:
None.
Body Parameters
A list of customer structures (maximum 10 per request).
Type: Collection of NewCustomer
| Name | Description | Type | Additional information |
|---|---|---|---|
|
The customer's email address. Required. Used as the primary match key against pending referrals and existing members. |
string |
None. |
|
| externalId |
Your system's identifier for this customer (e.g. a Stripe customer id or CRM contact id). Stored on any matched referral for downstream reconciliation and echoed back on the result for caller-side correlation. Optional. |
string |
None. |
| firstName |
Customer first name. Written to referral demographics on match, or to the preloaded member profile. Optional. |
string |
None. |
| lastName |
Customer last name. Written to referral demographics on match, or to the preloaded member profile. Optional. |
string |
None. |
| phone |
Customer phone number. Free-form; no format enforcement. Optional. |
string |
None. |
| addressLine1 |
Customer street address. Optional. |
string |
None. |
| addressLine2 |
Customer street address line 2 (apartment, suite, etc.). Optional. |
string |
None. |
| city |
Customer city. Optional. |
string |
None. |
| region |
Customer region, a region name or ISO_3166-2 subdivision code. Optional. |
string |
None. |
| postalCode |
Customer postal code. Optional. |
string |
None. |
| amount |
Purchase amount associated with this customer. Feeds reward calculation when a matched referral is approved. Defaults to 0 if omitted. Optional. |
decimal number |
None. |
| purchaseDate |
Purchase date associated with this customer. Defaults to the server's current UTC time if omitted. Optional. |
date |
None. |
Request Formats
application/json, text/json
[
{
"email": "sample string 1",
"externalId": "sample string 2",
"firstName": "sample string 3",
"lastName": "sample string 4",
"phone": "sample string 5",
"addressLine1": "sample string 6",
"addressLine2": "sample string 7",
"city": "sample string 8",
"region": "sample string 9",
"postalCode": "sample string 10",
"amount": 1.0,
"purchaseDate": "2026-07-31T03:00:28.9345278Z"
},
{
"email": "sample string 1",
"externalId": "sample string 2",
"firstName": "sample string 3",
"lastName": "sample string 4",
"phone": "sample string 5",
"addressLine1": "sample string 6",
"addressLine2": "sample string 7",
"city": "sample string 8",
"region": "sample string 9",
"postalCode": "sample string 10",
"amount": 1.0,
"purchaseDate": "2026-07-31T03:00:28.9345278Z"
}
]
application/xml, text/xml
<ArrayOfnewCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<newCustomer>
<addressLine1>sample string 6</addressLine1>
<addressLine2>sample string 7</addressLine2>
<amount>1</amount>
<city>sample string 8</city>
<email>sample string 1</email>
<externalId>sample string 2</externalId>
<firstName>sample string 3</firstName>
<lastName>sample string 4</lastName>
<phone>sample string 5</phone>
<postalCode>sample string 10</postalCode>
<purchaseDate>2026-07-31T03:00:28.9345278+00:00</purchaseDate>
<region>sample string 9</region>
</newCustomer>
<newCustomer>
<addressLine1>sample string 6</addressLine1>
<addressLine2>sample string 7</addressLine2>
<amount>1</amount>
<city>sample string 8</city>
<email>sample string 1</email>
<externalId>sample string 2</externalId>
<firstName>sample string 3</firstName>
<lastName>sample string 4</lastName>
<phone>sample string 5</phone>
<postalCode>sample string 10</postalCode>
<purchaseDate>2026-07-31T03:00:28.9345278+00:00</purchaseDate>
<region>sample string 9</region>
</newCustomer>
</ArrayOfnewCustomer>
Response Information
Resource Description
[HTTP Status 200 - OK] One outcome per input record, in the same order.
Type: Collection of NewCustomerResult
| Name | Description | Type | Additional information |
|---|---|---|---|
|
Echoes the email from the input record (trimmed). Primary correlation key back to the caller. |
string |
None. |
|
| externalId |
Echoes the externalId from the input record, if one was provided. |
string |
None. |
| status |
The engine's per-record outcome. One of: ReferralApproved, ReferralUpdated, MemberPreloaded, MemberUpdated, SkippedNoEmail, SkippedNoMatchOptInOff, SkippedAmbiguous, SkippedAlreadyTracked, SkippedPreloadValidationFailed, SkippedDuplicate, SkippedFlowDisabled, or Error. |
string |
None. |
| statusCategory |
Coarse grouping of status to make integrator branching easy. One of Approved, Updated, Preloaded, Skipped, or Error. |
string |
None. |
| message |
Human-readable explanation of the outcome. Populated for skip and error outcomes; may also carry context on successful outcomes. |
string |
None. |
| amount |
Echoes the purchase amount from the input record. |
decimal number |
None. |
| purchaseDate |
Echoes the purchase date from the input record (or the server-assigned UTC time if omitted on input). |
date |
None. |
Response Formats
application/json, text/json
[
{
"email": "sample string 1",
"externalId": "sample string 2",
"status": "sample string 3",
"statusCategory": "sample string 4",
"message": "sample string 5",
"amount": 1.0,
"purchaseDate": "2026-07-31T03:00:28.950135Z"
},
{
"email": "sample string 1",
"externalId": "sample string 2",
"status": "sample string 3",
"statusCategory": "sample string 4",
"message": "sample string 5",
"amount": 1.0,
"purchaseDate": "2026-07-31T03:00:28.950135Z"
}
]
application/xml, text/xml
<ArrayOfnewCustomerResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<newCustomerResult>
<email>sample string 1</email>
<externalId>sample string 2</externalId>
<status>sample string 3</status>
<statusCategory>sample string 4</statusCategory>
<message>sample string 5</message>
<amount>1</amount>
<purchaseDate>2026-07-31T03:00:28.950135+00:00</purchaseDate>
</newCustomerResult>
<newCustomerResult>
<email>sample string 1</email>
<externalId>sample string 2</externalId>
<status>sample string 3</status>
<statusCategory>sample string 4</statusCategory>
<message>sample string 5</message>
<amount>1</amount>
<purchaseDate>2026-07-31T03:00:28.950135+00:00</purchaseDate>
</newCustomerResult>
</ArrayOfnewCustomerResult>