정산 API

월별 정산을 검토하고 라인 항목을 확인하며 불일치에 이의를 제기합니다. 조회에는 settlement:read, 이의 제기에는 settlement:dispute가 필요합니다. 모든 엔드포인트가 실제 금융 데이터를 다루므로 nsp_live_ Production 키만 허용하며 Sandbox는 403 production_key_required를 반환합니다. 파트너는 pending_review 이후 발행 상태만 볼 수 있고 내부 draftcalculated 작업은 숨겨집니다.

엔드포인트

메서드경로스코프용도
GET/settlementssettlement:read정산 목록을 status 및 updated_since로 필터링하여 조회합니다.
GET/settlements/{id}settlement:read정산 상세입니다.
GET/settlements/{id}/itemssettlement:read타이틀, 에피소드 및 국가별 정산 항목입니다.
POST/settlements/{id}/disputesettlement:dispute이의를 제기합니다.

목록 및 상세

curl "https://signal-partners.newunivers.ai/v1/settlements?status=approved&updated_since=2026-05-01T00:00:00Z" \
  -H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"
{
  "data": [
    {
      "settlement_id": "stl_2026_05",
      "period": "2026-05",
      "currency": "USD",
      "gross_revenue": 120000.00,
      "net_revenue": 76100.00,
      "nu_share": 49465.00,
      "partner_share": 26635.00,
      "status": "approved",
      "updated_at": "2026-06-24T00:00:00Z"
    }
  ]
}

목록은 정산별 요약을 반환합니다. 전체 공제 내역은 단일 정산을 조회하세요.

{
  "data": {
    "settlement_id": "stl_2026_05",
    "period": "2026-05",
    "currency": "USD",
    "gross_revenue": 120000.00,
    "refunds": 1500.00,
    "platform_fee": 12000.00,
    "payment_processing_fee": 3400.00,
    "tax_withholding": 2000.00,
    "mg_recouped": 25000.00,
    "net_revenue": 76100.00,
    "nu_share": 49465.00,
    "partner_share": 26635.00,
    "rights_holder_share": 0.00,
    "status": "approved",
    "updated_at": "2026-06-24T00:00:00Z"
  }
}

정산 필드

필드의미
gross_revenue정산 대상 이벤트의 총매출
refunds음수 매출 이벤트의 취소
platform_feeNU 플랫폼 수수료
payment_processing_fee결제 처리 비용
tax_withholding원천징수된 세금
mg_recouped해당 기간에 회수된 최소 보장금(MG)
net_revenue환불, 수수료, 세금 및 MG 회수 후 매출
nu_share / partner_share계약 수익 배분율에 따른 net_revenue 분배
rights_holder_sharenet_revenue 중 권리자 몫(상세에서만 제공)

공제 필드(refunds, platform_fee, payment_processing_fee, tax_withholding, mg_recouped, rights_holder_share)는 목록이 아니라 상세 엔드포인트에서만 반환됩니다.

periodYYYY-MM 형식입니다.

정산 항목

curl "https://signal-partners.newunivers.ai/v1/settlements/stl_2026_05/items" \
  -H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"
{
  "data": [
    {
      "settlement_item_id": "sti_001",
      "title_id": "ttl_abc",
      "episode_id": "ep_001",
      "country": "KR",
      "revenue_type": "payment_completed",
      "gross_revenue": 4200.00,
      "net_revenue": 2730.00,
      "nu_share": 1774.50,
      "partner_share": 955.50,
      "rights_holder_share": 0.00
    }
  ]
}

정산 항목은 정산서를 title_id, episode_id, country, revenue_type별로 분해하여 전송한 이벤트와 대사할 수 있게 합니다.

이의 제기 흐름

정산은 지급 마감 전 pending_review, approved, invoiced 상태일 때만 이의 제기할 수 있습니다. 다른 상태는 409 settlement_not_disputable를 반환합니다.

curl -X POST "https://signal-partners.newunivers.ai/v1/settlements/stl_2026_05/dispute" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "KR PAYMENT_COMPLETED count differs from our ledger by ~3%",
    "disputed_amount": 820.00,
    "currency": "USD"
  }'
{
  "data": {
    "dispute_id": "dsp_001",
    "settlement_id": "stl_2026_05",
    "status": "open",
    "reason": "KR PAYMENT_COMPLETED count differs from our ledger by ~3%"
  }
}

NU는 이의를 검토하고 이후 정산에 조정을 반영할 수 있습니다.

동기화 유지(폴링)

웹훅은 제공되지 않습니다. GET /v1/settlementsupdated_since 및 선택적 status와 함께 폴링하여 신규·변경 정산을 가져오세요. 각 항목은 커서로 사용할 updated_at을 포함합니다.

curl "https://signal-partners.newunivers.ai/v1/settlements?updated_since=2026-06-01T00:00:00Z" \
  -H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"