Skip to the content

Sandbox

A private test copy of EviPostal for your integration. Use a sandbox key (evp_test_…) and nothing you do is real.

What is different

  • A test carrier answers every request. No parcel is collected, nothing is charged.
  • Sandbox data is kept apart from your business: it never appears in your shipments, reports or money.
  • Every object has environment: "sandbox" and test: true; every answer has EviPostal-Environment: sandbox.
  • A booked test shipment moves along its timeline by itself — picked up, in transit, delivered — and sends webhooks as it goes.
  • Labels are PDFs clearly marked as test labels.

Test a failure on purpose

Start the receiver's street address (to.line1) with one of these words when you ask for rates, then carry on as normal. Anything else succeeds.

Start the street withAffectsWhat happens
MOCK-NO-SERVICERatesNo rates: rates is empty and messages has no_service.
MOCK-INVALID-ADDRESSRatesNo rates: messages has invalid_address.
MOCK-TIMEOUTRatesThe test carrier does not answer: 503 carrier_unavailable (takes the carrier timeout).
MOCK-BOOK-FAILBookingBooking refused: 422 booking_failed. Nothing charged.
MOCK-BOOK-TIMEOUTBooking202 with status booking; EviPostal confirms it later and sends shipment.booked.
MOCK-BOOK-LOSTBooking202 with status booking; EviPostal finds no booking and sends shipment.booking_failed.
MOCK-NO-FUNDSBooking402 insufficient_funds, as a production key with an empty wallet would get.
MOCK-LABEL-LATERLabelThe label stays pending at first: GET label answers 409 label_not_ready.
MOCK-DELAYEDTrackingThe timeline reports a delay: shipment.delayed.
MOCK-PICKUP-FAILTrackingThe carrier cannot collect it: shipment.exception with status delivery_issue.