External endpoint for ERP/WMS/middleware systems to trigger capture/void/refund without using the OXID admin. Enabling it and generating the secret is done by the customer in the admin (see Configuration) β this is the technical interface reference for the integration itself.
Endpoint: POST index.php?cl=mmd_riverty_integration_api
Auth: Header X-Riverty-Integration-Secret checked against the secret configured in the admin (timing-safe comparison).
Request body:
{
"type": "capture",
"orderNumber": "2026070001",
"mode": "partial",
"items": [{"sku": "ART-001", "quantity": 1}],
"idempotencyKey": "erp-job-48213"
}
type: capture, void, or refund (aliases cancel/cancellation for void). Either orderId OR orderNumber is required. mode: full or partial (default: partial). idempotencyKey: optional, prevents duplicate execution on retries.
Response codes:
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Invalid JSON or validation error |
| 401 | Secret missing or incorrect |
| 403 | Integration API disabled |
| 409 | Idempotency key is currently being processed |
| 422 | Idempotency key reused with a different request body |
| 503 | Secret not configured |
| 500 | Unexpected error |
Void has no partial variant via the Integration API β full void only. Capture and refund support
mode: "partial".
| Command | Description |
|---|---|
oe-console oe:riverty:cleanup |
Clears out expired API logs, orphaned idempotency keys, and expired pending transactions (retention periods are configured by the customer in the admin, see Configuration) |
The --dry-run option shows affected row counts without deleting anything.
Recommended cron entry:
0 3 * * * cd /var/www/html && vendor/bin/oe-console oe:riverty:cleanup >> /var/log/riverty-cleanup.log 2>&1
Example 1 β Partial refund via Integration API:
curl -X POST "https://shop.example.com/index.php?cl=mmd_riverty_integration_api" \
-H "X-Riverty-Integration-Secret: <secret>" \
-H "Content-Type: application/json" \
-d '{
"type": "refund",
"orderNumber": "2026070001",
"mode": "partial",
"items": [{"sku": "ART-001", "quantity": 1}],
"captureNumber": "CAP-123",
"idempotencyKey": "erp-refund-9911"
}'
Example 2 β Testing the cron job in dry-run before enabling it for real:
vendor/bin/oe-console oe:riverty:cleanup --dry-run