- To make sure it is not sent again
- To give users transparency regarding the status of their documents
Rules
-
If Procuros accepted the transaction and intends to forward it to the receiving Trade Partner, it will respond with a
201: Created
status code. In this case, the document Status field should be set toTRANSMITTED
. -
If Procuros accepted the transaction but does not intend to forward it to the receiving Trade Partner, it will respond with a
202: Accepted
status code. In this case, the document Status field should be set toNO_ACTION
. Possible reason for Procuros not to forward documents:- The trade relationship between the sender (you) and the receiving trade partner is not (yet) active.
- The receiving trade partner is (currently) not accepting documents of this type
-
If Procuros did NOT accept the transaction, it will respond with either a
422: Validation Error
or a400: Bad Request
status code. In this case, the document Status field should NOT be set to make sure the document will be retried the next time you are processing outgoing transactions. The response from Procuros will contain a link to view the error on the Procuros Portal. You can optionally add this link to a “Error URL” field attached to the document you were trying to send, giving users easy access to view and resolve errors. - Only documents that have an empty Status field should be retrieved from the ERP for sending via Procuros.
Retrying Documents
If a document has failed to send to Procuros, as per the rules above it should not be marked with one of these statuses:TRANSMITTED
or NO_ACTION
.
You should instead retry the document until it is able to be handled by Procuros. This should occur by the ERP administrators making changes to the document to resolve why it was not valid.
This is why you must report any errors documents have via the API, in order for Procuros to notify the customer.
Caveats
- Depending on your use case, if you are polling for data very often, you may not want to send a document error every time you poll for data. Instead, you may want to send an error only after a certain number of retries. This is up to you to decide.