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

# 테스트 모드

> 실제 데이터 생성 없이 API 연동 테스트

실제 데이터를 생성하지 않고 API 연동을 테스트할 수 있습니다.

<Info>
  `isTest: true`로 호출 시 요청 파라미터 검증은 실제와 동일하게 수행되지만, **데이터는 DB에 저장되지 않습니다**.
</Info>

## 사용 방법

**POST 요청**: 요청 body에 `isTest: true`를 추가합니다.

```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>
  **권장**: 캠페인 시작 전 Sandbox 환경에서 `isTest: true`로 연동을 검증한 후, 실제 캠페인 시 `isTest` 파라미터를 제거하세요.
</Note>

**GET 요청**: 쿼리 파라미터로 `isTest=true`를 추가합니다.

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

## 지원 API

### Server API (쓰기)

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

### Server API (읽기)

| API                         | isTest 지원 |
| --------------------------- | --------- |
| GET /campaigns              | O (query) |
| GET /campaigns/:id          | O (query) |
| GET /campaigns/:id/creators | O (query) |
| GET /creators/search        | O (query) |
| GET /creators/:creatorKey   | O (query) |

### Client API (읽기)

| API                         | isTest 지원 |
| --------------------------- | --------- |
| GET /campaigns              | O (query) |
| GET /campaigns/:id          | O (query) |
| GET /campaigns/:id/creators | O (query) |
| GET /campaigns/:id/packages | O (query) |
| GET /creators/search        | O (query) |
| GET /creators/:creatorKey   | O (query) |
| GET /sponsors               | O (query) |

## 연동 완료 조건

PlayCamp와의 연동을 완료하려면 각 카테고리별로 **최소 1회 이상**의 API 호출이 필요합니다.

<Note>
  `isTest: true` 플래그를 사용한 요청도 연동 완료 카운트에 포함됩니다.
</Note>

| 카테고리              | 필수 API (1개 이상 호출)                                                      |
| ----------------- | ---------------------------------------------------------------------- |
| **부스트 (Sponsor)** | `POST /v1/server/sponsors`                                             |
| **결제 (Payment)**  | `POST /v1/server/payments`                                             |
| **쿠폰 (Coupon)**   | `POST /v1/server/coupons/validate` 또는 `POST /v1/server/coupons/redeem` |

모든 카테고리의 연동이 완료되어야 캠페인을 정상적으로 운영할 수 있습니다.
