generated: '2026-08-27'
method: searched
source: https://docs.proactis.com/using-the-api/transactions/push-transactions
docs: https://docs.proactis.com/using-the-api/transactions/push-transactions
provider: Proactis
providerId: proactis
name: Proactis push transactions (webhook surface)
description: >-
Proactis ships a real outbound event surface, though it does not call it webhooks. For
transactional documents it will POST the document to a customer-specified endpoint each time
the document reaches a given status. The delivery target, transport, content type and the
credentials Proactis uses to authenticate to the customer are all configured through
Communication Settings endpoints in the API itself, one configuration per environment.
asyncapi_spec: false
asyncapi_note: >-
No AsyncAPI document is published, and no event catalog beyond the prose below. The surface is
document-push rather than a general event bus — there are no create/update/delete event types,
only "this document reached its export status, here it is".
surface_type: outbound-document-push
subscription_model: configuration
subscription_endpoints: >-
Communication Settings endpoints exist per API (Receipt Communication Settings, Requisition
Communication Settings, Timecard Communication Settings and equivalents appear in the reference
navigation) with methods to set up, retrieve, update and delete endpoint configuration.
delivery:
method: POST
trigger: >-
The document reaching the correct status. For requisitions, ERP orders, receipts and timecards
the triggering status is fixed; for invoices it is configurable.
payload_format: cXML
default_content_type: application/xml
attachments: >-
Documents carrying attachments are delivered as a multipart request, default multipart/mixed.
The receiving application must be able to parse multipart and extract the document and the
attachments separately.
multiple_endpoints: >-
ERP orders support multiple endpoints, each receiving the same message. Requisitions, receipts,
invoices and timecards support exactly one endpoint each.
supported_uri_schemes: [http, https, ftp, sftp]
document_types:
- name: Requisition
trigger_status: fixed
endpoints: 1
- name: ERP Order
trigger_status: fixed
endpoints: multiple
extra: Supports additional custom HTTP headers as key/value pairs (ERP orders only).
- name: Receipt
trigger_status: fixed
endpoints: 1
- name: Timecard
trigger_status: fixed
endpoints: 1
- name: Invoice
trigger_status: configurable
endpoints: 1
statuses:
- CONCEPT
- EXCEPTION
- FORAPPROVAL
- PROCESSED
- CLEARED
- SENT
- ONHOLD
- FORVALIDATION
- REJECTED
- DELETED
- ARCHIVED
- FOREVALUATION
note: >-
Invoices can be exported in one or several statuses; the document is pushed once it reaches
any configured status.
not_pushable: >-
Only transactional documents can be pushed. All master data — suppliers, accounting structures,
users, contracts — must be pulled with a client-initiated GET.
outbound_authentication:
description: >-
Zero, one or several authentication types can be combined on a single endpoint; for example
OAUTH2 and API_KEY together.
types:
- type: BASIC
fields: [username, password]
- type: USERNAME_PASSWORD
fields: [username, password]
note: For FTP or SFTP targets.
- type: OAUTH2
fields: [clientId, clientSecret, scope, tokenUrl]
note: Client credentials flow only. scope is optional, space-separated for multiples.
- type: API_KEY
fields: [apiKeyHeaderName, apiKey]
note: Header name is configurable rather than fixed.
configuration_fields:
- {name: id, description: 'Unique endpoint name. ERP orders only.'}
- {name: url, description: 'Endpoint URI. http://, https://, ftp:// or sftp://.'}
- {name: multipartContentType, description: 'Override the default multipart/mixed content type.'}
- {name: contentType, description: 'Override the default application/xml content type.'}
- {name: authentications, description: 'Zero, one or several authentication blocks.'}
- {name: headers, description: 'Additional custom HTTP headers as key/value pairs. ERP orders only.'}
- {name: exportStatus, description: 'Invoice export status or statuses. Invoice only.'}
acknowledgement:
required: true
format: cXML Response document
success: ''
failure_example: ''
behaviour: >-
Proactis reads the code attribute of the Status element to mark the delivery in the in-product
widget. On error, the contents of the Status element are displayed there. If no response, or
no valid cXML response, is received the widget shows an error.
gaps:
- >-
NO SIGNATURE VERIFICATION. Proactis authenticates itself to the receiver using credentials the
receiver supplies, but no payload signing, HMAC, shared secret over the body, or mTLS is
documented — so a receiver cannot cryptographically verify that a POST originated from Proactis.
- >-
NO RETRY OR DELIVERY GUARANTEE IS DOCUMENTED. A failed or unacknowledged delivery is surfaced in
a widget for a human to notice. There is no stated retry schedule, no dead-letter behaviour, no
replay endpoint and no delivery log an integration can query.
- >-
NO EVENT CATALOG AND NO ASYNCAPI. The trigger is a document status transition, and for four of
the five document types the triggering status is fixed and not stated in the docs.
- >-
Delivery status is observable only through the in-product widgets, which are a UI surface — an
unattended integration has no programmatic way to learn that its endpoint has been failing.
- >-
ftp:// and http:// are accepted as delivery targets, meaning procurement documents can be
configured to leave the platform unencrypted.