Cost+Docs

Create a payment link

Create a new reusable payment link. The response includes a `payment_url` to share with the customer. The customer can attempt payment multiple times (up to 25 attempts) until the link expires or payment succeeds.

POST
/paymentlinks/

Authorization

basicAuth
AuthorizationBasic <token>

Use your API key as the username and leave the password empty. Encode as Base64: {api_key}: (note the trailing colon).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -u YOUR_API_KEY: \  -X POST https://api.costplus.online/v1/paymentlinks/ \  -H 'Content-Type: application/json' \  -d '{ "merchant_order_id": "invoice-1234", "amount": 995, "currency": "EUR", "description": "Invoice #1234" }'
{
  "id": "e6eecc6a-47c5-4948-bcc0-d8b73f5c55a1",
  "merchant_order_id": "invoice-1234",
  "amount": 995,
  "currency": "EUR",
  "description": "Invoice #1234",
  "expiration_period": "P30D",
  "payment_url": "https://api.costplus.online/paymentlinks/e6eecc6a-47c5-4948-bcc0-d8b73f5c55a1/",
  "status": "new",
  "reason": "Payment Link was created, not yet visited",
  "orders": {},
  "created": "2026-01-15T12:00:00.000000Z"
}
{
  "error": {
    "status": 400,
    "type": "string",
    "value": "string",
    "property_path": "string",
    "property_description": "string"
  }
}
{
  "error": {
    "status": 400,
    "type": "string",
    "value": "string",
    "property_path": "string",
    "property_description": "string"
  }
}