캐시노트 - 사장님 필수앱 icon

Cashnote Korean SMB sales and MyData API

Korea Credit Data · Business

캐시노트 - 사장님 필수앱 (Cashnote) is Korea Credit Data's (KCD) bookkeeping home for Korean small-business owners (사장님). After an ID-and-password sign-in, owners attach one or more storefronts and work from today's sales mix, a calendar of card/cash/invoice/delivery revenue, a cost calendar, a settlement calendar that splits Baemin, Yogiyo and Coupang Eats deposits, and a bank-account dashboard of connected KRW balances. The same home surfaces Home Tax (홈택스), card, bank, POS and Crefia connection status, plus Korean MyData bank and card links, daily memos, and a verified owner profile. The Play listing is Korean-language and Korea-only; owners in that market often run it next to POS terminals and the three major delivery apps rather than a generic expense tracker.

Storefront identity sits as registrationNumber beside businessId, while the daily sales calendar splits the same day into card, cash, invoice, delivery and other KRW totals. Settlement days further break deposits into baemin, yogiyo and coupangEats, and month-ahead charts pair estimatedAmount with currentAmount. Connected bank rows expose balance and accountType next to lastTransactedAt.

Credential flags track Home Tax, Crefia, POS and live card scrapes; MyData orgs expose code, accountList and cardList after a Bearer token issued as jwt. Lending stacks, franchise controllers and delivery-payout reconcilers can join those storefronts to nightly sales without another scrape. openData Studio turns that surface into callable open data.

Screenshots

  • 캐시노트 - 사장님 필수앱 screenshot 1
  • 캐시노트 - 사장님 필수앱 screenshot 2
  • 캐시노트 - 사장님 필수앱 screenshot 3
  • 캐시노트 - 사장님 필수앱 screenshot 4
  • 캐시노트 - 사장님 필수앱 screenshot 5
  • 캐시노트 - 사장님 필수앱 screenshot 6
  • 캐시노트 - 사장님 필수앱 screenshot 7
  • 캐시노트 - 사장님 필수앱 screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Login with ID and password

    POST /v1/sajang/session/id-password osint

    Exchanges an owner login and plaintext password for a JWT used as Bearer auth on member, dashboard and MyData calls.

    Auth: None (issues jwt). Body is login and plainPassword. Subsequent calls send Authorization: Bearer <jwt>.

    • login
    • plainPassword
    • jwt
    • errorCode
    • success
    • message
    • response
    POST /v1/sajang/session/id-password HTTP/1.1
    Content-Type: application/json
    
    {
      "login": "[email protected]",
      "plainPassword": "********"
    }
    {
      "errorCode": 0,
      "success": true,
      "message": "",
      "response": {
        "jwt": "eyJhbGciOiJIUzI1NiJ9.example"
      }
    }
  • Refresh member JWT

    GET /v1/sajang/session/rotate opendata

    Rotates the member JWT without re-entering login and plainPassword.

    Auth: Bearer JWT from login (jwt).

    • jwt
    • errorCode
    • success
    • message
    • response
    GET /v1/sajang/session/rotate HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "errorCode": 0,
      "success": true,
      "message": "",
      "response": {
        "jwt": "eyJhbGciOiJIUzI1NiJ9.refreshed"
      }
    }
  • List attached businesses

    GET /v1/sajang/storefronts osint

    Returns the signed-in owner's storefronts with Korean business registration numbers and owner role flags.

    Auth: Bearer JWT from login.

    • businesses
    • userId
    • userUUID
    • businessId
    • name
    • role
    • representativeVerified
    • registrationNumber
    • incorporated
    • errorCode
    • success
    GET /v1/sajang/storefronts HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "errorCode": 0,
      "success": true,
      "message": "",
      "response": {
        "userId": 1843921,
        "userUUID": "usr_8f21c0a4",
        "businesses": [
          {
            "businessId": "biz_44102",
            "name": "한강분식 신촌점",
            "role": "OWNER",
            "representativeVerified": true,
            "registrationNumber": "123-45-67890",
            "incorporated": false
          }
        ]
      }
    }
  • Member profile

    GET /v1/sajang/owner-card osint

    Reads the signed-in owner's identity card: real name, phone, birthday, MyData-user flag and Korean carrier.

    Auth: Bearer JWT from login.

    • trackingId
    • id
    • name
    • realName
    • phoneNumber
    • birthday
    • age
    • gender
    • nationality
    • identityVerified
    • isMydataUser
    • telecommunicationServiceProvider
    GET /v1/sajang/owner-card HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "errorCode": 0,
      "success": true,
      "message": "",
      "response": {
        "trackingId": "trk_9c12",
        "id": "1843921",
        "name": "김사장",
        "realName": "김민수",
        "phoneNumber": "010-1234-5678",
        "birthday": "1984-03-12",
        "age": 42,
        "gender": "MALE",
        "nationality": "KR",
        "identityVerified": true,
        "isMydataUser": true,
        "telecommunicationServiceProvider": "SKT"
      }
    }
  • Today sales summaries

    GET /v1/sajang/home/today-mix opendata

    Home-screen tiles for the selected storefront's current-day sales mix (label, text, type).

    Auth: Bearer JWT from login. Query takes the active businessId.

    • todaySummaries
    • icon
    • link
    • label
    • text
    • type
    GET /v1/sajang/home/today-mix?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "todaySummaries": [
        {
          "icon": "https://cdn.example.com/icons/card.png",
          "link": "/sales/today",
          "label": "카드매출",
          "text": "1,240,000원",
          "type": "CARD"
        }
      ]
    }
  • Revenue calendar

    GET /v1/sajang/ledgers/revenue-month openfinance

    Month calendar of storefront revenue split into card, cash, invoice, delivery and other KRW totals per day.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • link
    • isConnected
    • summaries
    • type
    • text
    • dailyData
    • date
    • total
    • card
    • cash
    • invoice
    • delivery
    • other
    GET /v1/sajang/ledgers/revenue-month?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "link": "/sales/calendar",
      "isConnected": true,
      "summaries": [
        {"type": "CARD", "text": "카드 8,400,000원"},
        {"type": "CASH", "text": "현금 1,100,000원"},
        {"type": "DELIVERY", "text": "배달 2,300,000원"},
        {"type": "INVOICE", "text": "세금계산서 900,000원"},
        {"type": "OTHER", "text": "기타 120,000원"},
        {"type": "TOTAL", "text": "합계 12,820,000원"}
      ],
      "dailyData": [
        {
          "date": "2026-09-18",
          "total": 1282000,
          "card": 840000,
          "cash": 110000,
          "invoice": 90000,
          "delivery": 230000,
          "other": 12000,
          "link": "/sales/2026-09-18"
        }
      ]
    }
  • Cost calendar

    GET /v1/sajang/ledgers/cost-month opendata

    Month calendar of storefront costs split into fixed, variable and uncategorized KRW totals per day.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • link
    • isConnected
    • summaries
    • dailyData
    • date
    • total
    • fixed
    • variable
    • uncategorized
    GET /v1/sajang/ledgers/cost-month?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "link": "/costs/calendar",
      "isConnected": true,
      "summaries": [],
      "dailyData": [
        {
          "date": "2026-09-18",
          "total": 410000,
          "fixed": 250000,
          "variable": 140000,
          "uncategorized": 20000,
          "link": "/costs/2026-09-18"
        }
      ]
    }
  • Settlement calendar

    GET /v1/sajang/ledgers/payout-month openfinance

    Month calendar of expected deposits split into card acquirer plus Baemin, Yogiyo and Coupang Eats settlement KRW.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • link
    • isConnected
    • summaries
    • dailyData
    • date
    • total
    • card
    • baemin
    • yogiyo
    • coupangEats
    GET /v1/sajang/ledgers/payout-month?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "link": "/settlements/calendar",
      "isConnected": true,
      "summaries": [],
      "dailyData": [
        {
          "date": "2026-09-18",
          "total": 980000,
          "card": 420000,
          "baemin": 310000,
          "yogiyo": 150000,
          "coupangEats": 100000,
          "link": "/settlements/2026-09-18"
        }
      ]
    }
  • Estimated monthly revenue

    GET /v1/sajang/forecast/sales-month opendata

    Month-ahead revenue chart pairing historical monthly amounts with estimatedAmount versus currentAmount.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • pastData
    • month
    • text
    • amount
    • estimatedData
    • estimatedText
    • estimatedAmount
    • currentAmount
    • summary
    • title
    • highlightText
    • subTitle
    • hasEnoughData
    • url
    GET /v1/sajang/forecast/sales-month?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "pastData": [
        {"month": "2026-08-01", "text": "8월", "amount": 11800000}
      ],
      "estimatedData": {
        "month": "2026-09-01",
        "estimatedText": "예상 1,250만원",
        "estimatedAmount": 12500000,
        "currentAmount": 8420000
      },
      "summary": {
        "title": "이번 달 매출 예상",
        "highlightText": "1,250만원",
        "subTitle": "지난달 대비",
        "hasEnoughData": true,
        "url": "/insights/revenue"
      }
    }
  • Estimated monthly costs

    GET /v1/sajang/forecast/spend-month opendata

    Month-ahead cost chart pairing historical monthly amounts with estimatedAmount versus currentAmount.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • pastData
    • month
    • text
    • amount
    • estimatedData
    • estimatedText
    • estimatedAmount
    • currentAmount
    • summary
    • title
    • highlightText
    • subTitle
    • hasEnoughData
    • url
    GET /v1/sajang/forecast/spend-month?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "pastData": [
        {"month": "2026-08-01", "text": "8월", "amount": 4200000}
      ],
      "estimatedData": {
        "month": "2026-09-01",
        "estimatedText": "예상 450만원",
        "estimatedAmount": 4500000,
        "currentAmount": 3100000
      },
      "summary": {
        "title": "이번 달 비용 예상",
        "highlightText": "450만원",
        "subTitle": "지난달 대비",
        "hasEnoughData": true,
        "url": "/insights/costs"
      }
    }
  • Credential connect status

    GET /v1/sajang/links/scrape-health opendata

    Per-storefront scrape/connect flags for Home Tax, Crefia, POS, live card sales, banks, cards and the three delivery apps.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • bank
    • card
    • crefia
    • hometax
    • mydataCard
    • pos
    • realTimeCard
    • realTimeCardCount
    • delivery
    • baemin
    • yogiyo
    • coupangEats
    • utilityBills
    GET /v1/sajang/links/scrape-health?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "bank": "CONNECTED",
      "card": "CONNECTED",
      "crefia": "CONNECTING",
      "hometax": "CONNECTED",
      "mydataCard": "NOT_CONNECTED",
      "pos": "CONNECT_FAIL",
      "realTimeCard": "CONNECTED",
      "realTimeCardCount": 3,
      "delivery": {
        "baemin": "CONNECTED",
        "yogiyo": "CONNECTED",
        "coupangEats": "NOT_CONNECTED"
      },
      "utilityBills": {}
    }
  • Bank account dashboard

    GET /v1/sajang/wallets/krw-accounts openbanking

    Home bank-account tile plus per-account KRW balance, account type and last-transaction timestamp for connected storefront accounts.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • bankAccountCard
    • bankAccountList
    • accountType
    • balance
    • label
    • lastTransactedAt
    • logoUrl
    • title
    • url
    GET /v1/sajang/wallets/krw-accounts?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "bankAccountCard": {
        "title": "연결 계좌",
        "url": "/bank-accounts"
      },
      "bankAccountList": [
        {
          "accountType": "CHECKING",
          "balance": 8421500,
          "label": "사업자통장",
          "lastTransactedAt": "2026-09-18T09:12:00+09:00",
          "logoUrl": "https://cdn.example.com/orgs/kb.png",
          "title": "KB국민은행",
          "url": "/wallets/ast_kb_1"
        }
      ]
    }
  • Dashboard memos

    GET /v1/sajang/home/daily-notes opendata

    Home list of dated owner memos (memoDate, memoContent) for the selected storefront.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • allMemoLink
    • memos
    • memoDate
    • memoContent
    • link
    GET /v1/sajang/home/daily-notes?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "allMemoLink": "/memos",
      "memos": [
        {
          "memoDate": "2026-09-18",
          "memoContent": "배달비 정산 확인",
          "link": "/memos/881"
        }
      ]
    }
  • Dashboard business info tiles

    GET /v1/sajang/home/biz-tiles osint

    Home tiles of storefront identity copy (label and text) such as registration details shown next to the calendar.

    Auth: Bearer JWT from login. Query takes the active businessId.

    • businessInfo
    • iconUrl
    • link
    • label
    • text
    GET /v1/sajang/home/biz-tiles?businessId=biz_44102 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "businessInfo": [
        {
          "iconUrl": "https://cdn.example.com/icons/biz.png",
          "link": "/business/profile",
          "label": "사업자등록번호",
          "text": "123-45-67890"
        }
      ]
    }
  • MyData organization catalog

    GET /v1/sajang/mydata/issuer-catalog openfinance

    Catalog of Korean MyData banks and card issuers the owner can consent to, keyed by organization code.

    Auth: Bearer JWT from login.

    • name
    • code
    • thumbnail
    • url
    GET /v1/sajang/mydata/issuer-catalog HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "organizations": [
        {
          "name": "KB국민은행",
          "code": "004",
          "thumbnail": "https://cdn.example.com/orgs/kb.png",
          "url": "https://www.example-bank.kr"
        }
      ]
    }
  • Connected MyData organizations

    GET /v1/sajang/mydata/consented-issuers openbanking

    Lists consented MyData banks and card issuers with masked account and card numbers plus consent expiry.

    Auth: Bearer JWT from login.

    • success
    • response
    • bank
    • card
    • name
    • code
    • thumbnail
    • url
    • connected
    • expired
    • accountList
    • cardList
    • id
    • assetId
    • number
    GET /v1/sajang/mydata/consented-issuers HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "success": true,
      "response": {
        "bank": [
          {
            "name": "KB국민은행",
            "code": "004",
            "thumbnail": "https://cdn.example.com/orgs/kb.png",
            "url": "https://www.example-bank.kr",
            "connected": true,
            "expired": false,
            "accountList": [
              {"id": 901, "assetId": "ast_kb_1", "name": "사업자통장", "number": "123-****-456"}
            ],
            "cardList": []
          }
        ],
        "card": [
          {
            "name": "삼성카드",
            "code": "365",
            "thumbnail": "https://cdn.example.com/orgs/samsungcard.png",
            "url": "https://www.example-card.kr",
            "connected": true,
            "expired": false,
            "accountList": [],
            "cardList": [
              {"id": 902, "assetId": "ast_sc_1", "name": "법인카드", "number": "5389-****-1234"}
            ]
          }
        ]
      }
    }
  • MyData user channel

    GET /v1/sajang/mydata/channel-bind openfinance

    Returns the MyData channel binding (channelId, channelAccountId) for the signed-in owner.

    Auth: Bearer JWT from login.

    • success
    • message
    • errorCode
    • response
    • id
    • channelId
    • channelAccountId
    GET /v1/sajang/mydata/channel-bind HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "success": true,
      "message": "",
      "errorCode": "0",
      "response": {
        "id": 55201,
        "channelId": "cashnote",
        "channelAccountId": "usr_8f21c0a4"
      }
    }
  • Refresh MyData assets

    POST /v1/sajang/mydata/assets-reload openbanking

    Triggers a MyData asset refresh so subsequent connected-organization accountList and cardList rows update.

    Auth: Bearer JWT from login.

    • success
    • message
    POST /v1/sajang/mydata/assets-reload HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.example
    {
      "success": true,
      "message": ""
    }

Data categories

  • sales
  • costs
  • settlements
  • mydata
  • businesses
  • credentials
  • bank-accounts
  • identity

Where teams use this data

  • Delivery-payout reconciliation

    A franchise controller joins daily baemin, yogiyo and coupangEats settlement KRW to each storefront's businessId so Baemin/Yogiyo/Coupang Eats deposits match the POS close.

  • Lending-stack storefront underwrite

    A Korean SMB lender pulls registrationNumber plus card/cash/invoice/delivery calendar totals, estimatedAmount versus currentAmount, and bankAccountList.balance to size a working-capital line without another Home Tax scrape.

  • MyData bank-card consent monitor

    An accounting bot watches connected MyData bank and card orgs (code, expired, masked number) and re-runs an asset refresh when a consent is about to lapse.

  • Home Tax and Crefia connect health

    An MSP dashboard maps hometax, crefia, pos and realTimeCard flags per storefront so a disconnected National Tax Service scrape is fixed before month-end close.

Frequently asked questions

What sales mix does Cashnote expose per day?

The revenue calendar returns per-day KRW totals for card, cash, invoice, delivery and other, plus a type/text summary row for CARD, CASH, DELIVERY, INVOICE, OTHER and TOTAL.

How are Baemin, Yogiyo and Coupang Eats deposits represented?

The settlement calendar dailyData object carries baemin, yogiyo and coupangEats KRW next to card acquirer deposits; credential connect-info repeats those three apps as nested delivery flags.

Does Cashnote include Korean MyData bank and card links?

Yes. The issuer catalog lists name, code, thumbnail and url; consented issuers add connected, expired, accountList and cardList with masked number and assetId. A separate bank-account dashboard returns per-account balance and accountType.

How is the owner authenticated?

ID-and-password login returns jwt inside a wrapper of errorCode, success, message and response. Later calls send that value as a Bearer token; a rotate call refreshes it without re-entering the password.

Apps similar to 캐시노트 - 사장님 필수앱

  • 모바일 경리나라 — Webcash's 모바일 경리나라 is a Korean SMB accounting app that auto-delivers daily briefings and lets owners check bank balances, sales, purchases and remittances in real time.
  • 더존 위하고 모바일 — Douzone Bizon's 더존 위하고 모바일 is the phone client for the WEHAGO business platform, covering company services, 1:1 and group collaboration, and file sharing after a www.wehago.com signup.
  • 자비스 매니저 — JOBIS&Villains' 자비스 매니저 is the companion app for Jarvis AI accounting and tax customers, used to photograph receipts, deposit slips and invoices for specialist typing.
  • 토스 비즈니스 — Viva Republica's 토스 비즈니스 is the Toss app for viewing a Korean business's sales, expenses and settlements in one place and for running Toss Place, Toss Ads and Toss Shopping.
  • Intuit QuickBooks for Business — Intuit QuickBooks is a mobile accounting app for small businesses and the self-employed that covers invoicing, expense tracking, bookkeeping and on-the-go cash-flow reports.
  • Zoho Books - Accounting App — Zoho Books is Zoho's cloud accounting app for invoicing, expenses, projects, bills and tax reports, with customer and vendor portals on free and paid plans.
  • CashBook - Balance & Expense — CashBook is a digital cash-register app for recording daily cash flow, income and expenses and exporting the ledger to Excel or Google Sheets.

Topics

  • Cashnote API
  • 캐시노트
  • Korea Credit Data
  • Korean SMB sales
  • MyData
  • Baemin settlement
  • Home Tax
  • registrationNumber

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote