1. Local Services
  • API Docs Chile 🇨🇱
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Create payment (tokenless)
      • Make a charge or deferred charge
      • Void a transaction
      • Refund a transaction
      • Request deferred options
      • Authorize payments
      • Preauthorization (tokenless)
      • Reauthorize payments
      • Capture an authorized payment
      • Verify Account
      • Validate OTP
      • Bin Info V2
      • Bin Info
      • Voucher
    • One-Click & Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Update recurring charge card data
      • Make an One-click payment
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Card Async
      • Request a card async token
      • Init Transaction
      • Authorize payments
      • Capture an authorized payment
      • Get Status
    • Async Card Recurring Charges
      • Request an async card recurring charge token
      • Init an async card recurring charge
      • Authorize payments
      • Capture an authorized payment
    • Chargebacks
      • Query chargebacks
      • Request chargeback export
    • Transfer In
      • Get Bank List
      • Request a Transfer In token
      • Init Transaction
      • Get Status
    • Transfer Out
      • Get Bank List
      • Get Bank List V2
      • Request a Transfer Out token
      • Init Transaction
      • Get Status
      • Balance for Payouts
    • Cash In
      • Request a cash in token
      • Init Transaction
      • Transaction Status
    • Smartlinks V2
      • Create a Smartlink
      • Get a Smartlink
      • Delete a smartlink
      • Update a Smartlink
    • Payment Button
      • Create a payment button
    • Analytics
      • Get transactions list v1
      • Get transactions list v2
    • Status
      • Get platform status
      • Get gateway status
    • Subscription Transactions
      • Get subscription transactions
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Update credential
      • Regenerate a credential
      • Delete credential
      • Activate or deactivate
      • Advanced search
    • Settlement
      • Query settlement
  • API Raw Card Present Payments
    • Release Notes
    • Error Catalog
    • Test Data
    • Key Exchange Process
    • One-time payments
      • Single payment
    • Two-step-payments
      • Authorization and capture
    • Voids & Refunds
      • Refund a transaction
      • Void & Reverse
    • Card information
      • Get BIN Info
      • Bin Info V2
      • Request deferred options
    • Query Transactions
      • Transaction Search
    • Webhooks
      • Introduction
      • Good practices
      • Refunds
      • Card Payments
      • Check your webhooks
  • Kushki One
    • Cloud Services
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
      • Search
        • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
      • Search
        • Transaction Search — Online
        • Transaction Search — Local
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • Appian - Submerchant Register
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • documentType
    • Amount-cash-in
    • amount
    • Card
    • ChargebackListResponse
    • Channel
    • StatusComponent
    • SubscriptionTransactionsResponse
    • SettlementDateRangeRequest
    • AmountWithTaxes
    • PrintJobRequest
    • networkToken
    • extra_taxes
    • ChargebackItem
    • SubscriptionTransaction
    • SettlementTicketRequest
    • AmountCore
    • CommandText
    • webhooks
    • card
    • Amount-CL
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • ExtraTaxes
    • CommandColumns
    • headers
    • currency
    • Amount
    • card_details
    • ErrorResponse401
    • SettlementRecord
    • ColumnItem
    • Metadata
    • transactionType
    • enc_tlv
    • ErrorResponse403
    • ErrorResponse
    • TransactionResponse
    • CommandDivider
    • extraTaxes
    • Country
    • binInfo
    • Deferred
    • deferred
    • ErrorResponse500
    • payment_method
    • RawResponse
    • CommandFeed
    • SubscriptionUpdate
    • pos_details
    • CardData
    • CommandSpace
    • ContactDetails
    • Language
    • contact_details
    • sub_merchant
    • AmountWithTip
    • CommandCut
    • Subscription
    • metadata
    • LinkFailure
    • CommandImage
    • orderDetails
    • TransactionSearchRequest
    • CommandQR
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • Billing-Address
    • PrinterError
    • product
    • PrintJobStatus
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • PrintWebhookPayload
    • webhooksChargeback
    • citMit
    • network
    • messageFields
    • UnexpectedErrorResponse
    • ExternalReferenceId
    • ExternalSubscriptionId
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Local Services

Local Print Services

The Print API lets your POS system send print jobs to the thermal printer on a Kushki SmartPOS terminal in Chile 🇨🇱. Printing is asynchronous — the API returns immediately with a job ID, and the result is delivered via webhook or status polling.
Beta — Early Access
This API is in early access. Endpoints, parameters, and response structures may change without prior notice. Do not deploy to production without coordinating with the Kushki integration team.

How it works#

1
Create a print job
Send a commands array with the content to print. The terminal queues the job and returns 202 Accepted with a print_job_id.
2
Receive the result
The final status (COMPLETED or FAILED) is delivered in one of two ways:
Webhook push — supply webhookUrl in the request; Kushki POSTs the result when printing finishes.
Status polling — call the status endpoint with the print_job_id.

Create a print job#

Cloud: POST /terminal/v1/{terminalSerial}/sync/print/job
Local: POST /terminal/v1/print
{
  "webhookUrl": "https://yoursite.com/print/notify",
  "commands": [
    {
      "type": "IMAGE",
      "src": "data:image/png;base64,iVBORw0KGgo...",
      "align": "CENTER",
      "width": 200
    },
    {
      "type": "TEXT",
      "text": "MI COMERCIO CHILE",
      "align": "CENTER",
      "size": 32,
      "bold": true
    },
    {
      "type": "DIVIDER",
      "style": "SOLID"
    },
    {
      "type": "COLUMNS",
      "columns": [
        {"text": "Producto Premium", "width": 3},
        {"text": "10.000", "width": 1, "align": "RIGHT"}
      ]
    },
    {
      "type": "DIVIDER",
      "style": "DOTTED"
    },
    {
      "type": "COLUMNS",
      "columns": [
        {"text": "TOTAL", "width": 3, "bold": true},
        {"text": "10.000", "width": 1, "align": "RIGHT", "bold": true}
      ]
    },
    {
      "type": "FEED",
      "lines": 2
    },
    {
      "type": "QR",
      "data": "https://yoursite.com/receipt/12345",
      "size": 6
    },
    {
      "type": "CUT"
    }
  ]
}
Response:
{
  "print_job_id": "pj_a1b2c3d4e5f6",
  "status": "PENDING"
}

Get print job status#

Cloud: POST /terminal/v1/{terminalSerial}/sync/print/job_status
Local: GET /terminal/v1/print_job?print_job_id={id}
{
  "print_job_status": "COMPLETED",
  "print_job_id": "pj_a1b2c3d4e5f6"
}
StatusDescription
PENDINGJob queued — not yet printed
COMPLETEDJob printed successfully
FAILEDPrinting failed (paper jam, out of paper, etc.)

Webhook notification (Local mode only)#

In Local Network mode, supply a webhookUrl to receive the result when printing finishes. The terminal POSTs to your URL:
{
  "print_job_id": "pj_a1b2c3d4e5f6",
  "print_job_status": "COMPLETED"
}

Command types#

Each object in the commands array must include a type field. All type values must be sent in UPPERCASE.
typeDescription
TEXTText line with size, alignment, bold, italic, underline
COLUMNSMulti-column row with proportional widths — ideal for item/price lines
DIVIDERFull-width separator: SOLID, DOTTED, or EMPTY
FEEDAdvance paper N blank lines
SPACEInsert precise pixel-level vertical whitespace
CUTTrigger the auto-cutter (silently ignored on cutterless terminals)
IMAGEPrint a Base64-encoded PNG/JPG — typically used for logos
QRGenerate a QR code natively in printer hardware
BARCODEGenerate a CODE128 barcode natively in printer hardware

TEXT parameters#

ParameterTypeRequiredDefaultDescription
textstring✅—Text to print. Append \n for explicit line break
alignLEFT | CENTER | RIGHT—LEFTHorizontal alignment
sizeinteger—24Font size in px — 24 normal · 32 subtitle · 48 title
boldboolean—falseBold text
italicboolean—falseItalic text
underlineboolean—falseUnderline text

COLUMNS parameters#

ParameterTypeRequiredDescription
columnsarray✅Array of column objects
columns[].textstring✅Column text
columns[].widthinteger✅Proportional weight (e.g. 3 and 1 = 75% / 25%)
columns[].alignLEFT | CENTER | RIGHT—Column alignment
columns[].boldboolean—Bold

IMAGE parameters#

ParameterTypeRequiredDescription
srcstring✅Base64-encoded PNG or JPG (data:image/png;base64,...)
alignLEFT | CENTER | RIGHT—Image alignment
widthinteger—Width in pixels

QR parameters#

ParameterTypeRequiredDescription
datastring✅Data to encode in the QR
alignLEFT | CENTER | RIGHT—Alignment
sizeinteger—QR module size (1–8)

BARCODE parameters#

ParameterTypeRequiredDescription
datastring✅Data to encode (CODE128)
alignLEFT | CENTER | RIGHT—Alignment
widthinteger—Barcode width in pixels
heightinteger—Barcode height in pixels

Base URLs#

☁️ Cloud — Production
☁️ Cloud — UAT
🏠 Local Network
https://cloudt.kushkipagos.com/terminal/v1/{terminalSerial}/sync

Available Endpoints#

Create Print Job (Cloud)
Queue a print job via cloud. Returns 202 immediately; result via webhook or polling.
Create Print Job (Local)
Queue a print job over local network. Supports webhook notification.
Get Print Job Status (Cloud)
Poll the status of a queued print job via cloud.
Get Print Job Status (Local)
Poll the status of a queued print job over local network.
Print Job Webhook (Local)
Inbound webhook endpoint — implement this in your POS to receive print job completion events.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:04:56
Previous
Transaction Search — Local
Next
Create Print Job
Built with