POST
Envoi de notifications en masse
Envoyer des notifications aux clients pour plusieurs commandes en une seule requête.
Point de terminaison
Requête HTTP
POST /v1/orders/notify-bulkAuthentification
Ce point de terminaison nécessite une clé API valide avec la permission
canSendNotifications . La clé API doit être passée dans l'en-tête X-API-Key .En-tête requis
X-API-Key: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCorps de la requête
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
order_ids | string[] | Oui | - | Tableau d'identifiants de commande (UUID par défaut, ou ID de commande Shopify si use_shopify_order_id est true). Pour les ID de commande Shopify, fournir la partie numérique du GID de commande Shopify (par ex., pour 'gid://shopify/Order/450789469', utiliser '450789469'). |
channels | string[] | Oui | - | Canaux de notification à utiliser: "email", "sms", "whatsapp". Au moins un canal est requis pour éviter les notifications en masse accidentelles. |
use_shopify_order_id | boolean | Non | false | Définir à 'true' pour rechercher les commandes en utilisant des ID Shopify au lieu d'UUID. Extraire le numéro du format GID Shopify (gid://shopify/Order/450789469 → 450789469) et l'utiliser dans le tableau order_ids. |
Réponse
Retourne les résultats détaillés des notifications pour chaque commande:
200 OK - Réponse de succès
{
"success": true,
"data": {
"message": "string",
"total_orders": 0,
"results": [
{
"order_id": "string",
"notifications_sent": {
"email": "string",
"sms": "string",
"whatsapp": "string"
}
}
]
}
}Champs de réponse
Objet de réponse racine
| Champ | Type | Description |
|---|---|---|
success | boolean | Toujours true pour une réponse réussie. |
data | object | Charge utile de le point de terminaison. Ses champs sont détaillés dans les tableaux ci-dessous. |
message | string | Message de confirmation |
total_orders | number | Nombre de commandes traitées |
results | array | Tableau des résultats de notification par commande |
Champs d'objet de résultat (par commande)
| Champ | Type | Description |
|---|---|---|
order_id | string | UUID de la commande |
notifications_sent | object | Objet contenant le statut de notification pour chaque canal |
Champs d'objet de notifications envoyées
| Champ | Type | Description |
|---|---|---|
email | string | Statut de notification email: "sent", "skipped", ou "failed" |
sms | string | Statut de notification SMS: "sent", "skipped", ou "failed" |
whatsapp | string | Statut de notification WhatsApp: "sent", "skipped", ou "failed" |
Exemples
Requête de base
Requête cURL
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/notify-bulk" \
-H "X-API-Key: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "X-API-Version: 1.5" \
-H "Content-Type: application/json" \
-d '{"order_ids":["8c1d4e2f-0a53-49b7-b6e4-7f2d9c3a5e10"],"use_shopify_order_id":false,"channels":["email"]}'Utilisation d'ID de commande Shopify
Requête cURL
curl -X POST "https://api.ultimate-custom-order-status.apps.msmtech.ca/api/v1/orders/notify-bulk" \
-H "X-API-Key: ucos_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "X-API-Version: 1.5" \
-H "Content-Type: application/json" \
-d '{
"order_ids": ["5460132438316", "5460132438317", "5460132438318"],
"use_shopify_order_id": true,
"channels": ["email", "sms"]
}'Limitation de débit
Ce point de terminaison est soumis à des limites de débit par minute et par jour en fonction de votre clé API. Les informations de limite de débit sont renvoyées dans les en-têtes de réponse:
X-RateLimit-Limit-Minute: Nombre maximum de requêtes par minuteX-RateLimit-Remaining-Minute: Requêtes restantes dans la minute en coursX-RateLimit-Reset-Minute: Horodatage Unix de réinitialisation de la fenêtre minuteX-RateLimit-Limit-Day: Nombre maximum de requêtes par jourX-RateLimit-Remaining-Day: Requêtes restantes dans le jour en coursX-RateLimit-Reset-Day: Horodatage Unix de réinitialisation de la fenêtre jourRetry-After: Secondes à attendre avant de réessayer (en cas de limitation)
Réponses d'erreur
400 Mauvaise requête
Corps de requête invalide ou échec de validation
400 Mauvaise requête
{
"success": false,
"error": "Validation failed",
"details": {
"errors": [
{
"code": "invalid_type",
"expected": "string",
"received": "undefined",
"path": [
"status_id"
],
"message": "Required"
}
]
}
}401 Non autorisé
Clé API manquante ou invalide
401 Non autorisé
{
"success": false,
"error": "Missing API key. Include it in the X-API-Key header"
}403 Interdit
La clé API manque de permissions requises
403 Interdit
{
"success": false,
"error": "Insufficient permissions. Required: canSendNotifications"
}404 Non trouvé
Aucune commande valide trouvée pour les ID fournis
404 Non trouvé
{
"success": false,
"error": "Order not found"
}500 Erreur interne du serveur
Une erreur du serveur s'est produite
500 Erreur interne du serveur
{
"success": false,
"error": "Internal server error",
"details": {
"message": "An unexpected error occurred"
}
}