Send Subscription Status
Changed onSends subscription status information to the customer through their preferred communication channel.
This API can only be used for subscriptions with the following statuses:
- Active
- Trialing
- Past due
Delivery channels are automatically selected based on available customer information:
- If customer email is available: Status is sent via email
- If customer phone is available: Status is sent via WhatsApp
- If WhatsApp delivery fails: Status is sent via SMS as a fallback
The status notification includes subscription details such as current status, upcoming payments, and recent changes. If no customer contact information is provided, the system will use the details stored in the subscription record.
Email notifications include contextual action links based on subscription status:
- For past due subscriptions: A link to reactivate the subscription
- For active and trialing subscriptions: A link to update the payment method
You can specify the customer's email or phone number, the preferred communication channel (email or SMS), and the language for the message.
Request
- Base URLhttps://api.monei.com/v1
- AuthAPI key in header Authorization
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Request body
Response
A subscription object
Example response
{
"id": "575bcd84-09fc-4a6e-8c4c-f88b8eb90bfa",
"amount": 110,
"currency": "EUR",
"allowedPaymentMethods": [
"card",
"bizum"
],
"description": "MoonMail Monthly Lite",
"accountId": "aa9333ba-82de-400c-9ae7-087b9f8d2242",
"status": "PENDING",
"priceId": "3c5a1f8e-2b7d-4e9a-9c41-7d2e6b0f5a13",
"productId": "8f2c6d1a-4b3e-4f7a-9d2c-1e5b7a9c3f60",
"customerId": "a4e1d1dd-e0c2-4f7a-a2b1-2b0f1f9b6b1e",
"customer": {
"email": "john.doe@example.com",
"name": "John Doe"
},
"billingDetails": {
"name": "John Doe",
"email": "john.doe@example.com",
"address": {
"country": "ES",
"city": "Málaga",
"line1": "Fake Street 123",
"zip": "1234",
"state": "Málaga"
}
},
"shippingDetails": {
"name": "John Doe",
"email": "john.doe@example.com",
"address": {
"country": "ES",
"city": "Málaga",
"line1": "Fake Street 123",
"zip": "1234",
"state": "Málaga"
}
},
"interval": "month",
"intervalCount": 1,
"pauseIntervalCount": 1,
"skipIntervalCount": 1,
"lastOrderId": "14379133960355",
"lastPayment": {
"id": "af6029f80f5fc73a8ad2753eea0b1be0",
"status": "PENDING",
"statusCode": "E000",
"statusMessage": "Transaction approved"
},
"paymentMethod": {
"method": "card",
"card": {
"country": "ES",
"brand": "visa",
"type": "credit",
"threeDSecureVersion": "2.1.0",
"threeDSecureFlow": "CHALLENGE",
"expiration": 2048544000,
"last4": "0004",
"fingerprint": "7f2afde1566286c5fb126bb7e79bef549755cce6033dc429013c46d1365ff0e9",
"tokenizationMethod": "applePay",
"cardholderName": "John Doe",
"cardholderEmail": "email@example.com"
}
},
"currentPeriodStart": 1636366897,
"currentPeriodEnd": 1636366897,
"trialPeriodEnd": 1636366897,
"trialAmount": 100,
"trialIntervalCount": 3,
"nextPaymentAt": 1636366897,
"retryCount": 1,
"retrySchedule": [
{
"interval": "day",
"intervalCount": 1
},
{
"interval": "day",
"intervalCount": 3
},
{
"interval": "week",
"intervalCount": 1
}
],
"lastProrationAt": 1636366897,
"lastProration": {
"credit": 500,
"charge": 1200,
"net": 700,
"paymentId": "af6029f80f5fc73a8ad2753eea0b1be0"
},
"traceDetails": {
"ip": "100.100.200.100",
"countryCode": "ES",
"lang": "es",
"deviceType": "desktop",
"browser": "Chrome",
"browserVersion": "83.0.4103.116",
"os": "Mac OS",
"osVersion": "10.15.4",
"source": "MONEI/PHP",
"sourceVersion": "0.1.2",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
"browserAccept": "text/html,application/xhtml+xml,application/json",
"browserColorDepth": "24",
"browserScreenHeight": "1152",
"browserScreenWidth": "2048",
"browserTimezoneOffset": "-120",
"userEmail": "user@example.com"
},
"sequenceId": "62b23b9f3627cc38b08ff471ccd313ad",
"callbackUrl": "https://example.com/subscriptions/callback",
"paymentCallbackUrl": "https://example.com/payments/callback",
"metadata": {
"systemId": "12345"
},
"createdAt": 1636366897,
"updatedAt": 1636366897
}Changes
- info
added the optional property
to the response with the status - info
added the optional property
to the response with the status
- info
- info
added the optional property
to the response with the status - info
the
response's property pattern^[a-zA-Z0-9_@./#&+-]{1,40}$was added for the status
- info