Cost+Docs

Hosted Payment Page (HPP)

Modtag betalinger via Cost+'s hosted payment page

Hosted Payment Page (HPP) er Cost+'s PCI DSS-kompatible betalingsformular. Den giver dig mulighed for at modtage betalinger uden at håndtere følsomme kortdata på dine egne servere. Du opretter en ordre via API'et, omdirigerer kunden til den hostede side, og de vender tilbage til dit site efter betaling.

Sådan fungerer det

  1. Din server opretter en ordre ved at kalde POST /v1/orders/.
  2. API'et returnerer en URL, der peger på den hostede betalingsside.
  3. Du omdirigerer kunden til betalingssiden.
  4. Kunden gennemfører betalingen på Cost+'s hostede side.
  5. Kunden omdirigeres tilbage til din return_url (eller failure_url ved fejlede betalinger).
  6. Cost+ sender en webhook-notifikation til din webhook_url med ordrestatus.

Den hostede betalingsside er fuldt PCI DSS-kompatibel. Du behøver aldrig at håndtere rå kortnumre eller følsomme betalingsdata på dine servere.

Oprettelse af en ordre

Der er to tilgange til at bruge HPP'en:

Tilgang 1: Vis alle betalingsmetoder (enklest)

Opret en ordre uden at angive transactions. Svaret inkluderer en order_url — kunden omdirigeres dertil og ser alle betalingsmetoder, der er aktiveret for din konto:

Request
{
  "currency": "EUR",
  "amount": 1295,
  "merchant_order_id": "my-order-id-1",
  "description": "My amazing order",
  "return_url": "https://www.example.com",
  "webhook_url": "https://www.example.com/webhook"
}
Response
{
  "id": "43114fde-da30-4115-8004-b7f808f9b25c",
  "status": "new",
  "currency": "EUR",
  "amount": 1295,
  "order_url": "https://api.costplus.online/pay/43114fde.../select-payment-method/",
  "return_url": "https://www.example.com",
  "webhook_url": "https://www.example.com/webhook"
}

Omdiriger kunden til order_url. På den hostede side vises alle aktiverede betalingsmetoder.

Tilgang 2: Forudvælg betalingsmetoder

Opret en ordre med et transactions-array for at styre, hvilke betalingsmetoder der vises og i hvilken rækkefølge. Hver transaktion inkluderer en payment_method, og svaret returnerer en payment_url i transaktionsobjektet:

Request
{
  "currency": "EUR",
  "amount": 1295,
  "merchant_order_id": "my-order-id-1",
  "description": "My amazing order",
  "return_url": "https://www.example.com",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    { "payment_method": "credit-card" }
  ]
}
Response
{
  "id": "4851e31c-4137-4e91-95ef-1df945ee76a2",
  "status": "new",
  "currency": "EUR",
  "amount": 1295,
  "transactions": [
    {
      "id": "d291f03f-a406-428a-967a-4895a46e03fd",
      "payment_method": "credit-card",
      "status": "new",
      "payment_url": "https://api.costplus.online/pay/4851e31c.../select-payment-method/credit-card/d291f03f.../"
    }
  ]
}

Omdiriger kunden til payment_url fra transaktionen.

Hvis du kun angiver en enkelt post i transactions-arrayet, sendes kunden direkte til den pågældende betalingsmetode uden at se en valgskærm. flags-arrayet indeholder "is-test", når du bruger en sandbox API-nøgle.

Anmodningsfelter

FeltPåkrævetBeskrivelse
currencyJaISO 4217-valutakode (f.eks. EUR, GBP, SEK)
amountJaBeløb i valutaens ISO 4217 mindre enhed. For eksempel er 12,95 EUR repræsenteret som 1295
merchant_order_idNejDit eget reference-ID for ordren
return_urlNejURL til at omdirigere kunden efter betaling (standard for alle statusser)
failure_urlNejURL til at omdirigere kunden ved cancelled, expired eller error-status (se Retur-URL'er nedenfor)
localeNejSprog for betalingssiden. Understøttet: en-GB, de-DE, nl-NL, nl-BE, fr-BE, sv-SE, no-NO, da-DK
descriptionNejBeskrivelse af ordren, vist til kunden
payment_methodsIngenFiltrer til en enkelt betalingsmetode (f.eks. ["credit-card"]). Udelad for at vise alle aktiverede metoder. For flere specifikke metoder skal du bruge transactions-arrayet i stedet
webhook_urlNejURL til at modtage statusændringsnotifikationer
expiration_periodNejISO 8601-varighed for ordreudløb. Standard er PT30M (30 minutter)

Feltet amount er altid et heltal i valutaens ISO 4217 mindre enhed. For EUR betyder 1295 12,95 EUR; nul- og tredecimalvalutaer bruger deres egen ISO 4217-eksponent. Passering af en decimalværdi såsom 1295.00 eller 12.95 vil resultere i en fejl eller en forkert debitering.

Flere betalingsmetoder

Der er to måder at kontrollere, hvilke betalingsmetoder der vises på den hostede side:

Valgmulighed A — payment_methods (enkelt filter). Send et enkelt-element-array for at begrænse ordren til én betalingsmetode. Udelad feltet helt for at vise alle metoder, der er aktiveret for din konto.

Mulighed B — transactions-array (anbefales til flere metoder). Tilføj én post pr. betalingsmetode. Hver transaktion får sin egen payment_url, og metoderne vises i rækkefølge på den hostede side:

"transactions": [
  { "payment_method": "credit-card" },
  { "payment_method": "apple-pay" }
]

Feltet payment_methods på ordrer accepterer højst én værdi. For at tilbyde flere specifikke metoder skal du altid bruge transactions-arrayet. Hvis du har brug for et genanvendeligt link med flere betalingsmetoder, skal du overveje Betalingslinks, som understøtter et ægte payment_methods-array.

Retur-URL'er

Efter betaling omdirigeres kunden baseret på ordrestatus og hvilke URL'er du har angivet:

  • Når både return_url og failure_url er angivet:

    • cancelled, expired eller error → kunden omdirigeres til failure_url
    • Alle andre statusser → kunden omdirigeres til return_url
  • Når kun return_url er angivet:

    • Alle statusser → kunden omdirigeres til return_url

Brug failure_url til at vise en genforsøgs- eller supportside ved fejlede betalinger, mens return_url viser en ordrebekræftelse. Hvis du kun har brug for én destination, er return_url alene tilstrækkeligt.

Annulleringsknappens adfærd

Den hostede betalingsside indeholder en annulleringsknap. Når kunden klikker på den, omdirigeres de til failure_url (hvis angivet) eller return_url. Ordrestatus skifter til cancelled. Bekræft altid ordrestatus via API'et eller webhooks i stedet for at stole på omdirigeringen alene.

Relaterede endpoints

  • Opret ordre — opret en betalingsordre og modtag payment_url
  • Hent ordre — tjek ordrestatus efter betaling

On this page