Glowb Dev Docs
SaaS API인플루언서 SaaS

GET /ai/influence/campaigns/applications

캠페인 신청 목록 조회

캠페인 신청 목록 조회

인플루언서가 신청한 캠페인 목록을 조회합니다. 선정 대기, 선정, 미선정 7일 이내 건을 포함합니다.

HTTP 요청

GET /ai/influence/campaigns/applications
Authorization: Bearer {access_token}

응답 구조 — 가이드라인 버전별 폴리모픽

applications 리스트는 두 종류의 항목이 섞여 내려옵니다. 항목의 guidelineVersion 으로 분기하세요.

guidelineVersion항목 형태일정 필드
v1~v3flat (기존 구조 그대로)top-level 에 feedbackDeadline / contentSubmissionDeadline / scriptReviewDeadline / contentReviewDeadline / uploadDeadline / uploadApprovalDeadline
v4 이상nested (영역별 그룹핑)schedule 블록 (카드 표시값 + 원시 마감일)

[TASK-071] v4 항목은 카드 UI 영역별로 campaign / contract / negotiation / review / finalSubmission / delivery / schedule 블록으로 정리됩니다. v1~v3 항목은 수정 이전의 flat 구조를 그대로 유지합니다. 한 크리에이터가 v3·v4 캠페인을 동시에 보유하면 두 형태가 한 응답에 섞입니다.


@JsonInclude(NON_NULL) 적용 — v4 항목은 현재 단계에 해당 없는 블록/필드가 응답에서 생략됩니다 (예: 신청/계약 단계엔 review / finalSubmission 없음).

응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "성공",
  "data": {
    "totalBalance": 2500000,
    "applications": [
      // ── v1~v3 항목 (flat) ──
      {
        "applicationId": 1,
        "collabId": 123,
        "thumbnailImage": "https://...",
        "platform": "INSTAGRAM",
        "contentFormat": "REEL",
        "campaignName": "여름 뷰티 캠페인",
        "selectionStatus": "SELECTED",
        "selectionStatusDisplay": "선정됨",
        "isContractRead": false,
        "contractId": 42,
        "contractStatus": "SIGNED",
        "hasAllDocuments": false,
        "missingDocumentTypes": ["IDENTIFICATION", "BANK_ACCOUNT_COPY"],
        "appliedAt": "2024-01-15T10:00:00",
        "contractDeadline": "2024-01-20T23:59:59",
        "totalReviewCount": 2,
        "phase": "FIRST_REVIEW",
        "guidelineVersion": 2,
        "deliveryType": "DELIVERY",
        "hasDeliveryAddress": true,
        "shippingDelayed": true,
        "providedOptions": [
          {
            "optionId": 1,
            "title": "색상",
            "selectionType": "SINGLE",
            "sortOrder": 0,
            "choices": [
              { "choiceId": 11, "value": "아이보리", "sortOrder": 0, "selected": true  },
              { "choiceId": 12, "value": "그레이",   "sortOrder": 1, "selected": false }
            ]
          }
        ],
        "reviewId": 101,
        "previousReviewId": null,
        "reviewRound": 1,
        "hasNewFeedback": true,
        "isSubmitted": false,
        "needsResubmission": true,
        "hasAdditionalReviewRequest": false,
        "approvedWithFeedback": false,
        "feedbackDeadline": "2024-01-25T23:59:59",
        "contentSubmissionDeadline": "2024-01-22T23:59:59",
        "scriptReviewDeadline": "2024-01-24T23:59:59",
        "contentReviewDeadline": null,
        "uploadDeadline": null,
        "uploadApprovalDeadline": null,
        "priceNegotiationId": 501,
        "proposedPrice": 450000,
        "negotiationOrder": 2,
        "negotiationStatus": "ACCEPT",
        "latestNegotiationStatus": "ACCEPT"
      },
      // ── v4 항목 (nested) ──
      {
        "applicationId": 2,
        "appliedAt": "2024-01-10T10:00:00",
        "selectionStatus": "SELECTED",
        "selectionStatusDisplay": "선정됨",
        "phase": "FIRST_REVIEW",
        "guidelineVersion": 4,
        "campaign": {
          "collabId": 456,
          "thumbnailImage": "https://...",
          "platform": "INSTAGRAM",
          "contentFormat": "REEL",
          "campaignName": "겨울 패션 캠페인"
        },
        "contract": {
          "isContractRead": true,
          "contractId": 55,
          "contractStatus": "SIGNED",
          "contractDeadline": "2024-01-15T23:59:59",
          "hasAllDocuments": true,
          "missingDocumentTypes": null
        },
        "negotiation": {
          "priceNegotiationId": 601,
          "proposedPrice": 500000,
          "negotiationOrder": 1,
          "negotiationStatus": "ACCEPT",
          "latestNegotiationStatus": "ACCEPT"
        },
        "review": {
          "reviewId": 202,
          "previousReviewId": null,
          "reviewRound": 1,
          "totalReviewCount": 2,
          "hasNewFeedback": false,
          "isSubmitted": true,
          "needsResubmission": false,
          "hasAdditionalReviewRequest": false,
          "approvedWithFeedback": false
        },
        "delivery": {
          "deliveryType": "DELIVERY",
          "hasDeliveryAddress": true,
          "shippingDelayed": false,
          "providedOptions": []
        },
        "schedule": {
          "activePhase": "SCRIPT_REVIEW_DEADLINE",
          "label": "검수일정",
          "displayType": "REVIEW_ESTIMATE",
          "placeholderText": null,
          "estimateText": "스크립트 제출 후 약 2영업일 소요(예상)",
          "deadline": null,
          "dDay": null,
          "triggerFired": true,
          "triggerType": "TRIGGER_SCRIPT_SUBMITTED",
          "triggeredAt": "2024-01-18T09:00:00",
          "reviewing": true,
          "reviewDelayed": false,
          "feedbackDeadline": "2024-01-22T23:59:59",
          "contentSubmissionDeadline": null,
          "scriptReviewDeadline": "2024-01-20T23:59:59",
          "contentReviewDeadline": null,
          "uploadDeadline": null,
          "uploadApprovalDeadline": null
        }
      }
    ]
  }
}

최상위 응답 (data)

필드타입설명
totalBalancelong총 정산금 (해당 인플루언서의 정산 잔액 합계)
applicationsarray신청 항목 목록 (v1~v3 flat / v4 nested 혼재)

v1~v3 항목 필드 (flat)

기존 구조 그대로입니다. 주요 필드:

필드타입설명
applicationIdlong신청 ID
collabIdint캠페인 ID
thumbnailImage / platform / contentFormat / campaignNamestring캠페인 기본 정보
selectionStatus / selectionStatusDisplaystring선정 상태 (WAITING/SELECTED/RESERVED/REJECTED/ELIMINATED/PROPOSAL) + 표시명
isContractReadboolean계약서 읽음 여부
contractId / contractStatuslong / string전자계약서 ID / 상태 (DRAFT~SIGNED). 미발송 시 null
hasAllDocuments / missingDocumentTypesboolean / string[]필수 서류 첨부 여부 / 미첨부 타입 (SIGNED에서만)
appliedAt / contractDeadlinedatetime신청일 / 계약서 작성 마감일
totalReviewCountint총 검수 횟수 (1: 1회검수, 2: 2회검수)
phasestring현재 단계 (APPLICATION_CONTRACT, FIRST_REVIEW, SECOND_REVIEW, UPLOAD_SETTLEMENT)
guidelineVersionint분기 키. v1~v3 이면 이 flat 구조
deliveryTypestring캠페인 배송 유형 (DELIVERY / NO_DELIVERY / VISIT_REQUIRED)
hasDeliveryAddress / shippingDelayed / providedOptions배송지 매핑 / 배송 지연(캠페인 단위) / 제공 옵션
reviewId / previousReviewId / reviewRoundlong / int검수 라운드 정보
hasNewFeedback / isSubmitted / needsResubmission / hasAdditionalReviewRequest / approvedWithFeedbackboolean검수 상태 플래그
feedbackDeadline / contentSubmissionDeadline / scriptReviewDeadline / contentReviewDeadline / uploadDeadline / uploadApprovalDeadlinedatetimeflat 마감일 (v4는 schedule 블록으로 이전)
reRequestTypes / finalSubmittedAt / isFinalSubmitted / contentLink / partnershipCode / cleanFilePath / finalFilePath업로드/정산 단계 필드
priceNegotiationId / proposedPrice / negotiationOrder / negotiationStatus / latestNegotiationStatus가격 협상 정보

v4 항목 필드 (nested)

top-level 에는 식별/상태/분기 키만 두고, 나머지는 영역별 블록으로 묶습니다.

top-level

필드타입설명
applicationIdlong신청 ID
appliedAtdatetime신청일
selectionStatus / selectionStatusDisplaystring선정 상태 + 표시명
phasestring현재 단계
guidelineVersionint분기 키. v4 이상이면 이 nested 구조

campaign — 캠페인 기본 정보

필드설명
collabId / thumbnailImage / platform / contentFormat / campaignName캠페인 ID / 썸네일 / 플랫폼 / 게시물 종류 / 캠페인명

contract — 계약 정보 + 서류

필드설명
isContractRead / contractId / contractStatus / contractDeadline계약서 읽음 / ID / 상태 / 작성 마감일
hasAllDocuments / missingDocumentTypes필수 서류 첨부 여부 / 미첨부 타입 (SIGNED에서만)

negotiation — 가격 협상

필드설명
priceNegotiationId / proposedPrice / negotiationOrder협상 ID / 제안 가격 / 순서
negotiationStatus / latestNegotiationStatus협상 상태 (PENDING/ACCEPT) / 최신 상태

review — 검수 정보 (제작 단계)

필드설명
reviewId / previousReviewId / reviewRound / totalReviewCount검수 라운드 정보
hasNewFeedback / isSubmitted / needsResubmission / hasAdditionalReviewRequest / approvedWithFeedback검수 상태 플래그

finalSubmission — 최종 제출/업로드 (UPLOAD_SETTLEMENT 단계)

필드설명
reRequestTypes재요청 항목 JSON 배열 문자열
finalSubmittedAt / isFinalSubmitted최종제출 일시 / 여부
contentLink / partnershipCode / cleanFilePath / finalFilePath콘텐츠 링크 / 파트너십 코드 / 클린본·최종본 경로

delivery — 배송 정보 + 제공 옵션

필드설명
deliveryType / hasDeliveryAddress / shippingDelayed배송 유형(DELIVERY / NO_DELIVERY / VISIT_REQUIRED) / 배송지 매핑 / 배송 지연(캠페인 단위)
providedOptions캠페인 제공 옵션 (정의 + 본인 선택). 제공 옵션 개요 참고

schedule 블록 (v4 전용)

[TASK-071] 카드 일정 영역. 서버가 카드 표시값(라벨/표시타입/문구/D-day/검수상태)까지 계산해 내려줍니다.

필드타입설명
activePhasestring카드가 현재 가리키는 마감 단계
labelstring라벨 (스크립트 제출 마감일 / 제작물 제출 마감일 / 검수일정)
displayTypestringRELATIVE_PLACEHOLDER(트리거 전 회색 상대문구) / ABSOLUTE_DATE(실제 일자+D-day) / REVIEW_ESTIMATE(검수 예상)
placeholderTextstringRELATIVE_PLACEHOLDER 문구. 예: 배송완료 후 3일 이내(배송형) / 계약 완료 후 4일 이내(비배송형)
estimateTextstringREVIEW_ESTIMATE 문구. 예: 스크립트 제출 후 약 2영업일 소요(예상)
deadlinedatetimeABSOLUTE_DATE 일 때 확정 마감일
dDayintABSOLUTE_DATE 일 때 D-day (오늘=0, 지났으면 음수)
triggerFiredboolean마감이 트리거로 확정됐는지 (회색 placeholder → 실제 일자 전환)
triggerTypestring이 마감을 확정시킨 트리거 종류 (예: TRIGGER_1A_DELIVERY_INPUT). 미발동 시 null
triggeredAtdatetime트리거 발동 시각 (미발동 시 null)
reviewingboolean검수중 여부 (제출 완료 후 검수 대기)
reviewDelayedboolean검수 지연 여부 (검수 마감 경과). 카드에 "브랜드는 아직 검수중! 조금 더 기다려주세요" 노출
feedbackDeadline / contentSubmissionDeadline / scriptReviewDeadline / contentReviewDeadline / uploadDeadline / uploadApprovalDeadlinedatetime원시 마감일 (상세/모달용)

카드 일정 영역 렌더링 (Figma 2026.05.26):

  • displayType=RELATIVE_PLACEHOLDERplaceholderText(회색). 배송형은 운송장 입력(Trigger 1-A) 전, 비배송형은 계약 서명완료(Trigger 1-B) 전.
  • displayType=ABSOLUTE_DATElabel + deadline(mm월 dd일) + (D-{dDay}).
  • displayType=REVIEW_ESTIMATE검수일정 + estimateText. reviewDelayed=true면 지연 안내 추가.
  • triggerType 전체 값은 개별 일정 API 참고.

보조 로직 (Callout)

필수 서류 판단 (SIGNED 상태): 신분증(IDENTIFICATION) 또는 사업자등록증(BUSINESS_REGISTRATION) 1개 이상 + 통장사본(BANK_ACCOUNT_COPY) 1개 이상. hasAllDocuments=false면 서류 보완 UI 표시. 업로드는 PUT /ai/contract/{contractId}/documents?type={type}.

가격 협상 CTA: negotiationStatus=PENDING → 수락/거절 버튼, ACCEPT → "최종 선정 대기중", null → 표시 안 함.

reRequestTypes(또는 finalSubmission.reRequestTypes)가 있으면 인플루언서는 해당 항목을 재제출해야 합니다.

API 테스트

On this page