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

# Test Mode

> Testing API integration without creating actual data

Test API integration without creating actual data.

<Info>
  When calling with `isTest: true`, request parameter validation is performed identically to production, but **data is not saved to the database**.
</Info>

## Usage

**POST requests**: Add `isTest: true` to the request body.

```bash theme={null}
curl -X POST "https://sandbox-sdk-api.playcamp.io/v1/server/payments" \
  -H "Authorization: Bearer ak_server_xxx:secret" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "test_user",
    "transactionId": "test_txn_001",
    "productId": "gem_pack_100",
    "amount": 9900,
    "currency": "KRW",
    "platform": "Android",
    "distributionType": "MOBILE_STORE",
    "purchasedAt": "2024-01-15T10:30:00.000Z",
    "isTest": true
  }'
```

<Note>
  **Recommended**: Verify integration in Sandbox environment with `isTest: true` before campaign launch, then remove the `isTest` parameter for actual campaign operation.
</Note>

**GET requests**: Add `isTest=true` as a query parameter.

```bash theme={null}
curl "https://sandbox-sdk-api.playcamp.io/v1/server/campaigns?isTest=true" \
  -H "Authorization: Bearer ak_server_xxx:secret"
```

## Supported APIs

### Server API (Write)

| API                           | isTest Support |
| ----------------------------- | -------------- |
| POST /sponsors                | Yes (body)     |
| DELETE /sponsors/user/:userId | Yes (query)    |
| POST /payments                | Yes (body)     |
| POST /payments/:id/refund     | Yes (body)     |
| POST /coupons/validate        | Yes (body)     |
| POST /coupons/redeem          | Yes (body)     |

### Server API (Read)

| API                         | isTest Support |
| --------------------------- | -------------- |
| GET /campaigns              | Yes (query)    |
| GET /campaigns/:id          | Yes (query)    |
| GET /campaigns/:id/creators | Yes (query)    |
| GET /creators/search        | Yes (query)    |
| GET /creators/:creatorKey   | Yes (query)    |

### Client API (Read)

| API                         | isTest Support |
| --------------------------- | -------------- |
| GET /campaigns              | Yes (query)    |
| GET /campaigns/:id          | Yes (query)    |
| GET /campaigns/:id/creators | Yes (query)    |
| GET /campaigns/:id/packages | Yes (query)    |
| GET /creators/search        | Yes (query)    |
| GET /creators/:creatorKey   | Yes (query)    |
| GET /sponsors               | Yes (query)    |

## Integration Completion

To complete integration with PlayCamp, **at least one API call** is required for each category.

<Note>
  Requests using the `isTest: true` flag also count toward integration completion.
</Note>

| Category            | Required API (call at least 1)                                         |
| ------------------- | ---------------------------------------------------------------------- |
| **Boost (Sponsor)** | `POST /v1/server/sponsors`                                             |
| **Payment**         | `POST /v1/server/payments`                                             |
| **Coupon**          | `POST /v1/server/coupons/validate` or `POST /v1/server/coupons/redeem` |

All category integrations must be completed to properly operate campaigns.
