Carbon Drop 1: Faster Payments, New Methods, Smarter Receipts
We're starting October strong. Today, we're releasing Single API for Payments → order and payment in one call, reducing latency from 700ms to 100ms. Alternative Payment Methods → Swish E-com, Swish M-com, and B2B Invoices. Self-hosted Digital Receipts → host, style, and serve receipts under your own control
Single API for Payments
The new createOrder API combines order creation and payment initiation. One call, one callback, faster checkout.
Before: Create order → Create payment → Check status
Now: One call with our new initiatePaymentOptions object.
{
"orderLines": [
{ "id": "TERM123NAL", "name": "Adidas shoes", "quantity": 1 }
],
"controlFunctions": {
"orderLineLevelCalculation": false,
"initiatePaymentOptions": {
"paymentMethod": "CARD",
"amount": "",
"currency": "SEK"
}
},
"callBackUrl": "https://merchant.com/callback",
"throwErrorIfTerminalInactiveFor": 500000
}
{
"initiatePaymentOptions": {
"paymentMethod": "CARD"
}
}
Alternative Payment Methods
Payments aren’t just about cards. Merchants expect local methods, and customers demand them.
Carbon now supports:
- Klarna, Vipps, MobilePay, Dankort, BankAxept
- Swish E-com and Swish M-com
- Pay by Bank (ACC2ACC, as we call it internally)
- B2B Invoice
That’s on top of traditional card flows.
Example: Invoice distribution inside createOrder
{
"initiatePaymentOptions": {
"paymentMethod": "B2BINV",
"paymentMethodParams": {
"invoice": {
"invoiceDistribution": "NONE | EMAIL | EINVOICE | PRINT",
"contractReference": "",
"debtCollectionEnabled": true,
"dueDate": "30d",
"reminder": true,
"invoicePaymentMethods": ["CARD", "ACC2ACC", "KLARNA" ...]
}
}
}
}
"invoiceDistribution": "NONE | EMAIL | EINVOICE | PRINT",
Or selecting the Swish method. ECOM uses the enter your phone number flow while MCOM creates a scannable Swish QR code.
{
"initiatePaymentOptions": {
"paymentMethod": "NSWISH",
"paymentMethodParams": {
"swishMode": "MCOM"
}
}
}
Self-hosted Digital Receipts
This one sounds small, but it’s big. Digital receipts can now be hosted on your own domain while displayed on our terminal post-purchase.
✨ Create the experience your way
❣️ Attach smart logic like coupons, tickets, or loyalty triggers
🤝 Keep the customer connection inside your ecosystem
{
"receipt": {
"autoPrintReceipt": true,
"receiptRedirectURL": "https://merchant.com/receipt/ORD-1001",
"autoSendReceiptIfEmailAvailable": true,
"promotionsToDisplay": ["PROMO-1891"]
}
}
Additions: In addition to hosting your own under receiptRedirectURL you can now auto send the receipts to the receiver if we can match the payment with an existing email address, and show promotions. More on that later this month…
New Order API Features
Carbon brings breaking changes inside createOrder. Let’s dig out some awesome features here.
Sequential Split Payments serialSplitPaymentsMode
This is new and powerful: one order can now trigger multiple payments in sequence.
🎯 Define the split in the order call
🔂 The terminal keeps on accepting payments continuously until all are completed
👉 Webhooks fire per step: PARTIAL_PAYMENT_COMPLETED after each part and PAYMENT_COMPLETED after the last one
Example: Split SEK 600 into three sequential payments. Restaurants, shared purchases, and events can now handle multiple payers on one order without hacks.
{
"serialSplitPaymentsMode": [100, 200, 300]
}
{
"serialSplitPaymentsMode": [100, 200, 300]
}
No more order type
Purchases and returns in the same order. Finally. Controlled by the line item quantity. Positive for purchase, negative for returns.
{
"orderLines": [
{ "id": "TERM123NAL", "name": "Adidas shoes", "quantity": 1 },
{ "id": "TERM123NAL", "name": "Nike shoes", "quantity": -1 }
]
}
Your own callback callBackUrl
No need for predefined webhook setup, just provide a callback url.
{
"callBackUrl": "https://merchant.com/payment/callback"
}
New round-up feature tipsMode
Now possible to choose between round-ups or normal tips.
{
"tipsMode": "STANDARD | ROUNDUP | NONE"
}
You can now also bring the lockToPaymentMethod from online to in-store terminals. All your merchants’ alternative payment methods will be available on every terminal; with this, you can lock them down for certain use-cases.
{
"lockToPaymentMethods": ["CARD"]
}
Our 10 Carbon releases: Carbon Drop 1: Faster payments, Carbon Drop 2: Customers, Carbon Drop 3: Real-time events and webhooks, Carbon Drop 4: SFTP Reports and Notifications, Carbon Drop 5: Account Creation APIs, Carbon Drop 6: New terminals, Carbon Drop 7: Multi-Cloud for In-Person Payments, Carbon Drop 8: Billing, Onboarding, and Better Charges, Carbon Drop 9: Subscription orders, Carbon Drop 10: Offline payments.