Cost+Docs

Betalingslinks

Opret genanvendelige betalingslinks

Betalingslinks er genanvendelige URL'er, der giver kunder mulighed for at betale for en ordre. I modsætning til standardordrer, der udløber efter et enkelt fejlet forsøg, understøtter betalingslinks flere genforsøg, hvilket gør dem ideelle til fakturaer, e-mailbaserede betalinger og scenarier, hvor kunden muligvis ikke betaler med det samme.

Nøglefunktioner

  • Genanvendelige: Kunder kan forsøge betaling op til 25 gange, hvis tidligere forsøg fejler.
  • Langtidsgyldige: Standardudløb er 30 dage (konfigurerbar via expiration_period).
  • Delbare: Send linket via e-mail, SMS, chat eller indlejr det på dit website.

Send en POST-anmodning til /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 inkluderer payment_url til at dele med kunden og et unikt id til sporing:

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"
}

Gem id — du bruger det til at tjekke betalingslinkstatus senere.

Påkrævede felter

FeltBeskrivelse
merchant_order_idDit eget reference-ID for betalingslinket
amountBeløb i øre/cent (f.eks. 9,95 EUR = 995)
currencyISO 4217-valutakode (f.eks. EUR, GBP)

Valgfrie felter

FeltBeskrivelse
descriptionBeskrivelse vist til kunden
expiration_periodISO 8601-varighed. Standard er P30D (30 dage)
return_urlURL til at omdirigere kunden efter vellykket betaling
failure_urlURL til at omdirigere kunden ved annullering, udløb eller fejl
webhook_urlURL til at modtage statusændringsnotifikationer
customerKundedetaljer-objekt (navn, e-mail osv.)

Hvis du angiver både return_url og failure_url, omdirigeres kunder til failure_url, når ordrestatus er cancelled, expired eller error. Ellers går alle omdirigeringer til return_url.

Send en GET-anmodning til /v1/paymentlinks/{id}/ med betalingslinkets id fra oprettelsessvaret:

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

Svaret inkluderer den aktuelle status og referencer til alle ordrer oprettet fra linket, grupperet efter deres 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 dette eksempel foretog kunden ét fejlet forsøg (ordre 0d79014c... med error-status), inden det lykkedes (ordre 3bb663cc... med completed-status). Du kan hente alle detaljer for enhver ordre via GET /v1/orders/{order_id}/.

Betalingslinkstatusser

StatusBeskrivelse
newLinket er oprettet, men der er ikke foretaget noget betalingsforsøg.
processingEt betalingsforsøg er i gang.
all_unsuccessfulAlle betalingsforsøg er hidtil fejlet. Kunden kan stadig forsøge igen (op til 25 forsøg).
completedBetalingen var vellykket. Linket er ikke længere aktivt.
expiredLinket er udløbet, inden en vellykket betaling blev foretaget.

Statusen all_unsuccessful er ikke en endelig status. Kunden kan stadig forsøge at betale igen, indtil enten betalingen lykkes, det maksimale antal forsøg (25) er nået, eller linket udløber.

Når et betalingslink når status completed eller expired, kan det ikke bruges igen. Opret et nyt betalingslink, hvis kunden skal betale igen.

Eksempel på workflow

  1. Opret et betalingslink via POST /v1/paymentlinks/.
  2. Del den returnerede payment_url med din kunde (f.eks. via e-mail, SMS eller faktura).
  3. Kunden åbner linket og gennemfører betalingen.
  4. Cost+ sender en webhook til din webhook_url, når status ændres.
  5. Verificer betalingslinkstatus via GET /v1/paymentlinks/{id}/.
  6. Opfyld ordren, når status er completed.

Relaterede endpoints

On this page