API

Before getting started, please obtain your API keys from the dashboard and deploy your Business Auto account through the Shakesco app.

Refer to the Integration guide for instructions on parsing values. Additionally, visit the Start section to ensure your auto-payment account is configured to process payments.

If you want to test out the system, just go here.

Test

ℹ️
We fund your test delegate address automatically, so you don’t need to enter an amount in testing mode.

Before getting started, send a test request to make sure everything is okay.

Request test address (User)

ℹ️
This is a POST request

First, request a delegate address by entering your business smart wallet address (it’s the same for both Ethereum and Polygon) along with your API key:

Send a request to this url https://autopay.shakesco.com/delegate_address. Here is an Example:

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/delegate_address",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    smart_wallet: your_smart_wallet_address,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });
Response
cmd
{
  id: 1,
  test_delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
}

Request test address (Business)

ℹ️
This is a POST request

If you want to test a request to a business, request a business delegate address by entering your business smart wallet address (it’s the same for both Ethereum and Polygon) along with your API key:

Send a request to this url https://autopay.shakesco.com/buss_delegate_address. Here is an Example:

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/buss_delegate_address",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    smart_wallet: your_smart_wallet_address,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });
Response
cmd
{
  id: 1,
  test_delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
}

Test Request

You can now send a test request:

ℹ️
This is a POST request

Select the period you want and enter the delegate address requested above. Enter the details as advised below.

Send a request to this url https://autopay.shakesco.com/request. Here is an Example:

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/request",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    "auto_address": "0x309E7d835ccE6E74BC72A2E523fa7f79FFC0d413",
    "network": "11155111",
    "delegate_address": YOUR_TEST_DELEGATE_ADDRESS,
    "currency_code": "USD",
    "period": PERIOD,
    "amount": "0",
    "token_address": "",
    "should_split": false,
    "splitters": [],
    "splitters_amount": []
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });
Response
cmd
{
  id: 1,
  test_delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
  result: "Requested User successfully"
}
Response (If Business)
cmd
{
  id: 1,
  test_delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
  result: "Requested Business successfully",
}
ℹ️
Check if the request is sent to your Shakesco app. If you request business check on Business wallet side, if you request user, check on Personal wallet side.

Live Request

ℹ️
This is a POST request

To check if you can request a certain user check here. To check which payer you are requesting, check here

To request a customer or a business, send a request to this url https://autopay.shakesco.com/request. Here is an Example:

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/request",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    auto_address: your_auto_address,
    network: Network,
    delegate_address: user_delegate_address,
    currency_code: code,
    period: Period,
    amount: Amount,
    token_address: Token,
    should_split: Split,
    splitters: Splitters,
    splitters_amount: split_amounts,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

Info

user_delegate_address

User’s Shakesco card/ Business card address.

your_auto_address

Your Business auto account address. Can be found in Dashboard. Depending on Network.

Network

Depending on where your Business auto account address is deployed. Enter 1 for Ethereum or 137 for Polygon

Period

Period to request payment. Make sure it is in seconds

Amount

Amount to request. Parse amount depending on the currency code.

code

Currency code that you want to request payment with

Token

If you want to request a token, enter the token address. If you want to request Ethereum or Polygon, enter an empty string.

Split

If you want to allow split payment. Enter true or false.

Splitters

Addresses of splitters. Enter an empty array if you don’t want split auto-payment.

split_amounts

Amount each splitter will pay. Parse depending on currency code

Response

cmd
{
  id: 1,
  delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
  result: "Requested User successfully"
}

Response (If Business)

cmd
{
  id: 1,
  delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
  result: "Requested Business successfully",
}

Response (If Already Requested)

cmd
{
  id: 1,
  delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
  result: "User has already been requested",
}

Response (If Already Requested Business)

cmd
{
  id: 1,
  delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
  result: "Business has already been requested",
}

Check Payer

ℹ️
This is a POST request

Before requesting, check if the payer is a business or user. Businesses and customers have different charges per every successful transaction.

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/is_business",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    delegate_address: user_delegate_address,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

Info

user_delegate_address

User’s Shakesco/Business card address.

Response

cmd
{
  id: 1,
  is_business: "false"
}

Can Request

ℹ️
This is a POST request

Before requesting, check if the payer can be requested. If not, they should accept requests from there Shakesco app.

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/can_request",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    delegate_address: user_delegate_address,
    network: Network
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

Info

user_delegate_address

User’s Shakesco/Business card address.

Network

Depending on where your Business auto account address is deployed. Enter 1 for Ethereum or 137 for Polygon

Response

cmd
{
  id: 1,
  status: "true"
}

Currency codes

ℹ️
This is a GET request

To check all the currency codes we support, send a request to this url https://autopay.shakesco.com/codes. Here is an Example:

index.js
const config = {
  method: "GET",
  url: "https://autopay.shakesco.com/codes",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

Response

cmd
{
    id: 1,
    currency_codes: [
        "MATIC",
        "FJD",
        "MXN",
        "ETH",
        "LVL",
        "USDT",
        "CDF",
        "BBD",
        "EUR",
        "UGX",
        "GLM",
        "BTC",
        "RAY",
        "KES",
        "INR",
        "USD"
        .........
        ]
}

Has Paid

ℹ️
This is a POST request
⚠️
Check this request wherever you’re offering your service.

To check if payment has been made, send a request to this url https://autopay.shakesco.com/has_paid. Here is an Example:

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/has_paid",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    delegate_address: user_delegate_address,
    auto_address: your_auto_address,
    network: Network,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

Info

user_delegate_address

User’s Shakesco card/ Business card address.

your_auto_address

Your Business auto account address. Can be found in Dashboard. Depending on Network.

Network

Depending on where your Business auto account address is deployed. Enter 1 for Ethereum or 137 for Polygon

Response

cmd
{
    id: 1,
    delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
    has_paid: "true",
}

Has Requested

ℹ️
This is a POST request

To check if request has been made, send a request to this url https://autopay.shakesco.com/request_sent. Here is an Example:

index.js
const config = {
  method: "POST",
  url: "https://autopay.shakesco.com/request_sent",
  headers: {
    accept: "application/json",
    Authorization: `Bearer ${process.env.YOUR_API_KEY}`,
  },
  data: {
    delegate_address: user_delegate_address,
    auto_address: your_auto_address,
    network: Network,
  },
};

axios
  .request(config)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

Info

user_delegate_address

User’s Shakesco card/ Business card address.

your_auto_address

Your Business auto account address. Can be found in Dashboard. Depending on Network.

Network

Depending on where your Business auto account address is deployed. Enter 1 for Ethereum or 137 for Polygon

Response

cmd
{
    id: 1,
    delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
    requested: "false",
}

Errors

400

Check the currency code that you are parsing. Make sure it in Upper case. Ie: BTC, ETH etc

cmd
{
    error: "Bad Request"
}

Check if you have parsed API_KEY. Also parse API_KEY like so Bearer API_KEY in Authorization.

401

cmd
{
    error: "Unauthorized"
}

402

Make payment because you have reached your request limit.

cmd
{
    error: "Payment Required"
}

403

Check if you have parsed or the user has given you a valid Shakesco/Business Card address

cmd
{
    error: "Forbidden"
}

404

Check if you have parsed your API_KEY correctly. Also check if you have parsed the auto_address associated with your API_KEY.

cmd
{
    error: "Not a valid address"
}
cmd
{
    error: "User Not Found"
}

500

Something went wrong. If the issue persists, contact us immediatelty

cmd
{
    error: "Internal Server Error"
}