Receive results by webhook
Issuance results arrive at the HTTPS URL you register. Test and live webhooks are configured separately, and timing differs per product.
See webhook setup and events (opens in a new tab)Issue tax invoices, check business details, and retrieve financial data. Choose an API and start integrating.
Issue, verify, retrieve. Find the APIs that fit your service.
Issue through the issue endpoint. Amend with the original issuanceKey and the endpoint for your amendment reason. Get the final result from a webhook or the lookup API.
Explore APIThe buyer drafts the transaction and the supplier approves it to issue. Send the approval by email, or fetch an approval URL and wire it into your own screen.
Explore APIIssue by mobile number or business registration number, and fall back to self-issuance when you cannot identify the payer. Issuance is free.
Explore APISend a business registration number and Bolta returns its registration status and tax type. Call it when you onboard a customer or right before you issue an invoice to avoid billing a closed business.
Explore APISend a bank code and account number and Bolta returns the holder name. Call it where customers register accounts or where you build a transfer, and wrong-account payments stop before they leave.
Explore APIRead transactions from accounts connected to Bolta and ask for fresh data. Use it to reconcile receivables or confirm incoming payments from code.
Explore APIYour own sales
Connect it when your ERP or back office confirms a sale, or when you bill SaaS fees. Your company is the supplier and issues to the buying counterparty.
Explore APIConfirm the transaction and amount
Request standard issuance from your system
Apply the issuance result
Delegated issuance for customer sales
Connect it when you offer issuance to merchants, carriers, or other customers on your platform. The customer is the supplier and your platform calls the API on their behalf.
Explore APIRegister the customer's certificate and confirm the sale
Request standard issuance from the platform
Report the result back to the customer
Purchases and settlement
Connect it when your company confirms a purchase and asks the counterparty to issue. The recipient writes the details and the supplying counterparty approves.
Explore APIConfirm the purchase or settlement
Request reverse issuance
Supplier approves
Confirm the result
Nothing is sent to the NTS and no points are charged. Validate the flows you need with a test key, and use a test certificate for methods that require one.
Sign up for Bolta, create a workspace, then create a test_ key in the Developer Center.
Register your own certificate for your own sales, or the customer's for delegated issuance. For reverse issuance, prepare for email or simple approval. Use test certificates where a test needs one.
Send the transaction details and the API returns an acceptance response. Confirm the issuance result afterwards through a webhook or the lookup API.
curl -X POST https://xapi.bolta.io/v1/taxInvoices/issue \
--user 'test_YOUR_API_KEY:' \
-H 'Bolta-Client-Reference-Id: YOUR_UNIQUE_REFERENCE_ID' \
-H 'Content-Type: application/json' \
-d '{
"date": "YYYY-MM-DD",
"purpose": "RECEIPT",
"taxType": "TAXABLE",
"supplier": {
"identificationNumber": "SUPPLIER_BUSINESS_NUMBER",
"organizationName": "공급자 상호",
"representativeName": "홍길동",
"manager": {
"email": "supplier@example.com"
}
},
"supplied": {
"identificationNumber": "RECIPIENT_BUSINESS_NUMBER",
"organizationName": "공급받는자 상호",
"representativeName": "김철수",
"managers": [
{
"email": "recipient@example.com"
}
]
},
"items": [
{
"date": "YYYY-MM-DD",
"name": "테스트 품목",
"unitPrice": 10000,
"quantity": 1,
"supplyCost": 10000,
"tax": 1000
}
]
}'{
"date": "YYYY-MM-DD",
"purpose": "RECEIPT",
"taxType": "TAXABLE",
"supplier": {
"identificationNumber": "SUPPLIER_BUSINESS_NUMBER",
"organizationName": "공급자 상호",
"representativeName": "홍길동",
"manager": {
"email": "supplier@example.com"
}
},
"supplied": {
"identificationNumber": "RECIPIENT_BUSINESS_NUMBER",
"organizationName": "공급받는자 상호",
"representativeName": "김철수",
"managers": [
{
"email": "recipient@example.com"
}
]
},
"items": [
{
"date": "YYYY-MM-DD",
"name": "테스트 품목",
"unitPrice": 10000,
"quantity": 1,
"supplyCost": 10000,
"tax": 1000
}
]
}{
"issuanceKey": "EXAMPLE_ISSUANCE_KEY"
}issuanceKey is the acceptance response. Receive the success or failure webhook, or confirm the result through the query API.
Replace the highlighted API key, dates, business registration numbers, and client reference with your values. Dates use YYYY-MM-DD and must fall within the issuance deadline. Each tab copies only its own code.
Issuance results arrive at the HTTPS URL you register. Test and live webhooks are configured separately, and timing differs per product.
See webhook setup and events (opens in a new tab)Send a reference id with every tax invoice request. If you get no response, look up the acceptance status with that id before retrying.
See reference ids and duplicate handling (opens in a new tab)View webhook delivery results and details for each API key in the Developer Center.
See how to use the event log (opens in a new tab)Billing units and requirements vary by API. Check the conditions for each feature.
An ordinary tax invoice the supplier writes and issues
Correcting an issued invoice with a reason code
Pricing depends on lookup volume. Tell us your expected usage and we will quote it.
The recipient writes and requests it; the supplier approves
Income deduction, expense evidence, and voluntary issuance
Only accounts that returned a holder are charged. Misses, failures, and quota rejections cost nothing, and test keys are always free.
No points are deducted. The workspace needs a Standard plan or higher instead.
Only successful issuances are charged. Failures cost nothing, and test keys are never charged.
Test keys never consume points. Top up points before requesting paid issuance in live. Requests fail when the balance runs out.
See how point top-ups work (opens in a new tab)Create test and live API keys in the Developer Center after signing up. Business status lookup pricing is agreed separately based on your usage.
You can create API keys without a paid subscription. The bank transactions API requires Standard or higher; other APIs follow their product-specific pricing and requirements.
Yes. Choose per transaction based on who the supplier and recipient are. Issue your platform's own fees and commissions as your own sales, and issue a merchant's sales on that merchant's behalf. Use reverse issuance when you write up a purchase and ask the supplier to approve it.
For issuance on behalf of a customer, use the supplier customer's certificate. Entrusted issuance uses the trustee's certificate and includes the supplier, recipient, and trustee information.
Both register the supplier as an issuer. Email approval works without registering the supplier's certificate in advance; the supplier opens the link Bolta emails them and approves. Simple approval requires the supplier to register a certificate first, then your system points them at an approval URL. In both cases the supplier has to approve in person.
Standard issuance requires an issuer and a registered joint certificate. Reverse issuance needs different preparation depending on the approval method. Top up points in the Developer Center before requesting paid issuance with a live key.
No. Test keys (test_) verify the integration without sending to the NTS and do not deduct points. Test certificates are available too. Live keys (live_) are for real issuance.
An issuanceKey response means the request was accepted. Confirm the final result through a webhook or the lookup API. Webhook timing differs between tax invoices and cash receipts.
For tax invoices, look up the acceptance status with the reference id you sent. Reusing the same reference id raises a duplicate request error. Cash receipts handle duplicates differently, so follow the per-product rules in the authentication guide.
Any language or environment that can send an HTTP request. The API docs include request examples per language. Per-language HTTP examples and official SDKs are not the same thing.
Bolta provides Zapier and Make guides. Prepare the data your issuance needs in that tool, then configure API authentication and the request. Each guide covers its own scope and setup.
Connect issuance, customer registration, and approval flows in the free test environment, then start issuing with a live key.
Standard and amended issuance deduct KRW 90 each and reverse issuance KRW 200 each from prepaid points. There is no minimum spend, support fee, or maintenance fee. You need a remaining point balance to request paid issuance.
Create your own API key with no sales call or contract, and pay only for what you issue.