Skip to content
MothershipDevelopers

Webhook eventsRebills

Rebill dispute status updated

Sent when a rebill dispute's status changes.

EVENTshipment.rebill.dispute.status.updated
POST to your endpointSigned with HMAC-SHA256Retried for up to 4 daysPermission to read rebills
RequestPOSThttps://your-server.example.com/webhooks/mothership
Content-Type:application/json
X-Mothership-Signature:9990309234882dfcb1c915fb486d3634adfe904553d4f417d8cb9ae2d65321ca
X-Mothership-Delivery-Id:3f6c1a9e-8b2d-4c7a-9e15-2d8b7f4a6c01
{
: "shipment.rebill.dispute.status.updated",
: {
: "MS123456",
: "under-review",
: "info-needed",
: "2026-10-11T09:15:00.000Z",
: {
: "e3b4c2d1-7a6f-4b9e-8c5d-1f2a3b4c5d6e",
: "5b0e7c1a-9f4d-4c8e-a2b6-3d1f8e7a6c40",
: "info-needed",
: "Wasn't performed",
: "Send the signed delivery receipt with in and out times.",
: "2026-10-09T18:22:10.000Z"
},
: {
: "0c9a3f6e-2b7d-4e18-9a5c-7f1d2e4b8a63",
: "MSSR123456",
: "disputed",
: "7012345678",
: 8500,
: 1500,
: 10000,
: "usd",
: "2026-10-22T15:04:05.000Z",
: null,
: [
4 keys
]
}
},
: "2026-10-08T15:04:05.000Z",
: 1,
: 16
}

Hover a key to see what it means. Click it to jump to the field.

Sent on every change to a dispute's status. Watch for newStatus info-needed: Mothership needs more from you, and dispute.infoRequested says what.

When the dispute ends, shipment.rebill.dispute.resolved comes as well. rebill and dispute are read when Mothership sends the event, usually seconds after the change, so they can already show a later step.

Add shipment.rebill.dispute.status.updated to a configuration's subscribedEvents with Create a webhook configuration or in the dashboard. The token needs permission to read rebills. Without it, the request answers 403 MISSING_PERMISSION, and opening or resending these deliveries in the dashboard is refused too. Such a token can still remove the event from a configuration.

Event data

data · 6 keys
  • shipmentIdstring

    The shipment's reference number, such as MS123456. Pass it to Get shipment details.

  • previousStatusstring

    The status before the change.

    under-reviewwith-carrierinfo-neededresolved-approvedresolved-waived-approvedresolved-chargedwithdrawnvoidedWhat each value means →
  • newStatusstring

    The status after the change.

    under-reviewwith-carrierinfo-neededresolved-approvedresolved-waived-approvedresolved-chargedwithdrawnvoidedWhat each value means →
  • statusUpdatedAtstring

    When the change happened, as an ISO 8601 string in UTC. Order events by this, not by when they arrive.

  • disputeobject

    The dispute as it is when Mothership sends the event.

  • rebillobject

    The rebill as it is when Mothership sends the event, named as Retrieve a rebill names it. Call that with rebill.id for what each charge means.

  • eventTypestring

    The event. Always shipment.rebill.dispute.status.updated here. Route on it, and answer 2xx to types you don't handle.

  • sentAtstring

    When Mothership queued the event to send, as an ISO 8601 string in UTC. Every retry and resend carries the same value, so it does not say when this attempt went out.

  • deliveryAttemptinteger

    Which send of this event this is, starting at 1. Resends from the dashboard count too.

  • pendingRetriesinteger

    How many automatic attempts are left if this one fails. 0 on the last one.

Related