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.
Authorization
basicAuth 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"
}
}