Create a payment
Creates a new payment attempt. The payment type and net cost must be provided. Depending on the payment method, the response may include a redirect URL that the user must open in a browser to complete the payment.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”The payment request payload
Payment creation request payload
object
Net payment amount (real value, e.g. 50.00 for 50.00 EUR). Total including fees and VAT is calculated automatically.
Payment type: “sepa” = SEPA direct debit, “stored_card” = stored credit/debit card
ID of the payment method from GET /payment-methods (stored card ID or SEPA mandate ID)
Examples
Stored card payment
Example request for creating a payment with a previously saved credit/debit card
{ "net_val": 100, "type": "stored_card", "method_id": 94}SEPA direct debit payment
Example request for creating a payment via SEPA direct debit using an existing mandate
{ "net_val": 50, "type": "sepa", "method_id": 747}Responses
Section titled “ Responses ”Payment created
Payment attempt details (JSON-LD)
object
JSON-LD ID
JSON-LD type
Payment Attempt ID
Creation date (unix timestamp)
Completion date (unix timestamp), null if not completed
Payment status: 0 = New, 10 = In Progress (before request), 20 = In Progress (after request), 100 = Done, 200 = Canceled by user, 300 = Canceled by timeout, 400 = Canceled by admin, 1000 = Error
Total payment amount
Net cost value
VAT value
Fee value
Currency
Payment method: 1 = SEPA, 6 = Bank Transfer, 7 = PayPal, 8 = Sofort, 91 = Stored Card, 92 = New Card
URI to related invoice, null if not yet created
Error message if payment failed, null otherwise
Examples
Bank transfer payment created
Example response for a bank transfer payment (no redirect, invoice created immediately)
{ "id": 120, "created_at": 1750066200, "completed_at": 1750066200, "status": 100, "amount": 100, "net_val": 100, "vat_val": 0, "fee_val": 0, "currency": "EUR", "type": 6, "invoice": "/invoices/456", "error": null}Payment attempt details
object
Payment Attempt ID
Creation date (unix timestamp)
Completion date (unix timestamp), null if not completed
Payment status: 0 = New, 10 = In Progress (before request), 20 = In Progress (after request), 100 = Done, 200 = Canceled by user, 300 = Canceled by timeout, 400 = Canceled by admin, 1000 = Error
Total payment amount
Net cost value
VAT value
Fee value
Currency
Payment method: 1 = SEPA, 6 = Bank Transfer, 7 = PayPal, 8 = Sofort, 91 = Stored Card, 92 = New Card
URI to related invoice, null if not yet created
Error message if payment failed, null otherwise
ID of the payment method used (stored card ID or SEPA mandate ID), null if not applicable
Examples
Bank transfer payment created
Example response for a bank transfer payment (no redirect, invoice created immediately)
{ "id": 120, "created_at": 1750066200, "completed_at": 1750066200, "status": 100, "amount": 100, "net_val": 100, "vat_val": 0, "fee_val": 0, "currency": "EUR", "type": 6, "invoice": "/invoices/456", "error": null}Invalid input
Client ID or API key isn’t active or invalid!
There are not enough funds on your account!
Account isn’t activated. Please wait or contact to support!
The request was well-formed but was unable to be followed due to semantic errors
IP address was temporary blocked, because during short time from it was sent many request with invalid credentials. Please wait and try later.
Code Samples
curl -s -X POST 'https://api.lox24.eu/payments' \ -H 'X-LOX24-AUTH-TOKEN: YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{"net_val": 100.00, "type": "stored_card", "method_id": 94}' | jqusing System;using System.Net.Http;using System.Text;using System.Threading.Tasks;
class Program{ static async Task Main() { using var client = new HttpClient(); client.DefaultRequestHeaders.Add("X-LOX24-AUTH-TOKEN", "YOUR_API_TOKEN");
var content = new StringContent( "{\"net_val\": 100.00, \"type\": \"stored_card\", \"method_id\": 94}", Encoding.UTF8, "application/json" );
var response = await client.PostAsync("https://api.lox24.eu/payments", content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}package main
import ( "fmt" "io" "net/http" "strings")
func main() { body := `{"net_val": 100.00, "type": "stored_card", "method_id": 94}` req, _ := http.NewRequest("POST", "https://api.lox24.eu/payments", strings.NewReader(body)) req.Header.Set("X-LOX24-AUTH-TOKEN", "YOUR_API_TOKEN") req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() respBody, _ := io.ReadAll(resp.Body) fmt.Println(string(respBody))}import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;
public class Main { public static void main(String[] args) throws Exception { var client = HttpClient.newHttpClient(); var body = "{\"net_val\": 100.00, \"type\": \"stored_card\", \"method_id\": 94}"; var request = HttpRequest.newBuilder() .uri(URI.create("https://api.lox24.eu/payments")) .header("X-LOX24-AUTH-TOKEN", "YOUR_API_TOKEN") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)) .build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}fetch('https://api.lox24.eu/payments', { method: 'POST', headers: { 'X-LOX24-AUTH-TOKEN': 'YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ net_val: 100.00, type: 'stored_card', method_id: 94 })}).then(res => res.json()).then(console.log);<?php
$data = json_encode(['net_val' => 100.00, 'type' => 'stored_card', 'method_id' => 94]);
$ch = curl_init('https://api.lox24.eu/payments');curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'X-LOX24-AUTH-TOKEN: YOUR_API_TOKEN', 'Content-Type: application/json']);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);curl_close($ch);
echo $response;import requestsimport json
response = requests.post( 'https://api.lox24.eu/payments', headers={ 'X-LOX24-AUTH-TOKEN': 'YOUR_API_TOKEN', 'Content-Type': 'application/json' }, data=json.dumps({'net_val': 100.00, 'type': 'stored_card', 'method_id': 94}))print(response.json())