정산 플로우
이 가이드에서는 공급가 등록부터 정산 자동 생성, 거래명세서 조회까지의 정산 처리 흐름을 설명합니다.
정산 개요
브라이트몰의 정산은 공급가 등록 시 자동으로 생성됩니다. 별도의 정산 생성 API를 호출할 필요가 없습니다.
정산 플로우 요약:
- 공급가 등록 (재고 확인 / 배송 등록 / 배송 수정 / 상태 변경 API)
- 정산 자동 생성 (시스템)
- 거래명세서 조회 (PDF 또는 JSON)
Step 1. 공급가 등록
공급가는 다음 4개 API 중 하나에서 supply_price 파라미터로 입력합니다.
| API | 엔드포인트 | 권장 시점 |
|---|---|---|
| 재고 확인 | POST /vendor-api/inventory/confirm | 권장 - 주문 접수 직후 |
| 배송 등록 | POST /vendor-api/shipment | 송장번호 등록과 동시에 |
| 배송 수정 | PUT /vendor-api/shipment | 나중에 입력 또는 수정 |
| 상태 변경 | POST /vendor-api/orders/status | delivered 처리 시 |
공급가 입력 형식
{
"supply_price": {
"unit_price": 75000,
"quantity": 2,
"total_amount": 150000
}
}| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
unit_price | number | O | 공급 단가 (0 이상) |
quantity | number | O | 수량 (1 이상, 정수) |
total_amount | number | O | 총 공급가 (0 이상) |
total_amount는unit_price x quantity와 일치하는 것이 권장되나, 할인 등의 사유로 다를 수 있습니다.
공급가 수정
공급가는 배송 수정 API로 수정할 수 있습니다. 변경 이력은 시스템에서 자동으로 추적됩니다 (최대 10건).
Step 2. 정산 자동 생성
공급가가 등록되면 시스템이 해당 품목에 대한 정산을 자동으로 생성합니다.
정산에는 두 가지 유형이 있습니다.
| 유형 | settlement_type | 설명 |
|---|---|---|
| 표준 정산 | standard | 정상 주문에 대한 정산 (양수 금액) |
| 취소 정산 | cancellation | 취소/반품에 대한 마이너스 정산 (음수 금액) |
표준 정산은 공급가 등록 시 자동 생성됩니다. 취소 정산은 주문이 취소되거나 반품 처리될 때 시스템이 자동으로 생성합니다.
Step 3. 거래명세서 조회
정산이 생성된 후 거래명세서를 조회할 수 있습니다. PDF와 JSON 두 가지 형식을 지원합니다.
PDF 거래명세서 (권장)
POST /vendor-api/settlements/transaction-statement{
"ord_no": "202601220157_000020196"
}PDF 파일이 바이너리로 직접 반환됩니다. 인쇄 및 보관에 즉시 사용할 수 있고, 서버 측 스키마 변경에 영향을 받지 않아 안정적입니다.
API 상세: 거래명세서 PDF API
JSON 거래명세서 (비권장)
POST /vendor-api/settlements/transaction-statement/data{
"ord_no": "202601220157_000020196"
}JSON 데이터를 프로그래밍적으로 가공해야 하는 특수한 경우에만 사용하세요. 향후 응답 스키마가 변경될 경우 연동 코드 수정이 필요할 수 있습니다.
API 상세: 거래명세서 JSON API
PDF vs JSON 비교
| 구분 | PDF API | JSON API |
|---|---|---|
| 응답 형식 | PDF 파일 (바이너리) | JSON 데이터 |
| 직접 인쇄/보관 | 가능 | 별도 가공 필요 |
| 스키마 변경 대응 | 불필요 (서버에서 렌더링) | 필요 (코드 수정) |
| 커스텀 활용 | 제한적 | 데이터 자유 가공 가능 |
| 권장 여부 | 권장 | 비권장 |
거래명세서 조회 가능 시점
| 조건 | 조회 가능 여부 | 설명 |
|---|---|---|
| 공급가 미등록 | X | 공급가 등록 후 정산이 자동 생성됩니다 |
| 공급가 등록 완료 (정산 생성됨) | O | pending 상태부터 조회 가능 |
정산 확정 (confirmed) | O | 조회 가능 |
정산 지급 완료 (paid) | O | 조회 가능 |
| 취소/반품 발생 | O | settlement_type=cancellation으로 조회 |
공급가가 등록되지 않은 상태에서 거래명세서를 조회하면
SETTLEMENT_NOT_FOUND에러가 반환됩니다.
ord_no vs ord_prd_no 조회 차이 (v1.7.0)
거래명세서 조회 시 주문번호(ord_no)와 주문품목번호(ord_prd_no) 중 하나를 사용할 수 있습니다.
| 조회 키 | 반환 범위 | 권장 여부 | 사용 시나리오 |
|---|---|---|---|
ord_no (주문번호) | 해당 주문의 미출하(pending) 품목만 | 권장 | 출하 전 거래명세서 확인, 부분출하 |
ord_prd_no (주문품목번호) | 해당 품목이 속한 정산의 전체 품목 | 하위 호환 | 특정 품목의 정산 전체 내역 확인 |
ord_no로 조회 (권장)
{
"ord_no": "202601220157_000020196"
}- 해당 주문에서 아직 출하되지 않은(pending) 품목만 거래명세서에 포함
- 부분출하 시 나머지 품목만 자동 필터링
- 모든 품목이 출하 완료되면 빈 거래명세서
ord_prd_no로 조회 (하위 호환)
{
"ord_prd_no": "202601220157_000020196_[1]"
}- 해당 품목이 포함된 정산의 전체 품목이 거래명세서에 포함
- 출하 상태와 무관하게 모든 품목 표시
- v1.6.0 방식과 동일한 동작
두 파라미터를 모두 입력하면
ord_no가 우선 적용됩니다.
마이그레이션 방법
기존 ord_prd_no 방식에서 ord_no 방식으로 전환하려면, ord_prd_no에서 _[인덱스] 부분을 제거하면 됩니다.
변경 전: "ord_prd_no": "202601220157_000020196_[1]"
변경 후: "ord_no": "202601220157_000020196"출하 상태와 부분출하 필터링
배송 등록 API를 호출하면 해당 품목의 정산 출하 상태(shipment_status)가 자동으로 pending에서 shipped로 변경됩니다.
shipment_status | 설명 | ord_no 조회 시 |
|---|---|---|
pending | 미출하 | 거래명세서에 포함 |
shipped | 출하 완료 | 거래명세서에서 제외 |
이 자동 필터링 덕분에 부분출하 시나리오를 별도 로직 없이 처리할 수 있습니다.
자세한 부분출하 시나리오는 주문 처리 플로우 - 부분출하 시나리오를 참조하세요.
취소 거래명세서
주문이 취소되거나 반품 처리되면 시스템이 자동으로 취소 정산(마이너스 정산)을 생성합니다.
취소 거래명세서 조회 흐름
- 고객 또는 관리자가 주문 취소/반품 요청
- 시스템이 자동으로 취소 정산 생성 (
settlement_type: "cancellation") - 거래명세서 API에서
settlement_type: "cancellation"으로 조회
{
"ord_no": "202601220157_000020196",
"settlement_type": "cancellation"
}취소 정산은 해당 품목이 취소 또는 반품 처리된 경우에만 존재합니다. 취소 정산이 없으면
SETTLEMENT_NOT_FOUND에러가 반환됩니다.
거래명세서 파일명 규칙
| 유형 | 파일명 형식 | 예시 |
|---|---|---|
| 표준 정산 | 거래명세서_{정산번호}.pdf | 거래명세서_SET-20260211-001.pdf |
| 취소 정산 | 거래명세서(취소)_{정산번호}.pdf | 거래명세서(취소)_SET-20260211-002.pdf |
에러 처리
SETTLEMENT_NOT_FOUND
거래명세서 조회 시 가장 자주 발생하는 에러입니다. 다음 항목을 순서대로 확인하세요.
- 공급가가 등록되었는지 확인 (가장 흔한 원인) - 공급가 등록 시 정산이 자동 생성됩니다
- 정산 유형 확인 - 표준 정산은
settlement_type미지정 또는"standard", 취소 정산은"cancellation" - 해당 입점사 품목인지 확인 - 다른 입점사 품목이나 자사제품은 조회 불가
- 주문번호/주문품목번호 형식 확인 -
ord_no또는{주문번호}_[{인덱스}]형식이 올바른지 확인
전체 에러 코드: 에러 코드 목록
Next Steps
- 주문 처리 플로우 - 주문 접수부터 배송 완료까지
- 모범 사례 - 멱등성 키, 페이지네이션 팁
- 거래명세서 PDF API - API 상세 명세
- 거래명세서 JSON API - API 상세 명세