Cost+Docs

Betalningslänkar

Skapa återanvändbara betalningslänkar

Betalningslänkar är återanvändbara URL:er som gör det möjligt för kunder att betala för en order. Till skillnad från standardordrar som löper ut efter ett enda misslyckat försök stöder betalningslänkar flera omförsök, vilket gör dem idealiska för fakturor, e-postbaserade betalningar och scenarier där kunden kanske inte betalar omedelbart.

Huvudfunktioner

  • Återanvändbara: Kunder kan försöka betala upp till 25 gånger om tidigare försök misslyckas.
  • Långlivade: Standardutgångstiden är 30 dagar (konfigurerbar via expiration_period).
  • Delbara: Skicka länken via e-post, SMS, chatt eller bädda in den på din webbplats.

Skapa en betalningslänk

Skicka en POST-förfrågan till /v1/paymentlinks/:

POST /v1/paymentlinks/
curl -X POST https://api.costplus.online/v1/paymentlinks/ \
  -u YOUR_API_KEY: \
  -H "Content-Type: application/json" \
  -d '{
    "merchant_order_id": "invoice-1234",
    "amount": 995,
    "currency": "EUR",
    "description": "Invoice #1234"
  }'

Svaret innehåller payment_url att dela med kunden och ett unikt id för spårning:

Response (201 Created)
{
  "id": "e6eecc6a-47c5-4948-bcc0-d8b73f5c55a1",
  "merchant_order_id": "invoice-1234",
  "amount": 995,
  "currency": "EUR",
  "description": "Invoice #1234",
  "expiration_period": "P30D",
  "payment_url": "https://pay.costplus.online/paymentlinks/e6eecc6a.../",
  "status": "new",
  "reason": "Payment Link was created, not yet visited",
  "orders": {},
  "created": "2026-01-15T12:00:00.000000Z"
}

Spara id — du använder det för att kontrollera betalningslänkens status senare.

Obligatoriska fält

FältBeskrivning
merchant_order_idDitt eget referens-ID för betalningslänken
amountBelopp i ören/cent (t.ex. 9,95 EUR = 995)
currencyISO 4217-valutakod (t.ex. EUR, GBP)

Valfria fält

FältBeskrivning
descriptionBeskrivning som visas för kunden
expiration_periodISO 8601-duration. Standard är P30D (30 dagar)
return_urlURL att omdirigera kunden till efter lyckad betalning
failure_urlURL att omdirigera kunden till vid avbrytning, utgång eller fel
webhook_urlURL för att ta emot statusändringsnotifieringar
customerKunddetaljobjekt (namn, e-post, etc.)

Om du anger både return_url och failure_url omdirigeras kunder till failure_url när orderstatus är cancelled, expired eller error. Annars går alla omdirigeringar till return_url.

Hämta en betalningslänk

Skicka en GET-förfrågan till /v1/paymentlinks/{id}/ med betalningslänkens id från skapandesvaret:

GET /v1/paymentlinks/{id}/
curl -u YOUR_API_KEY: \
  https://api.costplus.online/v1/paymentlinks/e6eecc6a-47c5-4948-bcc0-d8b73f5c55a1/

Svaret innehåller aktuell status och referenser till alla ordrar skapade från länken, grupperade efter status:

Response (completed example)
{
  "id": "e6eecc6a-47c5-4948-bcc0-d8b73f5c55a1",
  "merchant_order_id": "invoice-1234",
  "amount": 995,
  "currency": "EUR",
  "description": "Invoice #1234",
  "expiration_period": "P30D",
  "payment_url": "https://pay.costplus.online/paymentlinks/e6eecc6a.../",
  "status": "completed",
  "reason": "Completed",
  "completed": "2026-01-15T12:05:30.123456+00:00",
  "completed_order_id": "3bb663cc-2a20-400d-8bf6-18d9695d0c66",
  "orders": {
    "error": ["0d79014c-0aaa-4fd6-87c5-c8cfa5f5ac69"],
    "completed": ["3bb663cc-2a20-400d-8bf6-18d9695d0c66"]
  }
}

I detta exempel gjorde kunden ett misslyckat försök (order 0d79014c... med status error) innan det lyckades (order 3bb663cc... med status completed). Du kan hämta fullständiga detaljer för valfri order via GET /v1/orders/{order_id}/.

Betalningslänkstatusar

StatusBeskrivning
newLänken har skapats men inget betalningsförsök har gjorts.
processingEtt betalningsförsök pågår just nu.
all_unsuccessfulAlla betalningsförsök hittills har misslyckats. Kunden kan fortfarande försöka igen (upp till 25 försök).
completedBetalningen lyckades. Länken är inte längre aktiv.
expiredLänken har löpt ut innan en lyckad betalning gjordes.

Statusen all_unsuccessful är inte en slutgiltig status. Kunden kan fortfarande försöka betala igen tills antingen betalningen lyckas, det maximala antalet försök (25) har nåtts, eller länken löper ut.

När en betalningslänk når statusen completed eller expired kan den inte användas igen. Skapa en ny betalningslänk om kunden behöver betala igen.

Exempel på arbetsflöde

  1. Skapa en betalningslänk via POST /v1/paymentlinks/.
  2. Dela den returnerade payment_url med din kund (t.ex. via e-post, SMS eller faktura).
  3. Kunden öppnar länken och genomför betalningen.
  4. Cost+ skickar en webhook till din webhook_url när statusen ändras.
  5. Verifiera betalningslänkens status via GET /v1/paymentlinks/{id}/.
  6. Uppfyll ordern när statusen är completed.

Relaterade endpoints

On this page