granter API
그랜터 Public Docs API는 자산 연동 현황, 거래·증빙 데이터, 분류 기준, 잔액 흐름을 외부 시스템과 AI가 함께 이해할 수 있도록 구조화해 제공하는 읽기 전용 연동 문서입니다. 발급된 API key와 Basic 인증만으로 해당 워크스페이스 범위의 데이터를 안전하게 조회하고, 자체 서비스, 분석 파이프라인, AI 자동화 워크플로우에 바로 연결할 수 있습니다.
문서 이해를 위한 빠른 가이드
API 활용 팁
[
{ "startDate": "2026-01-01", "endDate": "2026-01-31" },
{ "startDate": "2026-02-01", "endDate": "2026-02-28" },
{ "startDate": "2026-03-01", "endDate": "2026-03-31" }
]그랜터 데이터 구조와 활용 관점
{
"id": 101,
"assetType": "CARD",
"workspaceId": 123,
"organizationName": "신한카드",
"isActive": true
}{
"id": 98765,
"ticketType": "EXPENSE_TICKET",
"workspaceId": 123,
"amount": 12000,
"transactionType": "OUT",
"transactAt": "2026-02-23T10:15:00.000Z",
"content": "점심 식대",
"isIncluded": true
}POST /api/public-docs/tickets
카드, 계좌, 세금계산서, 현금영수증, 결재 등 실제 거래·증빙 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
기간 기반 조회는 요청 1회당 최대 31일까지 사용할 수 있으며, 더 긴 범위는 31일 이하 구간으로 나눠 조회한 뒤 합쳐서 사용하세요.
조회 대상 티켓 타입. 아래 TicketType 상세 목록을 참고하세요.
▶TicketType 상세(기본 접힘)
조회 시작일
조회 종료일
거래처 ID
거래처 검색 옵션
계정과목 ID
계정과목 검색 옵션
2차 태그 ID
2차 태그 검색 옵션
1차 태그 ID
자산 ID
Response Fields
▶[]TicketrequiredexpandableBE `/tickets` 원본 응답 배열의 각 원소
티켓 ID
워크스페이스 ID
거래/증빙 내용
거래 금액
입출금 방향
거래 일시
수정 거래 일시
설명
▶expenseCategoryExpenseCategoryoptionalexpandable계정과목
계정과목 ID
계정과목명
부가 정보
설명
코드
카테고리 타입
숨김 여부
비용 유형
즐겨찾기 여부
워크스페이스 ID
기본 과세 유형
이상치 상태
티켓 상태
1차 태그명
1차 태그 ID
거래처명
거래처 ID
2차 태그명
2차 태그 ID
포함 여부
▶usersUserResponse[]requiredexpandable연결 유저 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
▶messagesMessage[]requiredexpandable메시지 목록
메시지 ID
티켓 ID
▶userUserResponserequiredexpandable작성자
유저 ID
유저 이름
유저 이메일
삭제 여부
작성자 ID
작성자 이름
메시지 내용
메시지 타입
생성 시각
삭제 시각
메시지 수
▶attachmentsAttachment[]requiredexpandable첨부파일 목록
첨부파일 ID
티켓 ID
파일명
업로드 URL
MIME 타입
첨부파일 수
조회 대상 티켓 타입
▶cardUsageCardUsageoptionalexpandable카드 사용 상세
워크스페이스 ID
▶cardTicketAssetrequiredexpandable카드 자산 정보
자산 ID
워크스페이스 ID
자산명
자산 별칭
기관 코드
기관명
활성 여부
휴면 가능 여부
휴면 여부
자산 번호
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
업종 코드
업종명
유저 자동 할당 여부
카드 만료 연도
카드 만료 월
카드 한도 금액
카드 사용 금액
카드 잔여 한도
자동 승인 여부
이전 카드번호
계좌 잔액
원본 잔액
통화 코드
조회 시작일
조회 종료일
계좌 유형
거래내역 보유 여부
증권 총액
증권 예수금
외화예수금 상세 목록
외화예수금 합계
총 평가금액
계좌 번호
증권 보유 상품 목록
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
담당자 이메일
연락처
업태
종목
홈택스 카테고리
생성 시각
수정 시각
조회 인증서 정보
발행 인증서 정보
결제일
가맹점명
가맹점 주소
사용 금액
취소 금액
할인 금액
부가세
할부 개월
결제 방식
결제 상태
승인번호
가맹점 사업자번호
원본 금액
통화 코드
환율
매입일
수수료
매입 여부
▶purchaseUsageCardUsageoptionalexpandable매입 카드 사용 상세
워크스페이스 ID
▶cardTicketAssetrequiredexpandable카드 자산 정보
자산 ID
워크스페이스 ID
자산명
자산 별칭
기관 코드
기관명
활성 여부
휴면 가능 여부
휴면 여부
자산 번호
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
업종 코드
업종명
유저 자동 할당 여부
카드 만료 연도
카드 만료 월
카드 한도 금액
카드 사용 금액
카드 잔여 한도
자동 승인 여부
이전 카드번호
계좌 잔액
원본 잔액
통화 코드
조회 시작일
조회 종료일
계좌 유형
거래내역 보유 여부
증권 총액
증권 예수금
외화예수금 상세 목록
외화예수금 합계
총 평가금액
계좌 번호
증권 보유 상품 목록
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
담당자 이메일
연락처
업태
종목
홈택스 카테고리
생성 시각
수정 시각
조회 인증서 정보
발행 인증서 정보
결제일
가맹점명
가맹점 주소
사용 금액
취소 금액
할인 금액
부가세
할부 개월
결제 방식
결제 상태
승인번호
가맹점 사업자번호
원본 금액
통화 코드
환율
매입일
수수료
매입 여부
▶bankTransactionBankTransactionoptionalexpandable계좌 거래 상세
은행거래 ID
워크스페이스 ID
거래 방향
설명
거래 후 잔액
원본 거래 후 잔액
거래 금액
원본 거래 금액
거래 일시
▶bankAccountTicketAssetrequiredexpandable계좌 자산 정보
자산 ID
워크스페이스 ID
자산명
자산 별칭
기관 코드
기관명
활성 여부
휴면 가능 여부
휴면 여부
자산 번호
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
업종 코드
업종명
유저 자동 할당 여부
카드 만료 연도
카드 만료 월
카드 한도 금액
카드 사용 금액
카드 잔여 한도
자동 승인 여부
이전 카드번호
계좌 잔액
원본 잔액
통화 코드
조회 시작일
조회 종료일
계좌 유형
거래내역 보유 여부
증권 총액
증권 예수금
외화예수금 상세 목록
외화예수금 합계
총 평가금액
계좌 번호
증권 보유 상품 목록
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
담당자 이메일
연락처
업태
종목
홈택스 카테고리
생성 시각
수정 시각
조회 인증서 정보
발행 인증서 정보
거래 상대방
설명 분류
내용
지점
▶taxInvoiceTaxInvoiceoptionalexpandable세금계산서 상세
세금계산서 ID
▶supplierTaxInvoiceUserrequiredexpandable공급자
사업자등록번호
회사명
대표자명
담당자명
업태
종목
사업장 주소
이메일
보조 이메일
유저 ID
개업일자 코드
당사자 유형
관련 세금계산서
휴대전화
전화번호
▶contractorTaxInvoiceUserrequiredexpandable공급받는자
사업자등록번호
회사명
대표자명
담당자명
업태
종목
사업장 주소
이메일
보조 이메일
유저 ID
개업일자 코드
당사자 유형
관련 세금계산서
휴대전화
전화번호
▶issuerobjectrequiredexpandable발행자
이메일
유저 ID
삭제 여부
이름
▶trusteeTaxInvoiceUserrequiredexpandable수탁자
사업자등록번호
회사명
대표자명
담당자명
업태
종목
사업장 주소
이메일
보조 이메일
유저 ID
개업일자 코드
당사자 유형
관련 세금계산서
휴대전화
전화번호
승인번호
내용 타입
거래 타입
발행명
작성일자
전송일자
발행일자
공급가액
세액
합계금액
영수/청구 구분
대표 품목
비고
상태
세금계산서 종류
▶tradeItemsTradeItem[]requiredexpandable품목 목록
공급일자
품목명
규격
수량
단가
공급가액
세액
비고
부가세 포함 여부
수정사유
원본 승인번호
▶issueOptionIssueOptionoptionalexpandable발행 옵션
발행 타입
과세 유형
청구 방향
권
호
공급받는자 유형
강제 발행 여부
명세 작성 여부
휴폐업 상태
휴폐업 일자
결제 상태
생성 시각
부모 티켓 ID
분할 티켓 여부
매입 상태
소프트웨어 지출 여부
▶merchantCardTransactionMerchantCardTransactionoptionalexpandable가맹점 카드 거래 상세
▶assetTicketAssetrequiredexpandable자산 정보
자산 ID
워크스페이스 ID
자산명
자산 별칭
기관 코드
기관명
활성 여부
휴면 가능 여부
휴면 여부
자산 번호
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
업종 코드
업종명
유저 자동 할당 여부
카드 만료 연도
카드 만료 월
카드 한도 금액
카드 사용 금액
카드 잔여 한도
자동 승인 여부
이전 카드번호
계좌 잔액
원본 잔액
통화 코드
조회 시작일
조회 종료일
계좌 유형
거래내역 보유 여부
증권 총액
증권 예수금
외화예수금 상세 목록
외화예수금 합계
총 평가금액
계좌 번호
증권 보유 상품 목록
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
담당자 이메일
연락처
업태
종목
홈택스 카테고리
생성 시각
수정 시각
조회 인증서 정보
발행 인증서 정보
카드사
카드명
카드 타입
카드번호
승인번호
할부개월
거래구분
거래일시
금액
▶merchantPurchaseTransactionMerchantPurchaseTransactionoptionalexpandable가맹점 매입 거래 상세
▶assetTicketAssetrequiredexpandable자산 정보
자산 ID
워크스페이스 ID
자산명
자산 별칭
기관 코드
기관명
활성 여부
휴면 가능 여부
휴면 여부
자산 번호
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
업종 코드
업종명
유저 자동 할당 여부
카드 만료 연도
카드 만료 월
카드 한도 금액
카드 사용 금액
카드 잔여 한도
자동 승인 여부
이전 카드번호
계좌 잔액
원본 잔액
통화 코드
조회 시작일
조회 종료일
계좌 유형
거래내역 보유 여부
증권 총액
증권 예수금
외화예수금 상세 목록
외화예수금 합계
총 평가금액
계좌 번호
증권 보유 상품 목록
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
담당자 이메일
연락처
업태
종목
홈택스 카테고리
생성 시각
수정 시각
조회 인증서 정보
발행 인증서 정보
카드사
카드명
카드 타입
카드번호
승인번호
거래일시
매입일
매입 금액
총 수수료
가맹점 수수료
포인트 수수료
기타 수수료
지급 금액
지급 예정일
▶cashReceiptCashReceiptoptionalexpandable현금영수증 상세
현금영수증 ID
워크스페이스 ID
영수증 구분
거래 일시
국세청 승인일자
거래구분
과세형태
공제여부
용도구분
발행구분
발행 상태
승인번호
총금액
공급가액
부가세
봉사료
거래 내용
국세청 결과 코드
▶issuerCashReceiptCounterPartyrequiredexpandable발행자
사업자번호
상호
유저 ID
식별번호
사용자명
이메일 목록
▶buyerCashReceiptCounterPartyrequiredexpandable구매자
사업자번호
상호
유저 ID
식별번호
사용자명
이메일 목록
▶cancelOptionobjectoptionalexpandable취소 정보
취소 사유
원본 승인번호
원본 승인일자
원본 현금영수증 ID
▶manualTransactionManualTransactionoptionalexpandable수기거래 상세
수기거래 ID
통화 코드
수기거래 타입
▶tradeItemsManualTransactionTradeItem[]requiredexpandable거래 품목
품목명
수량
세액
단가
매입 취소 사용내역 보유 여부
▶ecommerceSettlementDetailTransactionEcommerceSettlementDetailTransactionoptionalexpandable이커머스 정산 상세
▶assetobjectrequiredexpandable이커머스 스토어 자산
자산 ID
조직 (COUPANG, NAVER 등)
별칭
정산 ID
정산일
정산 비율
항목명
금액
정산 상세 타입
입출금 방향
추천 티켓 여부
과세 유형
curl -X POST https://app.granter.biz/api/public-docs/tickets \
-H "Content-Type: application/json" \
-H "Authorization: Basic <BASE64(API_KEY:)>" \
-d '{
"ticketType": "EXPENSE_TICKET",
"startDate": "2026-03-01",
"endDate": "2026-03-07"
}'[
{
"id": 49176,
"ticketType": "EXPENSE_TICKET",
"workspaceId": 1,
"description": "",
"content": "GLOBAL SOFTWARE INC.",
"amount": 14493,
"transactionType": "OUT",
"transactAt": "2026-02-28T17:04:34",
"status": "CONFIRMED",
"anomalyStatus": "NORMAL",
"expenseCategory": {
"id": 1008,
"name": "숙박비",
"subInfo": "판매비와 일반관리비",
"description": "출장업무 등 숙박에 대한 비용",
"code": "812",
"type": "COMMON",
"isHidden": false,
"costType": "FIXED",
"isFavorite": false,
"taxType": "EXEMPT"
},
"users": [
{
"id": 73,
"name": "담당자 A",
"email": "user-a@example.com",
"isDeleted": false
}
],
"owners": [
{
"id": 73,
"name": "소유자 A",
"email": "owner-a@example.com",
"isDeleted": false
}
],
"isIncluded": true,
"tag": "",
"tagId": null,
"contact": "",
"contactId": null,
"tagDetail": "",
"tagDetailId": null,
"messages": [
{
"id": 16099,
"ticketId": 49176,
"user": {
"id": 4,
"name": "운영자 A",
"email": "operator@example.com",
"isDeleted": false
},
"userId": 4,
"userName": "운영자 A",
"content": "계정과목을 없음에서 숙박비로 변경하였습니다.",
"type": "COMMON_CHANGE",
"createdAt": "2026-03-01T21:52:10.826539",
"deletedAt": null,
"isDeleted": false
}
],
"messageCount": 1,
"attachments": [],
"attachmentCount": 0,
"createdAt": "2026-02-28T19:50:38.773108",
"parentId": null,
"isSplitted": false,
"assetId": 53,
"cardUsage": {
"workspaceId": 1,
"card": {
"id": 53,
"workspaceId": 1,
"name": "KB국민 SME기업카드",
"nickname": "운영 법인카드",
"number": "558526******0880",
"organization": "KB",
"organizationName": "국민카드",
"businessType": "CD",
"businessTypeName": "CD",
"owners": [
{
"id": 73,
"name": "소유자 A",
"email": "owner-a@example.com",
"isDeleted": false
}
],
"isHidden": false,
"clientType": "CORPORATE",
"isActive": true,
"isDormant": false,
"isPossibleDormant": false,
"userAutoAssignEnabled": true,
"isFree": false,
"hasPassword": false,
"expirationYear": "2030",
"expirationMonth": "09",
"limitAmount": 1000000,
"usedAmount": 0,
"remainLimit": 0,
"previousCardNumber": null
},
"organizationName": "국민카드",
"paymentDate": "2026-02-28T17:04:34",
"storeName": "GLOBAL SOFTWARE INC.",
"storeType": "없음",
"storeAddress": "",
"storeCorporateNumber": "",
"amount": 14245,
"canceledAmount": 0,
"vat": 0,
"installmentMonth": 0,
"paymentType": "FULL",
"paymentStatus": "NORMAL",
"approvalNumber": "323461",
"discountedAmount": 0,
"originalAmount": "10.00",
"currency": "USD",
"isStoreInfoUpdated": true,
"isPurchased": true
},
"purchaseUsage": {
"workspaceId": 1,
"card": {
"id": 53,
"workspaceId": 1,
"name": "KB국민 SME기업카드",
"nickname": "운영 법인카드",
"number": "558526******0880",
"organization": "KB",
"organizationName": "국민카드",
"businessType": "CD",
"businessTypeName": "CD",
"owners": [
{
"id": 73,
"name": "소유자 A",
"email": "owner-a@example.com",
"isDeleted": false
}
],
"isHidden": false,
"clientType": "CORPORATE",
"isActive": true,
"isDormant": false,
"isPossibleDormant": false,
"userAutoAssignEnabled": true,
"isFree": false,
"hasPassword": false,
"expirationYear": "2030",
"expirationMonth": "09",
"limitAmount": 1000000,
"usedAmount": 0,
"remainLimit": 0,
"previousCardNumber": null
},
"organizationName": "국민카드",
"paymentDate": "2026-02-28T00:00:00",
"storeName": "GLOBAL SOFTWARE INC.",
"storeType": "",
"storeAddress": "",
"storeCorporateNumber": "",
"amount": 14493,
"canceledAmount": 0,
"vat": 0,
"installmentMonth": 0,
"paymentType": "FULL",
"paymentStatus": "NORMAL",
"approvalNumber": "GRANTER-0",
"discountedAmount": 0,
"originalAmount": "10.000",
"currency": "USD",
"purchaseDate": "2026-03-03",
"exchangeRate": "1449.30",
"foreignReceiptAmount": "10.00",
"feeAmount": 187
},
"bankTransaction": null,
"taxInvoice": null,
"paymentStatus": null,
"purchaseStatus": "PURCHASED",
"merchantCardTransaction": null,
"merchantPurchaseTransaction": null,
"cashReceipt": null,
"manualTransaction": null,
"hasPurchaseCanceledUsages": false,
"ecommerceSettlementDetailTransaction": null,
"taxType": "EXEMPT"
}
]POST /api/public-docs/assets
거래가 수집되는 자산과 연동 대상을 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
CARD, BANK_ACCOUNT, HOME_TAX_ACCOUNT, CUSTOM, MERCHANT_GROUP, SECURITIES_ACCOUNT, ECOMMERCE, MANUAL
Response Fields
▶[]AssetrequiredexpandableBE `/assets` 원본 응답 배열의 각 원소
자산 ID
자산 타입
자산 번호
워크스페이스 ID
자산명
별칭
금융기관 코드
금융기관명
업종
업종명
숨김 여부
활성 여부
휴면 여부
휴면 가능 여부
무료 여부
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
자동 할당 여부
▶cardAssetCardInfooptionalexpandable카드 자산 정보
만료 연도
만료 월
한도 금액
사용 금액
잔여 한도
이전 카드 번호
▶bankAccountAssetBankAccountInfooptionalexpandable계좌 자산 정보
계좌 잔액
원본 계좌 잔액
통화 코드
조회 시작일
조회 종료일
계좌 번호
계좌명
별칭
계좌 유형
거래내역 보유 여부
▶homeTaxAccountAssetHomeTaxAccountInfooptionalexpandable홈택스 자산 정보
홈택스 자산 카테고리
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
연락처
업태
종목
▶readCertificateobjectoptionalexpandable조회 인증서
인증서 ID
만료 여부
만료 시각
연결 시각
▶issueCertificateobjectoptionalexpandable발행 인증서
등록 시각
만료 시각
발급자 구분명
발급자명
주체 구분명
OID
등록자명
등록자 ID
▶securitiesAccountAssetSecuritiesAccountInfooptionalexpandable증권 자산 정보
총액(원화)
예수금(원화)
외화예수금(원화)
▶foreignDepositsForeignDeposit[]requiredexpandable외화예수금 보유 목록
외화예수금 ID
통화 코드
금액
생성 시각
보유 주식 평가액 합계(원화)
계좌번호
▶productsProduct[]requiredexpandable보유 투자상품
상품 ID
상품 유형 코드
상품 유형명
상품명
상품 코드
수량
통화 코드
현재 금액(원화)
현재 금액
평가 금액(원화)
평가 금액
평가 손익(원화)
평가 손익
수익률
생성 시각
▶customAssetAssetCustomInfooptionalexpandable커스텀 자산 정보
커스텀 자산 유형
자산 번호
금액
▶ecommerceAccountAssetEcommerceAccountInfooptionalexpandable이커머스 스토어 계정 정보
스토어 사용자명
OTP 인증 여부
생성 시각
수정 시각
비밀번호 보유 여부
curl -X POST https://app.granter.biz/api/public-docs/assets \
-H "Content-Type: application/json" \
-H "Authorization: Basic <BASE64(API_KEY:)>" \
-d '{
"assetType": "CARD"
}'[
{
"id": 54,
"assetType": "CARD",
"number": "426586******9827",
"workspaceId": 1,
"name": "샘플 법인카드",
"nickname": "운영 카드",
"organization": "KB",
"organizationName": "국민카드",
"businessType": "CD",
"businessTypeName": "CD",
"isHidden": false,
"isActive": true,
"isDormant": false,
"isPossibleDormant": false,
"owners": [
{
"id": 67,
"name": "소유자 A",
"email": "owner-a@example.com",
"isDeleted": false
}
],
"clientType": "CORPORATE",
"userAutoAssignEnabled": true,
"isFree": false,
"hasPassword": false,
"createdAt": "2024-12-25T13:01:51.863136",
"modifiedAt": "2026-03-08T12:05:58.877862",
"card": {
"expirationYear": "2030",
"expirationMonth": "09",
"limitAmount": 1000000,
"usedAmount": 0,
"remainLimit": 0,
"previousCardNumber": null
},
"bankAccount": null,
"homeTaxAccount": null,
"securitiesAccount": null,
"customAsset": null,
"ecommerceAccount": null
}
]POST /api/public-docs/balances
계좌별 잔액 흐름과 현금 추이를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
기간 기반 조회는 요청 1회당 최대 31일까지 사용할 수 있으며, 더 긴 범위는 31일 이하 구간으로 나눠 조회한 뒤 합쳐서 사용하세요.
조회 시작일 (전달 시 endDate와 함께 전달 필수)
조회 종료일 (전달 시 startDate와 함께 전달 필수)
Response Fields
▶[]AssetBalancerequiredexpandableBE `/bank-accounts/daily-balances` 응답을 계좌 기준으로 가공한 배열의 각 원소
▶bankAccountTicketAssetrequiredexpandable계좌 자산 정보
자산 ID
워크스페이스 ID
자산명
자산 별칭
기관 코드
기관명
활성 여부
휴면 가능 여부
휴면 여부
자산 번호
▶ownersUserResponse[]requiredexpandable소유자 목록
유저 ID
유저 이름
유저 이메일
삭제 여부
고객 유형
업종 코드
업종명
유저 자동 할당 여부
카드 만료 연도
카드 만료 월
카드 한도 금액
카드 사용 금액
카드 잔여 한도
자동 승인 여부
이전 카드번호
계좌 잔액
원본 잔액
통화 코드
조회 시작일
조회 종료일
계좌 유형
거래내역 보유 여부
증권 총액
증권 예수금
외화예수금 상세 목록
외화예수금 합계
총 평가금액
계좌 번호
증권 보유 상품 목록
사업자등록번호
개업일자 코드
회사명
대표자명
주소
담당자명
담당자 이메일
연락처
업태
종목
홈택스 카테고리
생성 시각
수정 시각
조회 인증서 정보
발행 인증서 정보
▶balancesBalanceByDate[]requiredexpandable기간별 잔액 목록
잔액 기준일
계좌 잔액 (원화)
원본 통화 기준 잔액
curl -X POST https://app.granter.biz/api/public-docs/balances \
-H "Content-Type: application/json" \
-H "Authorization: Basic <BASE64(API_KEY:)>" \
-d '{
"startDate": "2026-03-01",
"endDate": "2026-03-07"
}'[
{
"bankAccount": {
"id": 3,
"assetType": "BANK_ACCOUNT",
"number": "140014******561",
"workspaceId": 1,
"name": "기업자유예금",
"nickname": "메인 통장",
"organization": "SHINHAN_BANK",
"organizationName": "신한은행",
"businessType": "BK",
"businessTypeName": "BK",
"isHidden": false,
"isActive": true,
"isDormant": false,
"isPossibleDormant": false,
"owners": [
{
"id": 9,
"name": "소유자 B",
"email": "owner-b@example.com",
"isDeleted": false
}
],
"clientType": "CORPORATE",
"userAutoAssignEnabled": true,
"isFree": false,
"hasPassword": false,
"createdAt": "2024-07-18T11:23:29.369334",
"modifiedAt": "2026-03-08T12:06:11.683152",
"card": null,
"bankAccount": {
"accountBalance": -89911970,
"originalBalance": "-89911970",
"currencyCode": "KRW",
"startDate": "20240119",
"endDate": "",
"accountNumber": "140014******561",
"accountName": "기업자유예금",
"nickName": "메인 통장",
"accountType": "DEPOSIT",
"isTransactionVisible": true
},
"homeTaxAccount": null,
"securitiesAccount": null,
"customAsset": null,
"ecommerceAccount": null
},
"balances": [
{
"accountBalance": -89911970,
"baseDate": "2026-03-01",
"originalBalance": -89911970
},
{
"accountBalance": -89911970,
"baseDate": "2026-03-02",
"originalBalance": -89911970
}
]
}
]GET /api/public-docs/tag-details
1차 태그 아래의 세부 분류 기준 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
Response Fields
▶[]TagrequiredexpandableBE `/tag-details` 원본 응답 배열의 각 원소
1차/2차 태그 ID
1차/2차 태그명
설명
생성 시각
수정 시각
태그 분류 타입 (Tag=1차 태그, TagDetail=2차 태그)
워크스페이스 ID
상위 1차 태그 ID (2차 태그에 해당)
코드
지출 집계 금액
입금 집계 금액
숨김 여부
curl -X GET https://app.granter.biz/api/public-docs/tag-details \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 5,
"workspaceId": 1,
"name": "마케팅 비용",
"description": "",
"tagId": 82,
"isHidden": false,
"createdAt": "2024-11-11T19:58:19.541909",
"modifiedAt": "2026-01-30T14:38:32.668294"
}
]GET /api/public-docs/categories
회계 처리와 분석에 사용하는 계정과목 기준 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
Response Fields
▶[]ExpenseCategoryrequiredexpandableBE `/expense-categories` 원본 응답 배열의 각 원소
계정과목 ID
계정과목명
부가 정보
설명
코드
카테고리 타입
숨김 여부
비용 유형
즐겨찾기 여부
워크스페이스 ID
기본 과세 유형
curl -X GET https://app.granter.biz/api/public-docs/categories \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 285,
"name": "가수금",
"subInfo": "부채",
"description": "계정과목이 명확치 않은 현금 입금액",
"code": "257",
"type": "COMMON",
"isHidden": false,
"costType": "VARIABLE",
"isFavorite": false,
"taxType": null
}
]GET /api/public-docs/people
담당자, 결재자, 분류 주체로 활용되는 워크스페이스 구성원 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
Response Fields
▶[]UserrequiredexpandableBE `/workspaces` 응답의 `users` 배열 원본
유저 ID
이름
이메일
워크스페이스 ID
워크스페이스명
팀 ID
팀명
전화번호
▶roleWorkspaceRolerequiredexpandable워크스페이스 역할
역할 ID
역할명
오너 여부
기본 역할 여부
curl -X GET https://app.granter.biz/api/public-docs/people \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 4,
"name": "구성원 A",
"email": "member-a@example.com",
"workspaceId": 1,
"workspaceName": "샘플 워크스페이스",
"teamId": 133,
"teamName": "마케팅팀",
"nickname": "담당자 A",
"phoneNumber": "01012345678",
"role": {
"id": 1,
"name": "소유자",
"isOwner": true,
"isDefault": false
},
"cards": [],
"notificationConfig": {
"userId": 4,
"slack": false,
"appPush": false,
"email": false,
"kakao": false
}
}
]GET /api/public-docs/contacts
거래처, 고객사, 공급사처럼 상대방 기준으로 관리하는 거래처 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
현재 응답은 최신 거래처 목록 기준으로 최대 100건을 조회합니다.
Response Fields
▶[]ContactrequiredexpandableBE `/contacts` 원본 응답 배열의 각 원소
거래처 ID
워크스페이스 ID
사업자등록번호
회사명
대표자명
업태
종목
사업장 주소
이메일
보조 이메일
휴대전화
전화번호
최근 발행 시각
거래처 지역 구분
숨김 여부
▶managersContactManager[]optionalexpandable거래처 담당자 목록
거래처 담당자 ID
거래처 ID
담당자 이름
휴대전화
전화번호
팩스번호
이메일
메모
국가
계좌번호
은행명
예금주명
메모
즐겨찾기 여부
curl -X GET https://app.granter.biz/api/public-docs/contacts \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 928,
"workspaceId": 1,
"registrationNumber": "1111111111",
"companyName": "샘플 거래처",
"ceoName": "대표자 A",
"businessTypes": "",
"businessItems": "",
"businessPlace": "",
"email": null,
"email2": null,
"phone": null,
"tel": null,
"bankName": null,
"bankAccountOwnerName": null,
"accountNumber": null,
"lastIssuedAt": "2026-02-19T16:32:29.514778",
"managers": [],
"region": "DOMESTIC",
"nation": "",
"isHidden": false,
"memo": "",
"isFavorite": false
}
]GET /api/public-docs/teams
구성원을 조직 단위로 묶어 관리하는 팀 기준 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
Response Fields
▶[]TeamrequiredexpandableBE `/teams` 원본 응답 배열의 각 원소
팀 ID
팀명
curl -X GET https://app.granter.biz/api/public-docs/teams \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 6,
"name": "인사팀"
}
]GET /api/public-docs/workflows
기안 문서, 결재 상태, 결재선 정보를 포함한 전자결재 데이터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
직접 호출 시 `status`, `draftedByMe`, `limit`, `offset` query string을 사용할 수 있습니다.
테스트 패널은 기본 목록 조회를 수행합니다.
결재 상태 필터
내가 올린 결재만 조회할지 여부
조회 건수 제한. 지정하지 않으면 최대 100건까지 조회합니다.
페이지 오프셋
Response Fields
▶[]WorkflowrequiredexpandableBE `/workflows` 원본 응답 배열의 각 원소
전자결재 ID
워크스페이스 ID
결재안 제목
결재 내용
결재 금액
원본 결재 금액
이체 요청일
결재 상태
통화 코드
결재 요청 시각
최종 수정 시각
현재 결재 차수
연결된 태그명
연결된 태그 ID
▶userUserrequiredexpandable기안자 정보
기안자 ID
기안자 이름
기안자 이메일
삭제 여부
▶refundAccountRefundAccountoptionalexpandable환급 계좌 정보
예금주명
계좌번호
은행명
▶stepsWorkflowStep[]requiredexpandable결재 단계 목록
결재 단계 ID
결재 차수
결재 단계 상태
생성 시각
수정 시각
▶approverApproverrequiredexpandable결재자 정보
결재자 ID
결재자 이름
결재자 이메일
삭제 여부
▶reviewersReviewer[]requiredexpandable검토자 목록
검토자 연결 ID
▶reviewerUserResponserequiredexpandable검토자 정보
유저 ID
유저 이름
유저 이메일
삭제 여부
▶messagesWorkflowMessage[]optionalexpandable결재 메시지 목록
메시지 ID
메시지 내용
메시지 타입
생성 시각
삭제 시각
▶userUserResponserequiredexpandable작성자 정보
유저 ID
유저 이름
유저 이메일
삭제 여부
▶attachmentsWorkflowAttachment[]optionalexpandable첨부파일 목록
첨부파일 ID
파일명
업로드 URL
MIME 타입
curl -X GET https://app.granter.biz/api/public-docs/workflows \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 333,
"workspaceId": 1,
"user": {
"id": 8,
"name": "기안자 A",
"email": "drafter@example.com",
"isDeleted": false
},
"title": "3월 운영비 집행",
"content": "<p>3월 운영비 집행 승인 요청입니다.</p>",
"amount": 50000,
"originalAmount": 50000,
"expectedPaymentDate": "2026-02-11",
"status": "COMPLETED",
"currentStep": 1,
"currency": "KRW",
"createdAt": "2026-02-11T11:12:14.478782",
"messages": [
{
"id": 878,
"user": {
"id": 8,
"name": "기안자 A",
"email": "drafter@example.com",
"isDeleted": false
},
"content": "1차 결재가 승인되었습니다.",
"type": "SYSTEM",
"createdAt": "2026-02-11T11:12:25.120704",
"deletedAt": null
},
{
"id": 879,
"user": {
"id": 8,
"name": "기안자 A",
"email": "drafter@example.com",
"isDeleted": false
},
"content": "결재 상태가 결재완료로 변경되었습니다.",
"type": "SYSTEM",
"createdAt": "2026-02-11T11:12:27.811770",
"deletedAt": null
}
],
"attachments": [],
"refundAccount": null,
"steps": [
{
"id": 573,
"approver": {
"id": 8,
"name": "결재자 A",
"email": "approver@example.com",
"isDeleted": false
},
"step": 1,
"status": "APPROVED",
"createdAt": "2026-02-11T11:12:14.483147",
"modifiedAt": "2026-02-11T11:12:25.137155"
}
],
"reviewers": [],
"tag": null,
"tagId": null,
"modifiedAt": "2026-02-11T11:12:27.813271"
}
]POST /api/public-docs/salary-histories
직원별 급여 내역, 지급 상태, 보험료, 수당·공제 상세를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
급여는 티켓과 분리된 독립 도메인입니다.
조회 시 `startDate`, `endDate`는 필수입니다.
기간 기반 조회는 요청 1회당 최대 31일까지 사용할 수 있으며, 더 긴 범위는 31일 이하 구간으로 나눠 조회한 뒤 합쳐서 사용하세요.
`employmentType`, `salaryPaymentStatus`, `employeeId`, `keyword`는 선택 필터입니다.
조회 시작일
조회 종료일
고용 형태 필터. 단일 값 또는 배열을 전달할 수 있습니다.
급여 지급 상태 필터. 단일 값 또는 배열을 전달할 수 있습니다.
직원 ID 필터
직원명 또는 설명 키워드 검색
Response Fields
▶[]SalaryHistoryrequiredexpandableBE `/salary-histories` 원본 응답 배열의 각 원소
급여 이력 ID
워크스페이스 ID
▶employeeUserResponseoptionalexpandable직원 정보
유저 ID
유저 이름
유저 이메일
삭제 여부
직원 ID
직원명
직원 이메일
고용 형태
총급여
실질인정금액
지급일
비과세 식대
상여금
수당 합계
국민연금
건강보험
고용보험
장기요양보험
은행명
은행 계좌번호
실지급액
설명
고용 할인 유형
소득세
지방소득세
급여 지급 상태
명세서 email 발송 여부
email 발송 시각
메시지 개수
당월 근무 시간
미달 근무 시간
무급휴가 시간
근무 인정 시간
적용 비율 타입
적용 비율
▶taxExemptionsTitleAmount[]optionalexpandable비과세급 상세
항목명
금액
▶incentivesTitleAmount[]optionalexpandable인센티브 상세
항목명
금액
▶allowancesTitleAmount[]optionalexpandable수당 상세
항목명
금액
▶deductionsTitleAmount[]optionalexpandable공제 상세
항목명
금액
생성 시각
수정 시각
curl -X POST https://app.granter.biz/api/public-docs/salary-histories \
-H "Content-Type: application/json" \
-H "Authorization: Basic <BASE64(API_KEY:)>" \
-d '{
"startDate": "2026-02-01",
"endDate": "2026-02-28"
}'[
{
"id": 303,
"workspaceId": 1,
"employee": {
"id": 67,
"name": "직원 A",
"email": "employee-a@example.com",
"isDeleted": false
},
"employeeName": "직원 A",
"employeeEmail": null,
"employmentType": "REGULAR_EMPLOYEE",
"totalAmount": 5000000,
"paymentDate": "2026-02-01",
"mealAmount": 3000,
"bonusAmount": 10000,
"pensionInsuranceAmount": 261000,
"healthInsuranceAmount": 198080,
"employInsuranceAmount": 49580,
"careInsuranceAmount": 26020,
"bank": "국민은행",
"bankAccount": "123-45-****",
"recognizedAmount": 5003000,
"netAmount": 4519877,
"description": "",
"employmentDiscount": "NONE",
"incomeTaxAmount": 405590,
"localIncomeTaxAmount": 40550,
"salaryPaymentStatus": "PENDING",
"isEmailNotified": false,
"emailNotifiedAt": null,
"messageCount": 0,
"scheduledWorkHours": 28,
"shortfallHours": 0,
"unpaidLeaveHours": 0,
"recognizedWorkHours": 28,
"allowanceAmount": 500000,
"appliedRatioType": "",
"appliedRatio": 1,
"taxExemptions": [{ "title": "비과세급", "amount": 3000 }],
"incentives": [{ "title": "상여금", "amount": 10000 }],
"allowances": [{ "title": "직책수당", "amount": 500000 }],
"deductions": [{ "title": "기타 공제", "amount": 12303 }],
"createdAt": "2026-02-11T14:02:48.545431",
"modifiedAt": "2026-02-28T14:22:59.327028"
}
]GET /api/public-docs/inventory-products
품목명, 단가, 통화, 추가 속성으로 구성된 품목 마스터를 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
직접 호출 시 `limit`, `lastSeenId` query string을 사용할 수 있습니다.
조회 건수 제한
페이지네이션 기준 ID
Response Fields
▶[]InventoryProductrequiredexpandableBE `/inventory-products` 원본 응답 배열의 각 원소
품목 ID
품목명
단가
통화 코드
▶additionalPropertiesInventoryAdditionalProperty[]optionalexpandable추가 속성 목록
추가 속성 ID
속성명
속성값
curl -X GET https://app.granter.biz/api/public-docs/inventory-products \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 63,
"name": "샘플 품목 A",
"unitPrice": 123,
"currency": "KRW",
"additionalProperties": [
{ "id": 23, "key": "EXP date", "value": "" },
{ "id": 22, "key": "창고", "value": "" },
{ "id": 13, "key": "커스텀속성2", "value": "" }
]
}
]GET /api/public-docs/inventories
품목별 현재 재고 수량, 재고 메시지 수, 최근 수정 시각을 포함한 재고 현황을 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
요청 body는 사용하지 않습니다.
직접 호출 시 `limit`, `lastSeenId` query string을 사용할 수 있습니다.
조회 건수 제한
페이지네이션 기준 ID
Response Fields
▶[]InventoryStockrequiredexpandableBE `/inventories` 원본 응답 배열의 각 원소
재고 엔트리 ID
품목 ID
품목명
단가
현재 재고 수량
통화 코드
생성 시각
수정 시각
메시지 개수
▶additionalPropertiesInventoryAdditionalProperty[]optionalexpandable추가 속성 목록
추가 속성 ID
속성명
속성값
curl -X GET https://app.granter.biz/api/public-docs/inventories \ -H "Authorization: Basic <BASE64(API_KEY:)>"
[
{
"id": 3,
"inventoryProductId": 2,
"name": "샘플 재고 품목 A",
"unitPrice": 880000,
"quantity": 10,
"currency": "KRW",
"createdAt": "2025-12-05T12:29:29.850909",
"modifiedAt": "2026-02-11T13:05:46.900783",
"messageCount": 0,
"additionalProperties": [
{ "id": 18, "key": "1211", "value": "123123" },
{ "id": 14, "key": "123", "value": "123" },
{ "id": 22, "key": "창고", "value": "" }
]
}
]POST /api/public-docs/attendances
구성원의 출퇴근 기록과 휴가 사용 내역을 기간별로 조회합니다.
Request Fields
`workspaceId`는 요청값을 받지 않고 API key에서 자동으로 결정됩니다.
조회 시 `startDate`, `endDate`는 필수입니다.
기간 기반 조회는 요청 1회당 최대 31일까지 사용할 수 있으며, 더 긴 범위는 31일 이하 구간으로 나눠 조회한 뒤 합쳐서 사용하세요.
`userIds`로 특정 구성원만 필터링하거나, `recordType`으로 근무/휴가를 구분할 수 있습니다.
조회 시작일
조회 종료일
조회 대상 유저 ID 목록
기록 타입 필터. WORK: 근무만, LEAVE: 휴가만, 미입력 시 전체
Response Fields
▶[]TimeCardRecordrequiredexpandable근무/휴가 기록 배열
▶timeCardTimeCardrequiredexpandable타임카드 정보
워크스페이스 ID
유저 ID
기준일
시작 일시
종료 일시
생성 일시
수정 일시
▶workRecordWorkRecord | nulloptionalexpandable근무 기록 (휴가인 경우 null)
근무 기록 ID
▶clockInLocationClockLocationrequiredexpandable출근 위치
IP 주소
주소
상세 주소
위도
경도
허용 반경 (m)
▶clockOutLocationClockLocation | nulloptionalexpandable퇴근 위치
IP 주소
주소
상세 주소
위도
경도
허용 반경 (m)
원격 근무 여부
▶leaveRecordLeaveRecord | nulloptionalexpandable휴가 기록 (근무인 경우 null)
휴가 기록 ID
결재자 유저 ID
휴가 사유
승인 상태
승인 일시
반려 일시
반려 사유
생성 일시
수정 일시
curl -X POST https://app.granter.biz/api/public-docs/attendances \
-H "Content-Type: application/json" \
-H "Authorization: Basic <BASE64(API_KEY:)>" \
-d '{
"startDate": "2026-03-01",
"endDate": "2026-03-15"
}'[
{
"timeCard": {
"workspaceId": 1,
"userId": 67,
"baseDate": "2026-03-10",
"startedAt": "2026-03-10T09:00:00",
"endedAt": "2026-03-10T18:00:00",
"createdAt": "2026-03-10T09:00:12.345678",
"modifiedAt": "2026-03-10T18:00:45.123456"
},
"workRecord": {
"workRecordId": 101,
"clockInLocation": {
"ip": "192.168.1.10",
"address": "서울특별시 강남구",
"addressDetail": "테헤란로 123",
"latitude": 37.5065,
"longitude": 127.0536,
"radius": 200.0
},
"clockOutLocation": {
"ip": "192.168.1.10",
"address": "서울특별시 강남구",
"addressDetail": "테헤란로 123",
"latitude": 37.5065,
"longitude": 127.0536,
"radius": 200.0
},
"isRemote": false
},
"leaveRecord": null
},
{
"timeCard": {
"workspaceId": 1,
"userId": 67,
"baseDate": "2026-03-12",
"startedAt": "2026-03-12T00:00:00",
"endedAt": "2026-03-12T23:59:59",
"createdAt": "2026-03-11T15:30:00.000000",
"modifiedAt": "2026-03-12T10:00:00.000000"
},
"workRecord": null,
"leaveRecord": {
"leaveRecordId": 55,
"approverUserId": 4,
"reason": "개인 사유",
"status": "APPROVED",
"approvedAt": "2026-03-11T16:00:00",
"rejectedAt": null,
"rejectedReason": null,
"createdAt": "2026-03-11T15:30:00.000000",
"modifiedAt": "2026-03-11T16:00:00.000000"
}
}
]Error Responses
Aggregation Tips
{
"period": "monthly",
"filters": {
"ticketTypes": ["EXPENSE_TICKET", "BANK_TRANSACTION_TICKET"],
"startDate": "2026-02-01",
"endDate": "2026-02-28",
"isIncluded": true
},
"groupBy": "expenseCategoryId"
}[
{
"period": "2026-02",
"categoryId": 101,
"categoryName": "식비",
"costType": "VARIABLE",
"outAmount": -158000,
"displayAmount": 158000,
"count": 9
},
{
"period": "2026-02",
"categoryId": 205,
"categoryName": "급여",
"costType": "FIXED",
"outAmount": -4200000,
"displayAmount": 4200000,
"count": 4
}
]{
"date": "2026-03-08",
"balances": [
{
"assetId": 11,
"assetName": "국민은행",
"openingBalance": 12500000,
"inAmount": 3200000,
"outAmount": -1850000,
"closingBalance": 13850000
}
],
"sections": {
"bankTransactions": [{ "ticketId": 1, "content": "거래처 입금", "amount": 3200000 }],
"cardExpenses": [{ "ticketId": 2, "content": "점심 식대", "amount": 12000 }],
"taxInvoices": [],
"cashReceipts": [],
"manualTransactions": []
}
}