Freshstart API

개인회생 법원 제출용 도표 생성 API

개요

Base URL: https://freshstart-api.wizice100.workers.dev

모든 도표 API는 Google Sheets 템플릿을 기반으로 법원 제출용 XLSX 파일을 생성합니다. 처리 흐름:

  1. 템플릿 Spreadsheet 복사
  2. 헤더/데이터 셀 채우기
  3. 빈 행 숨김 처리
  4. XLSX 파일 export
  5. 복사본 자동 삭제
CORS 허용 Origin: https://freshstart-1rs.pages.dev, http://localhost:3000
GET /health

서버 상태 확인

curl https://freshstart-api.wizice100.workers.dev/health
{"status":"ok","service":"freshstart-api","timestamp":"2026-02-26T..."}

은행 거래내역 도표

POST /bank/download_xlsx

은행 거래내역 도표 XLSX 생성. 최대 1,994행 데이터 입력 가능 (행 9~2002).

Request Body

필드타입설명
report_dataarray거래내역 배열 필수
namestring신청인 이름 (서명란 자동 공백 삽입: 김철수 → 김 철 수) 필수
moneystring기준 금액 (만원 단위, 예: "100") 필수
from_datestring조회 시작일 필수
to_datestring조회 종료일 필수
bank_namestring은행명 필수
bank_codestring은행 코드 필수
accountstring계좌번호 필수
courtstring관할 법원명 필수

report_data 항목

필드설명
사용일시거래 일시
입금입금액
출금출금액
거래내용거래 내용 ("합계" 포함 시 건너뜀, "없습" 포함 시 별도 표시)
사용처사용처
비고비고

cURL 예시

curl -X POST https://freshstart-api.wizice100.workers.dev/bank/download_xlsx \
  -H "Content-Type: application/json" \
  -d '{
    "report_data": [
      {
        "사용일시": "2025-01-15",
        "입금": "1500000",
        "출금": "",
        "거래내용": "급여입금",
        "사용처": "주식회사 테스트",
        "비고": ""
      },
      {
        "사용일시": "2025-01-20",
        "입금": "",
        "출금": "500000",
        "거래내용": "카드결제",
        "사용처": "이마트",
        "비고": "생활비"
      }
    ],
    "name": "김철수",
    "money": "100",
    "from_date": "2025-01-01",
    "to_date": "2025-12-31",
    "bank_code": "SHINHAN",
    "bank_name": "신한은행",
    "account": "110-123-456789",
    "court": "서울중앙지방법원"
  }' --output 거래내역.xlsx

JavaScript (fetch) 예시

const response = await fetch('/bank/download_xlsx', {  // 또는 전체 URL
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    report_data: transactions,
    name: '김철수',
    money: '100',
    from_date: '2025-01-01',
    to_date: '2025-12-31',
    bank_code: 'SHINHAN',
    bank_name: '신한은행',
    account: '110-123-456789',
    court: '서울중앙지방법원'
  })
});

const blob = await response.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = '신한은행_거래내역.xlsx';
a.click();

Response: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX 바이너리)

카드 거래내역 도표

POST /bank3/download_xlsx

카드 사용금액 도표 XLSX 생성. 최대 193행 데이터 입력 가능 (행 8~200). 거래일시가 비어있는 행은 자동 건너뜀.

Request Body

필드타입설명
report_dataarray카드 거래내역 배열 필수
namestring신청인 이름 필수
moneystring기준 금액 (만원) 필수
from_datestring조회 시작일 필수
to_datestring조회 종료일 필수
bank_namestring카드사명 필수
bank_codestring카드사 코드 필수
courtstring관할 법원명 필수

report_data 항목

필드설명
사용일시카드 사용 일시 (비어있으면 건너뜀)
거래내용거래 내용
출금사용 금액
거래내용2거래 내용 상세
비고비고

cURL 예시

curl -X POST https://freshstart-api.wizice100.workers.dev/bank3/download_xlsx \
  -H "Content-Type: application/json" \
  -d '{
    "report_data": [
      {
        "사용일시": "2025-01-10",
        "거래내용": "네이버쇼핑",
        "출금": "150000",
        "거래내용2": "온라인결제",
        "비고": ""
      }
    ],
    "name": "김철수",
    "money": "5",
    "from_date": "2025-01-01",
    "to_date": "2025-12-31",
    "bank_code": "SAMSUNG",
    "bank_name": "삼성카드",
    "court": "서울중앙지방법원"
  }' --output 카드거래내역.xlsx

Response: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

대출금 사용처 도표

POST /bank/download_xlsx_use

대출금 사용처 도표 XLSX 생성. 은행 도표와 동일한 구조, 컬럼만 다름. 최대 1,994행.

Request Body

은행 거래내역 도표와 동일한 요청 형식. report_data의 각 항목:

필드도표 컬럼설명
사용일시사용일시대출금 사용 일시
입금사용금액사용 금액
출금사용처사용처
거래내용거래내용거래 내용
사용처사용구분사용 구분
비고비고비고

cURL 예시

curl -X POST https://freshstart-api.wizice100.workers.dev/bank/download_xlsx_use \
  -H "Content-Type: application/json" \
  -d '{
    "report_data": [
      {
        "사용일시": "2025-01-05",
        "입금": "5000000",
        "출금": "생활비 사용",
        "거래내용": "생활비",
        "사용처": "생활비",
        "비고": ""
      }
    ],
    "name": "김철수",
    "money": "100",
    "from_date": "2025-01-01",
    "to_date": "2025-12-31",
    "bank_code": "SHINHAN",
    "bank_name": "신한은행",
    "account": "110-123-456789",
    "court": "서울중앙지방법원"
  }' --output 사용처.xlsx

Response: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

일괄 다운로드 (ZIP)

POST /bank2/download_xlsx_all

여러 도표를 한 번에 생성하여 ZIP 파일로 다운로드. 최대 3개 동시 처리.

Request Body

필드타입설명
reportsarray보고서 배열 필수

reports 항목

필드타입설명
file_typestring"bank" (은행), "card" (카드), "use" (사용처) 필수
report_dataarray해당 도표의 데이터 배열 필수
이하 해당 도표 타입의 공통 필드 (name, money, from_date, to_date, bank_name, bank_code, account, court)

cURL 예시

curl -X POST https://freshstart-api.wizice100.workers.dev/bank2/download_xlsx_all \
  -H "Content-Type: application/json" \
  -d '{
    "reports": [
      {
        "file_type": "bank",
        "report_data": [
          {"사용일시":"2025-01-15","입금":"1500000","출금":"","거래내용":"급여","사용처":"회사","비고":""}
        ],
        "name": "김철수",
        "money": "100",
        "from_date": "2025-01-01",
        "to_date": "2025-12-31",
        "bank_code": "SHINHAN",
        "bank_name": "신한은행",
        "account": "110-123",
        "court": "서울중앙지방법원"
      },
      {
        "file_type": "card",
        "report_data": [
          {"사용일시":"2025-01-20","거래내용":"마트","출금":"50000","거래내용2":"결제","비고":""}
        ],
        "name": "김철수",
        "money": "5",
        "from_date": "2025-01-01",
        "to_date": "2025-12-31",
        "bank_code": "SAMSUNG",
        "bank_name": "삼성카드",
        "court": "서울중앙지방법원"
      }
    ]
  }' --output 도표_일괄.zip

Response: application/zip

ZIP 내 파일명: {은행명}{계좌번호}_{타입}.xlsx

에러 응답

모든 에러는 JSON 형식으로 반환됩니다:

{
  "error": "INTERNAL_ERROR",
  "message": "에러 상세 메시지"
}
HTTP 상태설명
200성공 (XLSX 또는 ZIP 바이너리 반환)
400잘못된 요청 (reports 배열 비어있음 등)
404존재하지 않는 엔드포인트
500서버 오류 (Google API 실패 등)

Freshstart API v1.0 | 2026-02-26