> ## 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.

# Check Payment Status

> Verify if user has made payment

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

Check payment status before granting service access. This is your primary verification method.

<Warning>
  **Always check payment status before delivering service.** This prevents
  unauthorized access.
</Warning>

## Request Body

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

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

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

## Response

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

<ResponseField name="delegate_address" type="string">
  Checked address
</ResponseField>

<ResponseField name="has_paid" type="string">
  * `true` = Payment received - `false` = No payment
</ResponseField>

<RequestExample>
  ```javascript Node.js theme={null}
  const response = await fetch("https://payments.shakesco.com/has_paid", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      delegate_address: "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
      auto_address: "0x309E7d835ccE6E74BC72A2E523fa7f79FFC0d413",
      network: "137",
    }),
  });

  const { has_paid } = await response.json();

  if (has_paid === "true") {
    // Grant service access
  }
  ```

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

  response = requests.post(
      "https://payments.shakesco.com/has_paid",
      headers={
          "Authorization": f"Bearer {API_KEY}",
          "Content-Type": "application/json"
      },
      json={
          "delegate_address": "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
          "auto_address": "0x309E7d835ccE6E74BC72A2E523fa7f79FFC0d413",
          "network": "137"
      }
  )

  data = response.json()
  if data["has_paid"] == "true":
      # Grant service access
      pass
  ```
</RequestExample>

<ResponseExample>
  ```json Paid theme={null}
  {
    "id": 1,
    "delegate_address": "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
    "has_paid": "true"
  }
  ```

  ```json Not Paid theme={null}
  {
    "id": 1,
    "delegate_address": "0xB808ff0E0F4fC24D0cECeED6014f04ecE5bfca36",
    "has_paid": "false"
  }
  ```
</ResponseExample>

<Info>
  For split payments, only check the group leader's address. Other participants
  will return `false`.
</Info>
