ship:cards scope, which we grant on request: contact us. The account needs a verified phone number.
1
Get rates
Estimate a shipment with the card ids and your customer’s address. It returns live carrier rates and charges nothing. We store nothing: the address goes to our carrier services, normally Shippo, to get the rates.
2
Create the shipment
Create a shipment with the same cards and address, the rate you chose and a
max_cost, under your own id for the shipment. We quote again and charge the fresh amount, up to max_cost.3
Track it
List shipments and Get a shipment show its status and tracking. With a webhook,
shipment.updated tells you when it moves.What you pay
The carrier’s full rate for the service you pick, plus the premium if you choose insurance. There are no promo codes on a shipment, and no free or subsidized tier.Insurance
Insurance is optional, and you choose it per shipment. To price it, sendcover_amount to Estimate a shipment. Each rate then adds cover_available, insurance_premium and total, the rate plus the premium. To buy it, send the same cover_amount to Create a shipment, with max_cost set to the total you saw:
- How much: any amount from $100 up to
max_cover, which every estimate returns: the value of the cards, capped at $10,000. Outside that you get400 COVER_NOT_ALLOWED. An order worth $100 or less can’t be insured, and itsmax_coverisnull. - Orders worth more than $10,000: cover stops at $10,000, and the rest of the order is uninsured.
- What it costs: the premium our insurer quotes for that service.
max_costapplies to the rate and the premium together. A new quote above it is409 PRICE_CHANGED, and a service with no premium quoted is409 COVER_UNAVAILABLE. Nothing is charged in either case. - What it pays: up to the amount you covered, and never more. You carry any loss above your cover, whether you chose less than the cards are worth or the order is over the cap.
If a parcel is lost or damaged
Contact us with the shipment id. You can’t claim from the insurer yourself, because the policy is tied to our sender details. We file the claim, and we credit your balance when it pays out.Which cards can ship
Up to 10 cards per shipment, all to one address. A card has to be in your vault, and not:
Any refused card is a
409 CARDS_NOT_SHIPPABLE that lists every refused card. A partner’s own goods ship from that partner, not through this API (400 PARTNER_GOODS).
Where you can ship
GET https://catchbackcards.com/api/shipping-countries lists the countries we ship to, with no key. Elsewhere is a 400 COUNTRY_NOT_SUPPORTED.
Outside the US, the address needs a phone number, and a shipment worth more than $2,500 in total can’t ship through the API (400 OVER_CUSTOMS_CAP). Neither can one with a card we have no value for.
Customer addresses
Each shipment carries its customer’s address, because we hold no list of your customers.- Where we keep it: only with the shipment’s order, which is what we buy the label from. It doesn’t go on your account or in your address book. We never ask for your customer’s email address.
- Who sees it: you, through Get a shipment (the list has no addresses, and no event carries any part of one), our staff who fulfill the order, and the carrier services we buy labels through, normally Shippo, which quote and label it.
- Logs: Our partner API doesn’t write the address to our logs.
- How long: we remove the address, phone number and label links 90 days after the shipment closes, or 180 days after it shipped if the carrier never reported an end. An order still waiting to ship keeps its address. After that,
addressisnullandaddress_removedistrue, and the order stays with its cards, cost and tracking.destination_countrystays on the shipment. The carrier services keep their own copies under their own terms. - Your customer hears nothing from us. We don’t email or text them, so tell them about their tracking yourself.
Status
New values can be added, so handle one you don’t know.
Limits
All of them: Rate limits. The address field limits are on Estimate a shipment.
Unconfirmed shipments
Rarely, we can’t tell whether a shipment’s charge went through. You get a500 SHIPMENT_OUTCOME_UNKNOWN with needs_review: true and the shipment_id, and it’s with our team to check. Follow it with Get a shipment, which takes the shipment_id. No event tells you the outcome.
Quote the
shipment_id if you contact us.
