> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shakesco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Request Payment

> Send a recurring payment request to a user or business

<span style={{display:"none"}}>For the complete documentation index, see [llms.txt](/llms.txt).</span>

Send a payment request to initiate recurring subscriptions or one-time charges.

## Request Body

<ParamField body="auto_address" type="string" required>
  Your Business Auto account address from dashboard
</ParamField>

<ParamField body="network" type="string" required>
  * `1` = Ethereum - `137` = Polygon - `11155111` = Sepolia testnet
</ParamField>

<ParamField body="delegate_address" type="string" required>
  User's Shakesco card or Business card address
</ParamField>

<ParamField body="currency_code" type="string" required>
  Currency code (e.g., USD, EUR, KES). [See all
  codes](/api-reference/autopayments/codes)
</ParamField>

<ParamField body="period" type="string" required>
  Payment interval in seconds. Use `0` for one-time payment. Minimum: `172800`
  (2 days)
</ParamField>

<ParamField body="amount" type="string" required>
  Payment amount in specified currency
</ParamField>

<ParamField body="token_address" type="string">
  Token contract address. Empty string for native currency
</ParamField>

<ParamField body="should_split" type="boolean">
  Enable split payments
</ParamField>

<ParamField body="splitters" type="array">
  Array of splitter addresses. Empty array if no split
</ParamField>

<ParamField body="splitters_amount" type="array">
  Array of amounts for each splitter
</ParamField>

## Response

<ResponseField name="id" type="integer">
  Request ID
</ResponseField>

<ResponseField name="delegate_address" type="string">
  Address that was requested
</ResponseField>

<ResponseField name="result" type="string">
  * `Requested User successfully` - `Requested Business successfully` - `User
      has already been requested` - `Business has already been requested`
</ResponseField>

<RequestExample>
  ```javascript Node.js theme={null}
  const response = await fetch("https://payments.shakesco.com/request", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      auto_address: "0x309E7d835ccE6E74BC72A2E523fa7f79FFC0d413",
      network: "137",
      delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
      currency_code: "USD",
      period: "2592000",
      amount: "20",
      token_address: "",
      should_split: false,
      splitters: [],
      splitters_amount: [],
    }),
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://payments.shakesco.com/request",
      headers={
          "Authorization": f"Bearer {API_KEY}",
          "Content-Type": "application/json"
      },
      json={
          "auto_address": "0x309E7d835ccE6E74BC72A2E523fa7f79FFC0d413",
          "network": "137",
          "delegate_address": "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
          "currency_code": "USD",
          "period": "2592000",
          "amount": "20",
          "token_address": "",
          "should_split": False,
          "splitters": [],
          "splitters_amount": []
      }
  )

  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id": 1,
    "delegate_address": "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
    "result": "Requested User successfully"
  }
  ```

  ```json Already Requested theme={null}
  {
    "id": 1,
    "delegate_address": "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
    "result": "User has already been requested"
  }
  ```
</ResponseExample>
