BPMN API Documentation

Convert XML to BPMN 2.0 Diagram File

API Endpoint

POST /api/bpmn/convert

Request

Send XML content in the request body. Accepts:

  • Content-Type: text/xml, application/xml, or text/plain
  • Body: Simple Payroll XML or BPMN 2.0 XML

Response

Returns a BPMN 2.0 XML file (.bpmn) with diagram layout included.

Example: cURL

curl -X POST https://your-domain.com/api/bpmn/convert \
  -H "Content-Type: text/xml" \
  -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<PayrollProcess>
    <Company>
        <Name>ABC Software Ltd</Name>
        <PayrollMonth>January</PayrollMonth>
    </Company>
</PayrollProcess>" \
  --output payroll-process.bpmn

Example: JavaScript (Fetch)

const xml = `<?xml version="1.0" encoding="UTF-8"?>
<PayrollProcess>
    <Company>
        <Name>ABC Software Ltd</Name>
    </Company>
</PayrollProcess>`;

fetch('/api/bpmn/convert', {
    method: 'POST',
    headers: {
        'Content-Type': 'text/xml'
    },
    body: xml
})
.then(response => response.blob())
.then(blob => {
    const url = window.URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = 'payroll-process.bpmn';
    a.click();
});

Example: C# HttpClient

var xml = "@"<?xml version=""1.0"" encoding=""UTF-8""?>
<PayrollProcess>
    <Company>
        <Name>ABC Software Ltd</Name>
    </Company>
</PayrollProcess>";

using var client = new HttpClient();
var content = new StringContent(xml, Encoding.UTF8, "text/xml");
var response = await client.PostAsync("https://your-domain.com/api/bpmn/convert", content);
var fileBytes = await response.Content.ReadAsByteArrayAsync();

await File.WriteAllBytesAsync("payroll-process.bpmn", fileBytes);

Alternative: JSON Request

You can also send JSON with XML content:

POST /api/bpmn/convert-json

Content-Type: application/json

{
    "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><PayrollProcess>...</PayrollProcess>"
}