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

# Limits and EDD

> Check customer limits, and submit Enhanced Due Diligence to raise them.

Every customer has daily payin and payout limits. When a customer needs more, or when risk signals appear, Zapyd asks for **Enhanced Due Diligence (EDD)**: proof of income and of the purpose of the transactions.

**Base URL:** `https://sandbox.zapyd.com/ren/api/v1`

## Check the limit before each order

Call [`GET /payin/limits/{customer_id}`](/api-reference-exchange/endpoint/payin/config/edd-limits-\{customer_id}) or [`GET /payout/limits/{customer_id}`](/api-reference-exchange/endpoint/payout/config/edd-limits-\{customer_id}).

```json theme={null}
{
  "daily_limit": 20000,
  "available_limit": 12000,
  "payment_method_limits": {
    "per_transaction_limit": { "UPI": 20000, "IMPS": 20000 },
    "total_available_limit": { "UPI": 12000, "IMPS": 12000 }
  },
  "full_limit_reset_timestamp": "2026-10-01T00:00:00Z",
  "is_edd_required": false,
  "is_limit_increase_available": true
}
```

| Field | Meaning |
| - | - |
| `daily_limit` | The customer's maximum per day |
| `available_limit` | What's left today |
| `payment_method_limits` | Per-transaction maximum and remaining amount, per payment method |
| `full_limit_reset_timestamp` | When the full daily limit is available again |
| `is_edd_required` | The customer must complete EDD before transacting more |
| `is_limit_increase_available` | The customer can apply for a higher limit through EDD |

### Decide what to do

```mermaid theme={null}
flowchart TD
    A[Get limits] --> B{available_limit covers the amount?}
    B -->|Yes| C[Create the quotation]
    B -->|No| D{is_edd_required or is_limit_increase_available?}
    D -->|Yes| E[Collect EDD]
    D -->|No| F[Block until full_limit_reset_timestamp]
    E --> G[EDD webhook: VERIFIED]
    G --> A
```

## When EDD applies

* A customer reaches a transaction volume threshold.
* Risk checks flag the customer's activity.
* The customer asks for a higher daily limit.

## Submit EDD

Upload the documents to storage Zapyd can reach, then send the URLs. At least one bank statement is required. Tax documents (for India, ITR reports) are optional but speed up the review. For password-protected PDFs, send the passwords in the same order as the files, with `""` for a file without one.

<Tabs>
  <Tab title="Payin EDD">
    [`POST /payin/edd/save`](/api-reference-exchange/endpoint/payin/edd/edd-save)

    ```json theme={null}
    {
      "customer_id": "2e104290-07c8-49f1-a5ca-0d27f0078f8a",
      "source_of_income": "SALARY",
      "bank_statement_url": ["https://files.example.com/edd/bank-statement.pdf"],
      "bank_statement_passwords": [""],
      "tax_document_url": ["https://files.example.com/edd/itr-2025.pdf"],
      "tax_document_passwords": ["pass123"],
      "purpose": "Investment",
      "supporting_purpose_doc_url": ["https://files.example.com/edd/portfolio.pdf"],
      "account_operator": "SELF",
      "account_operator_name": "Priya Sharma",
      "p2p_trading_status": false
    }
    ```

    * `source_of_income`: `SALARY`, `BUSINESS_INCOME` or `OTHERS`.
    * `purpose`: free text. The widget offers `Investment`, `Trading`, `Payments`, `Lending / Repayments`, `Gifting`, `Donations / Charity`, `Remittance` and `Legal Settlements`.
    * `account_operator`: `SELF`, `FAMILY` or `THIRD PARTY`. `relation_with_account_operator` is required when it isn't `SELF`.
    * Optional: `bank_statement_passwords`, `tax_document_url`, `tax_document_passwords`, `supporting_purpose_doc_url`, and `country_specific_documents` (extra files keyed by document type).
  </Tab>

  <Tab title="Payout EDD">
    [`POST /payout/edd/save`](/api-reference-exchange/endpoint/payout/edd/edd-save)

    ```json theme={null}
    {
      "customer_id": "2e104290-07c8-49f1-a5ca-0d27f0078f8a",
      "source_of_income": "SALARY",
      "bank_statement_url": ["https://files.example.com/edd/bank-statement.pdf"],
      "bank_statement_passwords": [""],
      "tax_document_url": ["https://files.example.com/edd/itr-2025.pdf"],
      "tax_document_passwords": [""],
      "declaration": true
    }
    ```

    `declaration` records the customer's consent to the EDD declaration.
  </Tab>
</Tabs>

Which documents fit each purpose is set by Indian AML rules. See [EDD document requirements](/guides/country-guides/india/edd-guide).

## Track the review

Reviews usually take 24 to 48 hours. The EDD starts as `PROCESSING`. It can move to `DOCS_REQ` (more documents needed) or `IN_REVIEW`, and ends as `VERIFIED` or `FAILED`. Zapyd sends an `EDD` webhook on each change.

| Status | What to do |
| - | - |
| `VERIFIED` | Get the limits again and show the new values |
| `FAILED` | Standard limits stay. Zapyd may not share the reason, because AML rules forbid tipping off. The customer can submit again with better documents |

List past submissions with [`GET /payin/edd/list`](/api-reference-exchange/endpoint/payin/edd/edd-list) or [`GET /payout/edd/list`](/api-reference-exchange/endpoint/payout/edd/edd-list).

## Test it in sandbox

Submit EDD, then set the result with [Mock Payin EDD Status](/api-reference-exchange/endpoint/payin/edd/edd-mock-status) or [Mock Payout EDD Status](/api-reference-exchange/endpoint/payout/edd/edd-mock-status), using the EDD `id` and a `status`: `VERIFIED`, `FAILED`, `IN_REVIEW`, `DOCS_REQ` or `PROCESSING`.
