Skip to main content

무엇을 조회하나요

볼타에 연결한 내 사업자의 입출금 계좌와 입출금내역을 조회합니다. 볼타가 은행에서 가져와 적재한 내역을 그대로 돌려주고, 필요하면 동기화를 요청할 수 있어요. 조회 대상은 API 키가 속한 사업자 한 곳이며, 다른 사업자의 계좌는 조회할 수 없습니다.

이용 조건

포인트를 차감하지 않습니다. 대신 스탠다드 플랜 이상을 구독해야 합니다. 무료체험 중이어도 체험 중인 플랜이 스탠다드 이상이면 이용할 수 있습니다. 플랜이 모자라면 세 경로 모두 402PLAN_UPGRADE_REQUIRED를 반환합니다. 볼타 대시보드의 결제 메뉴에서 플랜을 업그레이드한 뒤 다시 호출하세요.
API로는 계좌를 연결하지 않습니다. 은행 계좌 연동/해지를 참고해 볼타 대시보드에서 계좌를 먼저 연결하세요.
세 경로 모두 발급자 등록, 공동인증서, 요청자 관리번호(Bolta-Client-Reference-Id)가 필요 없습니다. Authorization 헤더에 Basic {apiKey}만 넣으면 됩니다. 자세한 내용은 인증 가이드를 참고하세요.

계좌 목록

id는 숫자처럼 보여도 문자열로 다루세요. 식별자 형식은 바뀔 수 있습니다. bank에는 새 은행 코드가 추가될 수 있으니 화면에는 bankName을 보여 주세요.

입출금내역

모든 조건은 선택입니다. 기간을 주지 않으면 적재된 전체 내역을 조회합니다.
항목은 status에 따라 모양이 다릅니다. amountbalanceAfterTransaction은 소수점 아래의 불필요한 0을 뗀 숫자입니다. OTHER는 은행이 입금액과 출금액을 모두 0으로 준 거래이며 amount가 0입니다.

순서와 cursor

API는 볼타에서 거래가 바뀐 순서로 돌려줍니다. 거래 시각 순서가 아닙니다. 새로 적재된 거래, 다시 보이게 된 거래, 안 보이게 된 거래가 모두 바뀐 시점에 맞춰 뒤에 붙습니다. 볼타는 직전 동기화 구간과 하루를 겹쳐 다시 가져오므로 과거 시각의 거래가 나중에 적재될 수 있습니다. 계좌를 다시 연결하면 예전 거래가 같은 id로 다시 보이기도 합니다. 바뀐 순서로 받아야 이런 거래를 놓치지 않아요. 화면에 최신순으로 보여 주려면 받은 뒤 transactionAt으로 정렬하세요. 같은 id가 여러 번 올 수 있습니다. 받은 순서대로 id 기준으로 반영하세요.
  • ACTIVE: 같은 id가 있으면 덮어쓰고, 없으면 추가하세요.
  • REMOVED: 같은 id가 있으면 지우고, 없으면 무시하세요.

수집 절차

  1. cursor 없이 호출하고, hasMorefalse가 될 때까지 nextCursor로 이어 호출하세요.
  2. 마지막 nextCursor를 저장하세요. hasMorefalse여도 nextCursor는 항상 채워집니다.
  3. 다음 수집 때 저장한 cursor로 호출하세요. 그 사이 바뀐 거래만 받습니다.
items가 비어 있어도 hasMoretrue일 수 있습니다. 조건에 맞는 거래가 드물면 API가 한 번에 훑는 범위에서 멈추고 그 위치를 nextCursor로 돌려주기 때문입니다. items가 아니라 hasMore를 보고 이어 호출하세요.
볼타에서 바뀐 거래는 약 5분 뒤부터 응답에 나옵니다. 저장 도중인 변경을 건너뛰지 않으려고 최근 5분 안에 바뀐 거래는 다음 호출로 미룹니다. 동기화가 끝난 직후라면 5분쯤 기다린 뒤 이어 받으세요. cursor는 해석하거나 직접 만들지 말고 받은 값 그대로 보내세요. 변조한 값은 400INVALID_CURSOR로 거절합니다. 조건(from, bankAccountId 등)을 바꿨다면 cursor 없이 처음부터 다시 받으세요. 볼타 운영자가 잘못 적재된 거래를 직접 정리하면 REMOVED 없이 사라질 수 있습니다. 이런 정리는 드물고, 필요하면 볼타가 따로 안내합니다.

동기화 요청

볼타는 입출금내역을 주기적으로 가져옵니다. 그 전에 최신 내역이 필요할 때만 동기화를 요청하세요.
API가 202 Accepted로 접수만 하고 은행 조회는 비동기로 진행합니다. 진행 상황은 계좌 목록의 syncStatus로 확인하세요. IN_PROGRESS가 끝나면 저장한 cursor로 입출금내역을 이어 받으면 됩니다. 사업자마다 30분에 1번, 24시간에 12번까지 요청할 수 있습니다. nextAvailableAt은 30분 간격만 반영하고 24시간 한도는 반영하지 않습니다. 은행 조회는 계좌마다 순서대로 처리하므로 잦은 요청이 동기화를 빠르게 만들지는 않습니다. 진행 중이라 거절한 요청(409)은 한도를 차감하지 않습니다.

테스트 키로 조회하기

테스트 키는 구독과 관계없이 고정 샘플을 돌려줍니다. 실제 계좌를 조회하지 않고, 동기화를 요청해도 은행 조회를 보내지 않으며 한도도 차감하지 않습니다. 6번은 보관한 거래라 statusid만 내려갑니다. limit=3으로 호출하면 cursor 넘김을 두 페이지로 확인할 수 있어요. 조건과 cursor는 라이브 키와 같은 규칙으로 동작하고, 테스트 키는 5분 지연 없이 바로 돌려줍니다.

오류

전체 에러 코드는 에러 코드에서 확인하세요.

관련 문서