Admin APIAdmin Business Pending Campaigns API
GET /payment-campaigns — 결제미완 캠페인
UNPAID + PAYMENT_PENDING 캠페인을 결제 요청 오래된 순으로 조회합니다.
결제미완 캠페인 목록
기업이 결제 액션을 안 해서 다음 단계로 진행하지 못하는 캠페인을 한 번에 조회합니다.
- UNPAID: admin이 명시적으로 결제미완으로 처리한 상태 (verification 행
status=UNPAID) - PAYMENT_PENDING: 영업팀에 결제 요청이 전달되어 대기 중인 상태 (verification 행
status=PAYMENT_PENDING)
정렬은 결제 요청 시점(paymentRequestedAt) ASC, 없으면 등록일 ASC. 오래 방치된 것이 위로 올라옵니다.
HTTP 요청
GET /ai/admin/pending/payment-campaigns
Authorization: Bearer {access_token}Query Parameters
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
page | int | 아니오 | 0 | Spring Pageable |
size | int | 아니오 | 20 | |
sort | string | 아니오 | (서버 고정) | 본 엔드포인트는 sort 파라미터를 무시합니다. |
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "결제미완 캠페인 조회 성공",
"data": {
"page": {
"number": 0,
"size": 20,
"totalElements": 7,
"totalPages": 1
},
"content": [
{
"campaignNo": 2401,
"campaignTitle": "테스트 캠페인 A",
"registeredAt": "2026-04-21T10:12:00",
"contractDeadline": "2026-05-05T18:00:00",
"paymentStatus": "PAYMENT_PENDING",
"paymentRequestedAt": "2026-04-25T14:30:00",
"businessId": "biz-member-id",
"businessName": "테스트 기업",
"managers": [
{ "managerNo": 1, "name": "홍길동", "email": "hong@example.com", "phone": "010-1234-5678", "isDefault": true }
]
}
],
"summary": {
"UNPAID": 3,
"PAYMENT_PENDING": 4
}
}
}응답 필드
| 필드 | 타입 | 설명 |
|---|---|---|
campaignNo | Integer | 캠페인 번호 |
campaignTitle | string | 캠페인 제목 |
registeredAt | LocalDateTime | 캠페인 등록일 (Collab.regi_date) |
contractDeadline | LocalDateTime? | 계약 마감일 (CampaignSchedule CONTRACT_CREATION endDate, 없으면 null) |
paymentStatus | enum | UNPAID | PAYMENT_PENDING |
paymentRequestedAt | LocalDateTime? | 결제 요청 시점. PAYMENT_PENDING 전환 시점 (verification.updatedAt). UNPAID 는 null. |
businessId | string | 기업 ID (Member.id) |
businessName | string? | 기업명 |
managers | array | 캠페인 담당자 목록(N:M, 동등). 각 항목 { managerNo, name, email, phone, isDefault }. 담당자 미지정 시 빈 배열 |
summary 는 현재 페이지가 아닌 전체 결과에서의 status별 카운트입니다.