NAV Navbar
shell csharp go php ruby
  • Inngangur
  • Auðkenning
  • Stofna rukkun
  • Sækja upplýsingar um rukkun
  • Fella niður rukkun
  • Athuga stöðu á rukkun
  • Sjálfvirk tilkynning frá Kass (notification callback)
  • Mögulegir villukóðar
  • Sandkassi (prófunargögn)
  • Inngangur

    Velkomin í skjölun á Kass API v1.

    Auðkenning

    Hver aðgerð í Kass API notar HTTP Basic Auth auðkenningu (sjá curl -u í dæmum). Aðgangskóði söluaðila er sendur inn sem notandanafn á meðan svæðið fyrir lykilorð er tómt.

    -u um2JjfnJbEUJnCpjKiV94jqp:

    Stofna rukkun

    curl https://api.kass.is/v1/payments \
        -u um2JjfnJbEUJnCpjKiV94jqp: \
        -d @payment_request.json
    

    Dæmi um innsend JSON gögn (payment_request.json)

    {
        "amount": 2199,
        "description": "Kass bolur",
        "image_url": "https://photos.kassapi.is/kass/kass-bolur.jpg",
        "order": "ABC123",
        "recipient": "7728440",
        "terminal": 1,
        "expires_in": 90,
        "notify_url": "https://example.com/callbacks/kass"
    }
    

    Dæmi um JSON svargögn ef aðgerð tókst

    {
        "success": true,
        "id": "3e6975e8-77cb-48b7-7722-3dfe47677bbc",
        "created": 1458748385
    }
    

    Dæmi um JSON svargögn ef upp kom villa

    {
        "success": false,
        "error": {
            "code": "200",
            "key": "recipient_not_found",
            "message": "Viðtakandi fannst ekki"
        }
    }
    

    Þessi aðgerð stofnar rukkun og sendir hana samstundis á viðtakanda. Viðtakandinn hefur þá 90 sekúndur til að bregðast við rukkuninni, hvort sem er að greiða eða hafna. Eftir þann tíma rennur rukkunin út og viðtakandi getur ekki lengur greitt.

    HTTP

    POST https://api.kass.is/v1/payments

    Skýring á innsendum svæðum

    Svæði Tegund Skýring
    amount Tala Heildarupphæð greiðslu til rukkunar, skráð án aukastafa.
    description Strengur Skilaboð til kaupanda. Valfrjálst svæði.
    image_url Strengur Slóð að mynd sem geymd er á vef söluaðila. Kass appið sækir myndina út frá slóðinni þannig að kaupandinn sjái hana. Valfrjálst svæði.
    order Strengur Pöntunarnúmer sem söluaðili getur sent með. Númerið er sent til baka til kerfis söluaðila eftir að kaupandi greiðir (notify_url). Kaupandi sér ekki númerið. Valfrjálst svæði.
    recipient Strengur Notandanafn eða símanúmer viðtakanda. Styður aðeins einn viðtakanda í einu. Símanúmer má innihalda landkóða (+354) en þarf þess ekki.
    terminal Tala Auðkenni útstöðvar eða sölustaðar. Valfrjálst svæði.
    expires_in Tala Gildistími rukkunar í sekúndum. Lágmark 10 sekúndur, hámark 7 dagar. Valfrjálst svæði (sjálfgefið gildi er 90 sekúndur).
    notify_url Strengur Slóð hjá söluaðila sem Kass kerfið kallar í eftir að kaupandi hefur greitt. Sjá nánar kaflann Sjálfvirk tilkynning frá Kass.

    Skýring á svæðum í svargögnum

    Svæði Tegund Skýring
    success Sanngildi Skilar true ef öll gögn eru rétt og rukkun hefur verið send á viðtakandann.
    id Strengur Númer rukkunar sem er notað til að athuga stöðu.
    created Tala Tímasetningin þegar rukkunin var stofnuð. Unix tímastimpill.
    error JSON Upplýsingar um villu ef success gildið er false. Sjá nánar um villukóða í kaflanum Mögulegir villukóðar.

    Sækja upplýsingar um rukkun

    curl https://api.kass.is/v1/payments/3e6975e8-77cb-48b7-7722-3dfe47677bbc \
        -u um2JjfnJbEUJnCpjKiV94jqp:
    

    Dæmi um JSON svargögn

    {
        "id": "3e6975e8-77cb-48b7-7722-3dfe47677bbc",
        "transaction_id": "a917be59-f35a-478f-a5d9-19bf467972ad",
        "amount": 2199,
        "description": "Kass bolur",
        "image_url": "https://photos.kassapi.is/kass/kass-bolur.jpg",
        "status": "paid",
        "order": "abc123",
        "created": 1458748385,
        "updated": 1458748422,
        "expires": 1458748475
    }
    

    Skilar upplýsingum um rukkun. Ef eingöngu er verið að athuga stöðu rukkunar, sjá kaflann Athuga stöðu á rukkun.

    HTTP

    GET https://api.kass.is/v1/payments/[id]

    Skýring á svæðum

    Svæði Tegund Skýring
    id Strengur Númer rukkunar.
    transaction_id Strengur Færslunúmer ef kaupandi hefur greitt. Ef rukkunin er ógreidd, útrunnin eða var hafnað er ekkert númer sent.
    amount Tala Upphæð sem send var inn þegar rukkun var stofnuð.
    description Strengur Skilaboð til kaupanda sem send voru inn þegar rukkun var stofnuð.
    image_url Strengur Slóð að mynd sem send var inn þegar rukkun var stofnuð.
    status Strengur Staðan á rukkuninni.
    pending = Ógreidd.
    paid = Kaupandi greiddi.
    rejected = Kaupandi hafnaði eða rukkun rann út.
    order Strengur Pöntunarnúmer sem söluaðili sendi inn þegar rukkun var stofnuð.
    created Tala Tímasetningin þegar rukkunin var stofnuð. Unix tímastimpill.
    updated Tala Tímasetningin þegar stöðu á rukkuninni var breytt. Ef staðan er óbreytt þá er þessi tími sami og created_at. Unix tímastimpill.
    expires Tala Tímasetningin þegar rukkunin rennur út og viðtakandi getur ekki lengur greitt. Unix tímastimpill.

    Fella niður rukkun

    curl -X DELETE https://api.kass.is/v1/payments/3e6975e8-77cb-48b7-7722-3dfe47677bbc \
        -u um2JjfnJbEUJnCpjKiV94jqp:
    

    Dæmi um JSON svargögn

    {
        "id": "3e6975e8-77cb-48b7-7722-3dfe47677bbc",
        "status": "rejected",
        "expires": 1458748475
    }
    

    Fellir niður rukkun samstundis þannig að notandi getur ekki lengur greitt.

    HTTP

    DELETE https://api.kass.is/v1/payments/[id]

    Skýring á svæðum

    Svæði Tegund Skýring
    id Strengur Númer rukkunar.
    status Strengur Staðan á rukkuninni.
    rejected = Kaupandi hafnaði eða rukkun rann út.
    expires Tala Tímasetningin þegar rukkunin var felld niður. Unix tímastimpill.

    Athuga stöðu á rukkun

    curl https://api.kass.is/v1/payments/3e6975e8-77cb-48b7-7722-3dfe47677bbc/status \
        -u um2JjfnJbEUJnCpjKiV94jqp:
    

    Dæmi um JSON svargögn

    {
        "id": "3e6975e8-77cb-48b7-7722-3dfe47677bbc",
        "status": "pending",
        "expires": 1458748475
    }
    

    Skilar stöðunni á rukkun, þ.e.a.s. hvort hún sé ógreidd, hafi verið greidd, hafi verið hafnað eða sé útrunnin.

    HTTP

    GET https://api.kass.is/v1/payments/[id]/status

    Skýring á svæðum

    Svæði Tegund Skýring
    id Strengur Númer rukkunar.
    status Strengur Staðan á rukkuninni.
    pending = Ógreidd.
    paid = Kaupandi greiddi.
    rejected = Kaupandi hafnaði eða rukkun rann út.
    expires Tala Tímasetningin þegar rukkunin rennur út og viðtakandi getur ekki lengur greitt. Unix tímastimpill.

    Sjálfvirk tilkynning frá Kass (notification callback)

    Dæmi um JSON gögn

    {
        "payment_id": "3e6975e8-77cb-48b7-7722-3dfe47677bbc",
        "transaction_id": "a917be59-f35a-478f-a5d9-19bf467972ad",
        "amount": 2199,
        "status": "paid",
        "order": "abc123",
        "completed": 1458748422,
        "signature": "8022cb71924dba2e24f849fdc83596e80a3966465f6b3f1702326afa31229b11"
    }
    

    Þegar staðan á rukkun breytist, hvort sem kaupandi greiðir, hafnar eða rukkun rennur út, er POST-að á notify_url slóðina, sem skilgreind var þegar rukkunin var stofnuð, með upplýsingum um greiðsluna. Svarið er undirritað.

    Til að koma í veg fyrir misnotkun er mælt með því að staðfesta undirritunina (signature strenginn) og einnig er gott að passa að þú meðhöndlir ekki sama payment_id oftar en einu sinni.

    Mikilvægt: Netþjónninn þinn verður að svara með HTTP 200 OK. Að öðru leyti telst svarið ekki gilt og Kass mun því reyna nokkrum sinnum aftur að senda gögnin á netþjóninn þinn.

    Skýring á svæðum

    Svæði Tegund Skýring
    payment_id Strengur Númer rukkunar.
    transaction_id Strengur Færslunúmer ef kaupandi hefur greitt. Ef rukkunin er ógreidd, útrunnin eða var hafnað er ekkert númer sent.
    amount Tala Upphæð sem send var inn þegar rukkun var stofnuð.
    status Strengur Staðan á rukkuninni.
    paid = Kaupandi greiddi.
    rejected = Kaupandi hafnaði eða rukkun rann út.
    order Strengur Pöntunarnúmer sem söluaðili sendi inn þegar rukkun var stofnuð.
    completed Tala Tímasetningin þegar rukkun lokaðist og staðan breyttist úr pending yfir í paid eða rejected. Unix tímastimpill.
    signature Strengur Undirritun sem söluaðili getur borið saman við til að staðfesta að svarið sé réttmætt.

    Undirritun

    Dæmi um samsettan streng

    3e6975e8-77cb-48b7-7722-3dfe47677bbc&a917be59-f35a-478f-a5d9-19bf467972ad&abc123&2199&paid&1458748422
    

    Dæmi

    ** Veldu forritunarmál efst á síðunni **
    
    string key = "um2JjfnJbEUJnCpjKiV94jqp";
    string body = "3e6975e8-77cb-48b7-7722-3dfe47677bbc&a917be59-f35a-478f-a5d9-19bf467972ad&abc123&2199&paid&1458748422";
    byte[] keyBytes = Encoding.UTF8.GetBytes(key);
    HMACSHA256 hasher = new HMACSHA256(keyBytes);
    byte[] bodyBytes = hasher.ComputeHash(Encoding.UTF8.GetBytes(body));
    string signature = BitConverter.ToString(bodyBytes).Replace("-", "");
    
    import (
        "crypto/hmac"
        "crypto/sha256"
        "encoding/hex"
    )
    var key = []byte("um2JjfnJbEUJnCpjKiV94jqp")
    var body = "3e6975e8-77cb-48b7-7722-3dfe47677bbc&a917be59-f35a-478f-a5d9-19bf467972ad&abc123&2199&paid&1458748422"
    var h = hmac.New(sha256.New, key)
    h.Write([]byte(body))
    var signature = hex.EncodeToString(h.Sum(nil))
    
    <?php
    $key = 'um2JjfnJbEUJnCpjKiV94jqp';
    $body = utf8_encode('3e6975e8-77cb-48b7-7722-3dfe47677bbc&a917be59-f35a-478f-a5d9-19bf467972ad&abc123&2199&paid&1458748422');
    $signature = hash_hmac('sha256', $body, $key);
    ?>
    
    require 'openssl'
    
    key = 'um2JjfnJbEUJnCpjKiV94jqp'
    body = '3e6975e8-77cb-48b7-7722-3dfe47677bbc&a917be59-f35a-478f-a5d9-19bf467972ad&abc123&2199&paid&1458748422'
    digest = OpenSSL::Digest.new('sha256')
    signature = OpenSSL::HMAC.hexdigest(digest, key, body)
    

    Dæmi um fullbúna undirritun

    8022cb71924dba2e24f849fdc83596e80a3966465f6b3f1702326afa31229b11
    

    Undirritunin er strengur sem er settur saman úr eftirfarandi einingum og síðan hashaður með HMAC SHA256 þar sem aðgangskóðinn er lykillinn.

    payment_id&transaction_id&order&amount&status&completed

    Mögulegir villukóðar

    Kass API styðst við eftirfarandi villukóða:

    Villukóði Lykill Þýddur texti Ástæða
    100 merchant_not_found Söluaðili fannst ekki Rangur aðgangskóði notaður í Basic Auth.
    101 merchant_account_locked Söluaðili ekki virkur Aðgangur söluaðila er lokaður.
    102 merchant_signature_incorrect Undirritun ekki rétt Undirritun söluaðila á innsendum gögnum ekki rétt.
    200 recipient_not_found Viðtakandi fannst ekki Enginn viðtakandi fannst með símanúmerið eða notandanafnið sem sent var inn.
    201 merchant_cannot_be_recipient Söluaðili getur ekki verið viðtakandi Ekki er hægt að senda rukkun á söluaðila.
    300 payment_not_found Greiðsla fannst ekki Greiðsla með uppgefnu ID fannst ekki.
    301 payment_exceeds_limits Ekki heimild Rukkunin fer yfir leyfða heimild.
    400 invalid_data Innsend gögn eru ekki á réttu formi Annað hvort vantar upplýsingar í innsend JSON gögn eða hluti þeirra er á röngu formi.
    500 system_error Kerfisvilla - prófaðu aftur Eitthvað leiðinlegt kom upp á í Kass kerfinu.

    Sandkassi (prófunargögn)

    curl https://api.testing.kass.is/v1/payments \
        -u kass_test_auth_token: \
        -d @payment_request.json
    

    Hægt er að senda rukkanir á prófunarsvæði með því að nota aðgangskóðann kass_test_auth_token. Fyrir neðan má finna lista af símanúmerum sem senda má rukkun á og skýringu á viðbrögðum kerfisins.

    HTTP

    POST https://api.testing.kass.is/v1/payments

    Símanúmer Skýring
    100 1000 Rukkun send á þetta númer rennur út eftir 90 sekúndur.
    100 1001 Rukkun send á þetta númer verður sjálfkrafa merkt greidd.
    100 1002 Rukkun send á þetta númer verður sjálfkrafa merkt hafnað.