The messages defined by the P3 protocol are formatted in
Every message includes the same header fields:
"type": "<message type>",
"tag": "a required tag which will be present in all updates/responses for this request and must be generated by integrator",
specifies a configured
resource for which is the message intended. If there is none the
or can be omitted.
As mentioned, there are four categories of messages:
response messages also include status and error information in the
"type": "error type",
"message": "error message",
"developerMessage": "information which may be useful to the integrating developers"
if the message was processed by the server and correctly executed.
If there was something wrong with the execution, the message status
field is non-null if and only
of the response is
. In some cases, there may still be a
response body to according to the message type; for example, if you
are executing a transaction which failed at a later stage, you can
find the transaction data inside the message body.
The data for each message is embedded in a field with the same
name as the message type, but converted to lowerCamelCase. For
example, if you send a
you should also populate field
in the message JSON
object. Similarly, when the server sends a
you can expect only the
field of the message
to contain the message type specific data.