Welcome to the GrowSumo Integration Docs

Here you can find guides, documentation, support and FAQs to get you setup on GrowSumo.

Chat with us by clicking the message bubble in the bottom right if you are having any trouble!

Get Started
Suggest Edits

Customers Overview

Create a referred customer in GrowSumo

 

Remember: You must create a customer for all referred users

Customers in GrowSumo are used to connect partners and their referrals.

Description

Customers represent the users who have been referred by a Partner.

Customers are linked to the Partner that referred them through a partner_key which must be provided on the Create Customer endpoint.

The partner_key is retrievable from growsumo.data.partner_key, which is created by the GrowSumoJS snippet.

Model

Attribute
Type
Description
Limit
Example

key

string

A unique identifier used to reference the customer

255

cus_a80cb515fe

provider_key

string

A unique identifier given by a payment provider (Stripe, Recurly, Chargebee etc)

255

name

string

Should be either the customer's name, or the company name

100

John Smith

email

string

The customers email, must be a valid email

255

johnsmith@gmail.com

test

boolean

True if created by a test partner

created_at

unix timestamp

Immutable Unix timestamp in milliseconds taken at time of creation

1472503412153

updated_at

unix timestamp

Unix timestamp in milliseconds taken at time of last update

1472503412153

Suggest Edits

Create Customer

 
posthttps://api.growsumo.com/v1/customers
curl --request POST \
  --url https://api.growsumo.com/v1/customers
var request = require("request");

var options = { method: 'POST', url: 'https://api.growsumo.com/v1/customers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/customers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.growsumo.com/v1/customers");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/customers"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customer created",
  "rdata": {
      "key": "cus_a80SV515feLAA",
      "provider_key": "cus_A2VAIipQOkS7nV",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"test": false,
      "created_at":1472503412153,
      "updated_at":1472503412153
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Body Params

key
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer. This is the same as the "Customer_key" that can be assigned using GrowSumoJS

partner_key
required

(e.g. bertramgilfoyle) The key of the partner that is responsible for the customer

email
required

(e.g. johnsmith@gmail.com) The customers email, must be a valid email

name

(e.g. John Smith) Should be either the customer's name, or the company name

 
Suggest Edits

Get Customers

Returns a list of all your customers

 
gethttps://api.growsumo.com/v1/customers
curl --request GET \
  --url https://api.growsumo.com/v1/customers
var request = require("request");

var options = { method: 'GET', url: 'https://api.growsumo.com/v1/customers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/customers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.growsumo.com/v1/customers");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/customers"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customers returned",
  "rdata": [
   	{
      "key": "cus_a80SV515feLAA",
      "provider_key": "cus_A2VAIipQOkS7nV",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"test": false,
      "created_at":1472503412153,
      "updated_at":1472503412153
  	},
    {...},
    {...}
  ]
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}
 
Suggest Edits

Update Customer

Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

 
patchhttps://api.growsumo.com/v1/customers/key
curl --request PATCH \
  --url https://api.growsumo.com/v1/customers/key
var request = require("request");

var options = { method: 'PATCH',
  url: 'https://api.growsumo.com/v1/customers/key' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/customers/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://api.growsumo.com/v1/customers/key");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/customers/key"

response = requests.request("PATCH", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customer updated",
  "rdata": {
      "key": "cus_a80SV515feLAA",
      "provider_key": "cus_A2VAIipQOkS7nV",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"test": false,
      "created_at":1472503412153,
      "updated_at":1472503412153
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

Body Params

key

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

email

(e.g. johnsmith@gmail.com) The customers email, must be a valid email

name

(e.g. John Smith) Should be either the customer's name, or the company name

 
Suggest Edits

Archive Customer

Archives the specified customer

 
deletehttps://api.growsumo.com/v1/customers/key
curl --request DELETE \
  --url https://api.growsumo.com/v1/customers/key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.growsumo.com/v1/customers/key' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/customers/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.growsumo.com/v1/customers/key");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/customers/key"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customer archived"
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

 
Suggest Edits

Actions Overview

Tell GrowSumo a customer has taken a specific action

 

Description

Actions represent a rewardable action a customer has made.
Actions are linked to customers through the customer_key listed below.

Model

Attribute
Type
Description
Limit
Example

name

string

Name of the reward action in GrowSumo

255

downloadEbook

customer_key

string

Key of the customer the action is tied to

255

cus_a80cb515fe

amount

integer

An optional counter

1000000

2

Suggest Edits

Create Action

Give a reward for a specific action

 
posthttps://api.growsumo.com/v1/actions
curl --request POST \
  --url https://api.growsumo.com/v1/actions
var request = require("request");

var options = { method: 'POST', url: 'https://api.growsumo.com/v1/actions' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/actions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.growsumo.com/v1/actions");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/actions"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
    "adata": null,
    "bdata": null,
    "message": "Event tracked",
    "rdata": null,
    "status": 200
}

Body Params

customer_key
required

The customer that took the action

name
required

The name of the action. Should match the reward trigger setup in GrowSumo.

value
int32

Optional counter of action taken

 
Suggest Edits

Transactions Overview

Tell GrowSumo a customer has made a purchase

 

Description

Transactions represent a purchase that a Customer has made. They are linked through the customer_key listed below.

A Transaction has a key that uniquely identifies it.

Model

Attribute
Type
Description
Limit
Example

key

string

Unique immutable identifier set on creation

255

tran_a80cb515fe

customer_key

string

Key of the customer the transaction is tied to

255

cus_a80cb515fe

partner_key

string

Key of the partner who referred the customer

255

bertramgilfoyle

amount

integer

The amount of the transaction in cents. For example, 9000 == $90.00

1000000

9000

currency

string

Must be the ISO 3 character code

3

USD

test

boolean

True if created in test environment

true

created_at

unix timestamp

Immutable Unix timestamp in milliseconds taken at time of last update

1472503412153

updated_at

unix timestamp

Unix timestamp in milliseconds taken at time of last update

1472503412153

Suggest Edits

Create Transaction

Creates a new Subscription

 
posthttps://api.growsumo.com/v1/customers/customer_key/transactions
curl --request POST \
  --url https://api.growsumo.com/v1/customers/customer_key/transactions
var request = require("request");

var options = { method: 'POST',
  url: 'https://api.growsumo.com/v1/customers/customer_key/transactions' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/customers/customer_key/transactions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.growsumo.com/v1/customers/customer_key/transactions");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/customers/customer_key/transactions"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Transaction created",
  "rdata": {
    "key": "tran_a80cb515fe",
    "customer_key": "cus_A2ns20a2L93",
    "partner_key": "bertramgilfoyle",
    "amount":3000,
    "currency": "USD",
    "created_at":1472503412153,
    "updated_at":1472503412153,
    "test": false,
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

customer_key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

Body Params

key

(e.g. tran_a80cb515fe) A unique identifier used to reference the Transaction

amount
int32

(e.g. 2000) The amount of the transaction in cents. For example, 2000 == $20.00

currency

(e.g. USD) Must be the ISO 3 character code, a list of supported currencies can be found in API Summary

product_key

(e.g. productABC ) Only required for Custom Product offers. A unique identifier used to reference a product.

 
Suggest Edits

Archive Transaction

 
deletehttps://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key
curl --request DELETE \
  --url https://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key");

xhr.send(data);
import requests

url = "https://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Transaction archived",
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

customer_key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

transaction_key
string
required

(e.g. tran_a80cb515fe) A unique identifier used to reference the Transaction