QuickBooks Online 연동 가이드 SkyPlanner APS로 생산 스케줄링하기
이 가이드는 ProAdvisors, 컨설턴트, IT 팀을 대상으로 QuickBooks Online과 SkyPlanner APS를 연결하는 방법을 설명합니다. SkyPlanner는 Intuit의 Accounting API를 통해 QuickBooks Online과 양방향으로 연동됩니다.
- 고객, 현재고 수량이 포함된 품목, 승인된 견적서, 미결 구매 주문, 직원 정보를 가져옵니다.
- 계획된 완료일을 각 견적서의 출하일에 반영합니다.
- 완료된 주문은 해당 견적서에 연결된 청구서로, 기록된 작업 시간은 작업 시간 내역으로, 재고 변동은 재고 조정으로 QuickBooks에 전송합니다.
- QuickBooks 웹훅은 변경 사항을 SkyPlanner에 알리고, SkyPlanner 웹훅은 일정 변경 사항을 발생 즉시 전송합니다.
QuickBooks Online은 회계 소프트웨어이므로 설비, 공정 순서, 생산 주문 정보를 보유하지 않습니다. 작업장, 공정 단계, 교대조, 준비 시간은 SkyPlanner에서 관리합니다. SkyPlanner 팀은 온보딩 과정에서 고객의 QuickBooks 회사에 맞게 연동을 설정하고, 정식 운영 이후에도 지원합니다. 이 가이드는 연동 작업에 참여하거나 문서화된 SkyPlanner REST API(API 참조 문서)로 직접 개발하려는 파트너와 개발자를 위한 자료입니다.
QuickBooks Online Accounting API
QuickBooks Online은 하나의 멀티테넌트 클라우드 제품이며, 모든 회사가 동일한 Accounting API를 사용합니다. 이 API는 v3 버전의 REST API입니다. 각 호출은 realm ID로 하나의 회사를 지정합니다: https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity}. 테스트용 샌드박스 호스트는 별도로 제공됩니다. 요청과 응답은 JSON 형식이며, minorversion 매개변수로 스키마 버전을 선택합니다. (출처)
생산 스케줄링에 필요한 엔터티는 다음과 같습니다.
- 기준정보:
Customer,Item(Inventory, NonInventory, Service),Employee,Vendor. - 수요:
Estimate(TxnStatus가 Accepted인 견적서의 상세 항목,ShipDate). 먼저 대금을 청구하는 제조업체는Invoice또는SalesReceipt도 사용합니다. - 공급:
PurchaseOrder(POStatus가 Open인 구매 주문, 품목과 수량이 포함된 상세 항목),Bill. - 역전송:
Estimate,Invoice,TimeActivity,InventoryAdjustment.
데이터를 읽을 때는 query 엔드포인트를 사용합니다. 예를 들면 select * from Estimate where MetaData.LastUpdatedTime > '2026-10-01'입니다. 일부 필드만 업데이트할 수 있으므로 SkyPlanner는 변경한 필드만 전송합니다. Accounting API에는 판매 주문, 공정 순서, 작업 센터, 생산 주문 엔터티가 없습니다.
인증 및 사용 한도
Accounting API는 OAuth 2.0의 authorization code 흐름과 com.intuit.quickbooks.accounting 범위를 사용합니다. QuickBooks 관리자가 한 번 로그인해 접근을 승인하면, 앱은 유효기간이 짧은 액세스 토큰과 갱신할 때마다 교체되는 리프레시 토큰을 보유합니다. 액세스 토큰은 Authorization: Bearer로 전송합니다. (출처)
Intuit는 회사별로 분당·초당 호출 수를 제한하며, 앱이 한도를 초과하면 HTTP 429를 반환합니다. Intuit의 App Partner Program은 일부 API 호출에 대해 파트너 등급별 월간 사용량도 집계합니다. 두 기준은 Intuit의 사용 한도 및 호출 제한 페이지에 설명되어 있습니다. 웹훅, 변경 데이터 캡처, 부분 업데이트를 사용하면 생산 스케줄링 연동을 이러한 한도 내에서 여유 있게 운영할 수 있습니다.
SkyPlanner의 REST API는 Authorization-Token 헤더에 넣은 API 토큰으로 인증하며(SkyPlanner Settings > API), Swagger/OpenAPI로 문서화되어 있습니다. 연동 튜토리얼에서 첫 API 호출 과정을 안내합니다.
웹훅과 변경 데이터 캡처
QuickBooks 웹훅은 연결된 회사의 데이터가 변경되면 앱에 알립니다. “Webhooks automatically notify you whenever data changes in your end-user’s QuickBooks Online company files.”(최종 사용자의 QuickBooks Online 회사 파일에서 데이터가 변경될 때마다 웹훅이 자동으로 알려줍니다.) (출처) 생산 스케줄링에 중요한 엔터티는 다음과 같습니다.
Customer,Item,EmployeeEstimate,Invoice,SalesReceiptPurchaseOrder,BillTimeActivity
작업 유형에는 Create, Update, Delete, Merge, Void가 있습니다. 알림에는 전체 레코드가 아니라 엔터티 이름, ID, 작업 유형, 마지막 업데이트 시각이 포함됩니다. 수신 측은 알림을 받은 뒤 해당 레코드를 읽습니다.
변경 데이터 캡처(GET /cdc?entities=...&changedSince=...)는 조회 가능한 최근 기간 내에서 지정한 시각 이후의 모든 변경 사항을 반환합니다. SkyPlanner는 이를 사용해 매일 밤 데이터를 대조하므로 웹훅을 놓쳐도 주문이 갱신되지 않은 채 남는 일이 없습니다. TimeActivity는 변경 데이터 캡처 대상이 아니므로 쿼리로 대조합니다. (출처)
데이터 매핑
| QuickBooks Online 객체 | SkyPlanner 객체 | 전송 방향 | 동기화 주기 |
|---|---|---|---|
Customer | 고객(external_identifier, delivery_priority) | QuickBooks → SkyPlanner | 최초 일괄 로드 후 웹훅 수신 시 |
QtyOnHand가 포함된 Item(Inventory, NonInventory, Service) | 제품 및 자재, 재고 | QuickBooks → SkyPlanner | 최초 일괄 로드 후 웹훅 수신 시 |
Estimate(Accepted), 상세 항목, ShipDate | 주문(external_order_number, delivery_date), 상세 항목별 작업 | QuickBooks → SkyPlanner | 웹훅으로 실시간 반영 |
Invoice 또는 SalesReceipt(대금을 먼저 청구하는 제조업체) | 주문 및 작업 | QuickBooks → SkyPlanner | 웹훅으로 실시간 반영 |
PurchaseOrder(Open), 상세 항목 | 입고 예정 자재(제품 구매 주문) | QuickBooks → SkyPlanner | 웹훅으로 실시간 반영 |
Employee | 인력 | QuickBooks → SkyPlanner | 최초 일괄 로드 후 웹훅 수신 시 |
Estimate.ShipDate(부분 업데이트) | 계획 완료일 | SkyPlanner → QuickBooks | 일정 변경 시 |
LinkedTxn으로 Estimate에 연결된 Invoice | 완료된 주문 | SkyPlanner → QuickBooks | 주문 완료 시 |
TimeActivity(EmployeeRef, CustomerRef, ItemRef, 작업 시간) | Mobile Confirmations, 작업 시간 기록 | SkyPlanner → QuickBooks | 작업 기록 시 |
InventoryAdjustment | 완제품 입고, 자재 사용 | SkyPlanner → QuickBooks | 주문 완료 시 |
| QuickBooks에 없음 | 작업장, 공정 단계, 교대조, 부재, 준비 시간 매트릭스, 도구, 작업자 수, 대체 작업장 | SkyPlanner에서 관리 | 온보딩 중 설정 |
연동 패턴
1. 기준정보 최초 일괄 로드. query 엔드포인트로 고객, 품목, 직원, 미결 구매 주문을 페이지 단위로 조회합니다. QuickBooks ID를 external_identifier로 사용해 SkyPlanner 고객을 생성하고, 품목 ID를 키로 사용해 제품과 자재를 생성합니다. 그런 다음 QuickBooks에 없는 작업장, 제품별 공정 단계, 교대조, 휴가, 준비 시간을 설정합니다. 공정 단계는 CSV 또는 Excel로 가져오는 것이 가장 빠릅니다.
2. 주문 동기화. Estimate, Invoice, Item, PurchaseOrder 웹훅을 구독합니다. 견적서 상태가 Accepted로 바뀌면 SkyPlanner가 이를 읽어 주문을 생성합니다. 이때 견적서 번호는 external_order_number로, 출하일은 delivery_date로 설정합니다. 각 상세 항목은 제품의 공정 단계에 따라 작업으로 생성됩니다. 미결 구매 주문의 상세 항목은 입고 예정 자재로 반영되므로, 작업은 자재가 도착할 때까지 대기합니다. 매일 밤 실행하는 변경 데이터 캡처가 누락된 이벤트를 찾아냅니다.
3. 일정 및 완료 결과 역전송. 네 가지 호출로 결과를 QuickBooks에 반영합니다.
Estimate의ShipDate를 부분 업데이트하여 QuickBooks의 약속 납기를 계획에 맞춰 반영합니다.- 주문이 완료되면 POST
/invoice호출로 견적서의 상세 항목과 해당 견적서를 가리키는LinkedTxn을 포함한 청구서를 생성합니다. Intuit는 견적서 하나당 청구서 연결을 하나만 허용하므로, 분할 납품 처리 방식은 범위 산정 단계에서 합의합니다. - POST
/timeactivity호출로 각 작업자가 기록한 작업 시간을 직원, 고객, 서비스 품목에 연결해 저장합니다. 이후 청구 가능한 작업 시간을 QuickBooks의 청구서에 추가할 수 있습니다. - POST
/inventoryadjustment호출로 완제품 재고를 늘리고 사용한 자재 재고를 줄입니다. Intuit는 미국의 QuickBooks Online Plus 및 Advanced에서 이 엔터티를 제공합니다. (출처)
4. 생산 현장 실적 등록. 작업자는 SkyPlanner Mobile Confirmations, Production Timer 또는 Quick Log Mode로 작업을 기록합니다. 진행 상황이 일정에 즉시 반영되고, Autopilot이 나머지 일정을 다시 계획합니다. 작업 시간은 작업 시간 내역으로 QuickBooks에 전송됩니다. 급여 처리를 위해 QuickBooks Time을 계속 사용하는 제조업체는 범위 산정 단계에서 작업 시간 기록 경로를 하나로 정해야 합니다.
5. 데이터 관리 주체 및 충돌 처리 규칙. 정식 운영 전에 다음 사항을 문서화하세요.
| 데이터 | 관리 주체 |
|---|---|
| 고객, 품목, 가격, 견적서, 구매 주문, 청구서, 회계 | QuickBooks Online |
| 작업장, 공정 단계, 교대조, 부재, 준비 시간 매트릭스, 도구, 대체 자원 | SkyPlanner |
| 작업 순서, 시작 및 종료 시각, 작업별 작업장 | SkyPlanner |
| 견적서의 출하 예정일 | SkyPlanner에서 관리하고 QuickBooks에 기록 |
| 완료된 주문의 청구서, 작업 시간, 완제품 재고 조정 | SkyPlanner에서 생성하고 전기 후에는 QuickBooks에서 관리 |
일반적인 프로젝트 진행 단계
구축은 보통 온보딩 시작 후 몇 주 안에 완료됩니다. 그에 앞서 QuickBooks에서 내보낸 고객, 제품, 미결 견적 데이터를 사용해 30일 무료 체험을 진행합니다.
프로젝트는 다음 단계로 진행됩니다.
- 연결. QuickBooks 관리자가 Intuit의 OAuth 2.0 화면에서 SkyPlanner를 승인합니다.
- 수요 객체 결정. 수락된 견적, 청구서, 판매 영수증 중 무엇을 기준으로 생산을 시작할지 합의합니다.
- 매핑. 매핑 테이블, 품목 키, 노무비 청구용 서비스 품목, 데이터 관리 주체에 관한 규칙을 확정합니다.
- 초기 데이터 적재. 고객, 품목, 직원, 미결 구매 주문을 가져옵니다.
- 생산 모델 구성. SkyPlanner에서 작업장, 제품별 공정 단계, 교대 근무, 준비 시간 매트릭스, 공구, 작업자 수를 설정합니다.
- 이벤트 동기화. 견적, 품목, 구매 주문에 웹훅을 적용하고 매일 밤 변경 데이터 캡처를 실행합니다.
- 결과 반영. 출하일을 먼저 반영한 뒤 청구서, 작업 시간 내역, 재고 조정을 반영합니다.
- 병행 테스트 및 정식 가동. SkyPlanner의 일정과 현재 계획을 비교하고, 회계 담당자가 최초 청구서와 조정 내역을 확인한 다음 결과 반영 기능을 켭니다.
QuickBooks Online 연동 시 미리 정해야 할 사항
- 판매 주문은 QuickBooks 화면에서 관리합니다. Plus와 Advanced 앱에는 판매 주문 기능이 있으며, 연동에서는 수락된 견적을 읽습니다. 선청구 방식으로 운영하는 업체라면 청구서를 읽습니다. 모든 주문이 같은 방식으로 들어오도록 시작 기준을 하나로 합의하세요.
- QuickBooks에는 공정 순서가 없습니다. 제품별 공정 단계는 QuickBooks 품목 키와 연결해 SkyPlanner에서 관리하세요.
- 견적 하나에 청구서 하나를 연결합니다. 분할 납품에는 납품 건마다 견적을 하나씩 만드는 등의 규칙이 필요합니다.
- 재고 조정 지원 여부는 요금제와 지역에 따라 다릅니다. 미국의 Plus와 Advanced에서는 재고 조정을 지원합니다. 그 외 지역에서는 완제품을 QuickBooks에 반영하는 방법을 회계 담당자와 합의하세요.
- Intuit Enterprise Suite의 제조 주문. 이 기능을 사용한다면 생산과 부품 재고 예약을 어느 시스템에서 관리할지 정하세요.
- API에서 번들은 읽기 전용입니다. API로는 그룹 품목을 생성할 수 없으므로 번들은 QuickBooks에서 관리하세요.
- 갱신 토큰 교체. 토큰을 갱신할 때마다 최신 갱신 토큰을 저장하세요. 그렇지 않으면 연결이 끊깁니다.
QuickBooks Online 연동은 누가 설정하고 지원하나요?
연동 작업은 품목, 견적, 구매 주문과 완료된 작업을 청구에 반영하는 방식까지 다룹니다. 여기에 QuickBooks에서 관리하지 않는 작업장, 공정 단계, 교대 근무, 준비 시간 매트릭스, 공구, 작업자 수, 대체 자원을 추가합니다.
- SkyPlanner 팀이 온보딩 중에 연동을 구성하고 정식 가동 후에도 지원합니다. 업체마다 QuickBooks의 품목, 견적, 재고 설정 방식이 다르며, 그에 맞춰 구성하는 데 이러한 노하우를 활용합니다.
- 이용 중인 QuickBooks ProAdvisor나 연동 파트너가 구축할 수도 있습니다. SkyPlanner는 REST API, Swagger/OpenAPI 문서, 웹훅을 제공합니다.
- 사내 개발자도 API 토큰으로 연동을 개발할 수 있습니다. API 토큰만 있으면 시작할 수 있으며, 필요할 때 SkyPlanner 팀이 지원합니다. 구매 주문과 제품 및 자재 API를 비롯한 제품 문서는 SkyPlanner 문서에서 확인할 수 있습니다.
SkyPlanner는 작업장 5개를 포함해 월 199 €부터 시작하며 매월 청구됩니다. 공정과 요구사항에 맞춘 연동 견적을 요금제와 함께 사전에 제공하므로, 시작 전에 전체 비용을 확인할 수 있습니다. 요금과 기능을 확인하고, QuickBooks만으로 가능한 범위는 QuickBooks에 생산 스케줄링 기능이 있나요?에서 살펴보세요. 개요는 QuickBooks Online 페이지에서, 다른 시스템은 전체 연동 목록에서 확인할 수 있습니다.
제조업 고객의 SkyPlanner 사용 후기
2시간매주 절약
“SkyPlanner 덕분에 Excel 스프레드시트로 하던 생산 계획을 실시간 생산 최적화로 전환했습니다.”
Kalle Kalliomäki, 공급망 전문가
UTU · 배전반 및 개폐장치
생산 계획 업무에서 매주 2시간을 절약하고, 새 작업 대기열을 몇 초 만에 생산 라인에 전달합니다.
+90%생산 효율
“생산 효율이 90% 높아졌습니다.”
Abdul Rucyinga, IT 책임자
Laboratory & Allied · 의약품 제조
생산 효율이 90% 높아졌으며, 모든 작업장을 아우르는 석 달 분량의 최적화된 계획을 수립하는 데 30분이 채 걸리지 않습니다.
100%2021년 이후 납기 준수율
“SkyPlanner 덕분에 생산능력을 파악하고 예측 가능한 계획을 세울 수 있습니다.”
Dan Berglund, COO/CFO
Opes Corporation · 화학 및 식품 제조
SkyPlanner를 도입한 2021년부터 지금까지 납기 준수율 100%를 유지하고 있습니다.
1,000s작업 지시 일정 자동 수립
“생산을 이전과는 다르게 통제할 수 있게 되었고, 생산능력에 대한 이해도 완전히 다른 수준으로 높아졌습니다.”
Hannu Ryynänen, CEO
Mamec · 산업용 믹서, 펌프 및 첨단 기술 위탁 제조
수천 건의 작업 지시 일정을 자동으로 수립하고, 조직 전체가 생산 현황을 실시간으로 확인합니다.
자주 묻는 질문
QuickBooks Online에는 생산 데이터용 API가 있나요?
QuickBooks Online은 OAuth 2.0을 사용하는 REST API인 Accounting API를 제공합니다. 고객, 품목, 견적, 청구서, 구매 주문, 작업 시간 내역, 재고 조정을 지원합니다. 작업장과 공정 단계 같은 생산 데이터는 SkyPlanner에서 관리합니다.
SkyPlanner의 데이터를 QuickBooks Online에 다시 기록할 수 있나요?
네. SkyPlanner는 각 견적에 출하 예정일을 기록하고, 주문이 완료되면 해당 견적과 연결된 청구서를 생성합니다. 기록된 작업 시간은 작업 시간 내역으로 등록하며, 미국 Plus와 Advanced에서는 완제품과 사용 자재를 재고 조정으로 기록합니다.
QuickBooks Online은 변경 사항을 실시간으로 전송하나요?
네. QuickBooks 웹훅은 고객, 품목, 견적, 청구서, 구매 주문, 작업 시간 내역을 지원합니다. SkyPlanner는 변경된 각 레코드를 읽고, 매일 밤 변경 데이터 캡처로 데이터를 대조해 맞춥니다.
QuickBooks에 없는 공정 순서와 설비 정보는 어디에서 가져오나요?
SkyPlanner에서 관리합니다. 작업장, 제품별 공정 단계, 교대 근무, 준비 시간을 직접 입력하거나 CSV 또는 Excel 파일을 가져와 한 번 설정하면 됩니다. 각 공정 단계가 QuickBooks 품목과 연결되므로 새 견적의 일정이 자동으로 수립됩니다.