Guides

How to accept payments in Iceland: developer guide

To accept payments in Iceland, sign up with a payment provider that onboards Icelandic businesses, take test payments straight away, and go live once your account is verified and a card acquirer has approved it. This guide shows how with Kling, payments for Iceland, with no code, with an AI coding tool, or through the API.

Published

What you need

  • A business in Iceland, as a company or as an individual with a kennitala.
  • A payment provider that serves Iceland. Stripe doesn't (see Stripe in Iceland). This guide uses Kling; the payment providers in Iceland compared guide covers the alternatives.
  • For card payments, an agreement with a card acquirer, the company that processes the card payment. Kling applies to the acquirer on your behalf.
  • A bank account for payouts. You keep your own bank.
  • If you sell online, a few things on your website that the acquirer checks before approval, such as terms and company details. See what your website must show.

None of this is needed to start building. Test keys work the moment you sign up.

Decide how your customers will pay

Payment method Good for How
Cards, Apple Pay and Google Pay Web shops, one-off sales, bookings Checkout, payment window, payment links
Online bank claims (kröfur) Invoices, memberships, course fees, customers who prefer to pay through their bank Online bank claims
Subscriptions, by card or by claim Memberships, monthly plans, donations Subscriptions
Card payments in person Shops, events, markets Kling POS, set up in the dashboard

An online bank claim (krafa) appears in the customer's online bank, and they pay it like any other bill, without a card. It is a common way to pay in Iceland and needs no card acquirer, so claims can often be approved before card payments.

Option 1: no code

If you don't have a website, or don't want to change it:

  1. Sign up and open the dashboard.
  2. Create a payment link for a product or an amount, or a subscription link for a monthly plan.
  3. Send the link by email or text, put it on social media, or add it to your website as a button.

To bill through the online bank, open Rukkun í heimabanka in the dashboard, enter the customer's kennitala, the amount and the due date, and send.

Option 2: with an AI coding tool

If you build with Lovable, Bolt, Replit, v0, Cursor or Claude Code, tell the tool you are in Iceland and use Kling. Each tool has its own guide with a prompt you can paste: Lovable, Bolt, Replit, v0, Cursor, Claude Code.

For agents that work on your Kling account directly, connect the MCP server. Start with a test key so the agent can only touch test data.

Option 3: with the API

The API is at https://api.kling.is, authenticated with your secret key as a bearer token. The quickest start is the CLI, run in the root of your project:

bash
npx @klingis/cli init

It signs you in, writes your test key to .env.local, can set up a webhook and writes a prompt file for your AI editor.

1. Create a checkout session on your server

bash
curl -X POST https://api.kling.is/v1/checkout/sessions \
  -H "Authorization: Bearer sk_test_your_key_here" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "amount": 1000,
    "currency": "ISK",
    "success_url": "https://example.is/thanks"
  }'

The response has a url. Send the customer there, or open the session in an overlay on your own page with the payment window (@klingis/embed).

2. Pay with a test card

Use 4111 1111 1111 1111 with any future expiry date and any CVC. 4000 0000 0000 0002 gives a declined payment.

3. Fulfil orders from webhooks

Don't rely on the customer's browser coming back to your site. Register a webhook and ship when payment_intent.captured arrives. That event also covers an online bank claim that has been paid, which can be days after checkout.

Things to get right from day one

  • Amounts are whole krónur. ISK has no decimals, so 1000 is 1.000 kr. Never multiply by 100.
  • Keep the secret key on your server. It must never appear in browser code.
  • Send an Idempotency-Key on write requests, so a retry never charges twice.
  • Verify the webhook signature (X-Kling-Signature) before you trust a webhook.
  • Test and live are separate, with separate keys and separate webhook secrets.

The full reference is in the docs, the API reference and the SDKs.

Going live

When you are ready for real payments, choose Go live in the dashboard. You give your company details, the bank account for payouts and what you sell. Kling applies to the card acquirer for you; you complete a due diligence form and sign the agreement. When a payment method is approved, create a live key (sk_live_...) and swap it in. Nothing else in your code changes.

How long it takes depends mostly on how quickly the paperwork comes in. Test mode to going live explains each step and how to speed it up.

What it costs

No setup fee and no monthly fee; you pay per payment. Card acquirer fees and the bank's cost for claims come on top. See pricing.

Questions? Write to hallo@kling.is.

More guides

View as markdown