Status Codes
The following table summarizes the HTTP response codes you may receive from the Primer REST API.Status Code | Description |
---|---|
200 | Success |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Entity Not Found |
409 | Entity Already Exists |
422 | Input Validation Failed |
Error Responses
Primer uses conventional HTTP response codes to indicate the success or failure of an API request. HTTP codes in the2XX
range indicate a successful request, whereas codes in the 4XX
range indicate a failed request usually due to invalid inputs or operations.
The format of the payload for all errors is common. When an unsuccessful request occurs, you will receive a payload in the following format:
errorId
which you can use to identify the error, a human description description
, and a diagnosticsId
that you can quote when contacting the support team (support@primer.io). In case of a badly formed request, Primer will also return additional validationErrors
.
Payment Status
As the payments are created, processed, and finalised, they go through a number of states that you will get as an API response, through webhook notifications, and in the Dashboard. These states are used across all processors, as processor specific states are mapped to these. An additional message, in the fieldprocessorMessage
, from the processor may also be included that details the reason for the state, primarily on failure states.
Status | Description |
---|---|
PENDING | The payment has been created by Primer but not yet authorized. |
FAILED | The processor failed to process this payment. |
AUTHORIZED | The payment is authorized and awaiting capture. |
SETTLING | The payment has been submitted for settlement and funds will be settled later. |
PARTIALLY_SETTLED | The payment has been partially settled. |
SETTLED | Funds have been settled into your account. |
DECLINED | This payment was declined by the processor, either at a gateway or acquirer level. See the reason object in your response payload for more details. |
CANCELLED | The payment was cancelled prior to it being settled. |
Breaking changes
Primer commits to not introducing breaking changes in endpoints or API versions without also introducing a minor API version bump. You can expect endpoints that you’re using to not have breaking changes until you upgrade to another version. However, you should expect non-breaking or additive changes, and we encourage you to design your systems to protect against this possibility. Currently, non-breaking changes can happen inside the same minor API version, and breaking changes cannot. Primer considers breaking changes to be changes that can potentially break an integration. Breaking changes include:- removing an entire operation
- removing or renaming a parameter
- removing or renaming a response field
- adding a new required parameter
- making a previously optional parameter required
- changing the type of a parameter or response field
- removing enum values
- adding a new validation rule to an existing parameter
- changing authentication or authorization requirements
- adding an operation
- adding an optional parameter
- adding an optional request header
- adding a response field
- adding a response header
- adding values to existing enums