application/problem+json
(RFC 9457):
When to retry:
400 Bad Request
invalid_json
The body is not a JSON object.invalid_parameter
A query parameter has an invalid format, for exampleupdated_since without a time zone. The parameter field contains its name.
invalid_cursor
Thecursor value was not issued by this API. Repeat the request without cursor.
invalid_limit
limit is outside the range that this endpoint allows.
invalid_status
Thestatus query parameter of GET /orders is not an order status. POST /orders/{id}/status returns the same code with status 422 if status in the body is not a status that your ERP can report.
invalid_prescription_stage
prescription_stage must be vorab or signed. The sandbox returns this code with status 422 for the request body of POST /sandbox/orders.
invalid_mode
mode must be partial or full.
pharmacy_id_required
GET /inventory requires the pharmacy_id query parameter.
invalid_idempotency_key
Idempotency-Key is longer than 255 characters.
401 Unauthorized
unauthorized
The key is missing, malformed, unknown or revoked, or the account is locked. Send the key asAuthorization: Bearer gj_….
wrong_environment
A test key (gj_test_…) was used in production, or a live key (gj_live_…) in the sandbox.
403 Forbidden
insufficient_scope
The key is valid but does not have the scope this endpoint requires. Ask GO JOE to add the scope.404 Not Found
The API returns the same response for an ID that does not exist and for an ID that belongs to another account.order_not_found
This key cannot access an order with this ID. The API also returns this code after the pharmacy has been removed from your account.pharmacy_not_found
This key cannot access a pharmacy with this ID, or it does not have the required scope for the pharmacy.prescription_not_found
The order does not have a prescription document yet.not_found
The endpoint does not exist in this environment. The simulator endpoints (/sandbox/…) exist in the sandbox only. The sandbox host serves only paths under /api/pharm/v1.
409 Conflict
The request is valid, but the current state does not allow it. Fetch the order to see its current status.not_accepted
The order is not accepted yet. CallPOST /orders/{id}/accept before you report a status.
already_accepted
The order was already accepted with a differenterp_reference. A repeated request with the same erp_reference succeeds.
invalid_transition
The order cannot change from its current status to the reported status, or it can no longer be rejected.detail contains both statuses.
courier_managed_by_gojoe
GO JOE’s courier delivers this order. Reportpacked only. GO JOE sets out_for_delivery and completed.
order_cancelled
The order is cancelled. Do not dispense it.order_rejected
You have rejected this order. The API accepts no further status reports for it, and you can no longer download its prescription.transition_refused
GO JOE could not apply the status.detail contains the reason.
idempotency_in_progress
Another request with the sameIdempotency-Key is still being processed. Retry after Retry-After seconds to receive its result.
full_push_too_small
Themode=full push would mark most articles on sale as sold out, because they are missing from the push. Send the complete catalogue, use mode=partial, or confirm the push with allow_mass_switch_off=true.
already_signed
Sandbox: the prescription is already signed.not_gojoe_courier
Sandbox: courier actions apply to express orders only.not_applicable
Sandbox: the action does not apply to this order, for example an address change on a pick-up order.no_products
Sandbox: the pharmacy has no product for a test order. Push your inventory first.413 Content Too Large
payload_too_large
The request body is larger than 1 MB. Split the push into several requests.422 Unprocessable Content
The body is valid JSON, but a value is not allowed. GO JOE applied nothing.invalid_erp_reference
erp_reference must be 1 to 128 characters.
invalid_tracking
tracking is not an object, or tracking.url is not an https link to a supported carrier. For other carriers, send only tracking.number.
invalid_reason_code
reason_code is not one of the documented values.
invalid_items
One or more inventory items are invalid.errors lists each problem with the item’s position, SKU and field.
too_many_items
The push contains more than 1,000 items.catalogue_limit
The push would exceed the limit of 10,000 SKUs per pharmacy.idempotency_key_reused
ThisIdempotency-Key was already used for a different request. Use a new key for each new request.
invalid_pharmacy
Sandbox:pharmacy_id is not one of your pharmacies.
invalid_fulfilment
Sandbox:fulfilment must be express, shipping or pickup.
invalid_action
Sandbox:action is not a supported value.
sku_not_mapped
Sandbox: GO JOE has not mapped thispharmacy_sku to a product yet.
429 Too Many Requests
rate_limited
Your account sent more requests than its limit allows. The default limit is 120 requests per minute. Wait for the number of seconds inRetry-After. Successful responses contain the headers RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset.
sandbox_order_limit
Sandbox: you have created 200 test orders for this pharmacy in the last 24 hours. Use existing orders or wait.500 Internal Server Error
internal_error
An error occurred at GO JOE. Retry with increasing waiting times. If the error persists, send therequest_id to GO JOE.