{"id":214408,"date":"2026-10-29T16:18:21","date_gmt":"2026-10-29T16:18:21","guid":{"rendered":"https:\/\/sinch.com\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/"},"modified":"2026-10-29T16:18:21","modified_gmt":"2026-10-29T16:18:21","slug":"migrer-api-sms-xms-vers-api-de-conversation","status":"publish","type":"blog","link":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/","title":{"rendered":"Migrer de l&rsquo;API SMS de Sinch vers l&rsquo;API de conversation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si votre code envoie des requ\u00eates POST \u00e0 <code>https:\/\/us.sms.api.sinch.com\/xms\/v1\/{service_plan_id}\/batches<\/code> ou appelle <code>sms.batches.send<\/code> dans un SDK Sinch, il utilise l&rsquo;API SMS ind\u00e9pendante de Sinch, parfois appel\u00e9e XMS. La fin de commercialisation de l&rsquo;API SMS a eu lieu le 15 avril 2026. Les int\u00e9grations d\u00e9j\u00e0 bas\u00e9es sur celle-ci continuent de fonctionner, mais <a href=\"https:\/\/github.com\/sinch\/sinch-sdk-node#readme\">les nouvelles int\u00e9grations doivent utiliser l&rsquo;API de conversation de Sinch<\/a>, m\u00eame sur un compte qui a d\u00e9j\u00e0 utilis\u00e9 l&rsquo;API SMS. Le <a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/\">API de conversation<\/a> envoie le m\u00eame SMS via le m\u00eame abonnement et le m\u00eame num\u00e9ro, et le m\u00eame format de requ\u00eate couvre le RCS, WhatsApp et les autres canaux. Cet article mappe une int\u00e9gration API SMS vers l&rsquo;API de conversation point par point, \u00e0 l&rsquo;aide de requ\u00eates ex\u00e9cut\u00e9es sur les deux API avec le m\u00eame abonnement. Si vous repartez de z\u00e9ro, <a href=\"https:\/\/sinch.com\/fr\/blog\/envoyer-sms-api-conversation-curl-nodejs-python\/\">Envoyer des SMS avec l&rsquo;API de conversation de Sinch en curl, Node.js et Python<\/a> est la voie la plus rapide.<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-3117\"><p class=\"h5 m-0\" id=\"toc-title-3117\">Table des mati\u00e8res<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#ce-dont-vous-aurez-besoin\">Ce dont vous aurez besoin<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#lier-votre-abonnement-a-une-application-api-de-conversation\">Lier votre abonnement \u00e0 une application API de conversation<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#envoyer-un-message\">Envoyer un message<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#champ-par-champ\">Champ par champ<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#envoyer-a-plusieurs-destinataires\">Envoyer \u00e0 plusieurs destinataires<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#rapports-de-livraison\">Rapports de livraison<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">07<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#messages-entrants\">Messages entrants<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">08<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#migrer-un-flux-a-la-fois\">Migrer un flux \u00e0 la fois<\/a><a class=\"scrollme link-body-color\" href=\"#commencer-par-les-notifications-sortantes\">Commencer par les notifications sortantes<\/a><a class=\"scrollme link-body-color\" href=\"#donner-aux-envois-de-lapi-sms-leur-propre-callback_url-pendant-la-migration\">Donner aux envois de l&rsquo;API SMS leur propre callback_url pendant la migration<\/a><a class=\"scrollme link-body-color\" href=\"#conserver-les-valeurs-de-client_reference-dans-message_metadata\">Conserver les valeurs de client_reference dans message_metadata<\/a><a class=\"scrollme link-body-color\" href=\"#envoyer-a-des-numeros-de-telephone-avec-identified_by\">Envoyer \u00e0 des num\u00e9ros de t\u00e9l\u00e9phone avec identified_by<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">09<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#resolution-de-problemes\">R\u00e9solution de probl\u00e8mes<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">10<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#prochaines-etapes\">Prochaines \u00e9tapes<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">11<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#ressources-complementaires\">Ressources compl\u00e9mentaires<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">Ce dont vous aurez besoin<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Votre abonnement API SMS existant et les num\u00e9ros qui y sont associ\u00e9s<\/li>\n\n\n\n<li>L&rsquo;acc\u00e8s \u00e0 l&rsquo;API de conversation dans le <a href=\"https:\/\/dashboard.sinch.com\">tableau de bord Sinch<\/a> (ouvrez <strong>\u00ab\u00a0Conversation API\u00a0\u00bb<\/strong> (API de conversation) dans le menu de gauche et cliquez sur <strong>\u00ab\u00a0GET ACCESS\u00a0\u00bb<\/strong> (Obtenir l&rsquo;acc\u00e8s) si ce n&rsquo;est pas encore fait)<\/li>\n\n\n\n<li><code>curl<\/code> et <code>jq<\/code> pour les exemples shell, ou Node.js 20 ou version ult\u00e9rieure avec <code>@sinch\/sdk-core<\/code> pour les exemples Node.js<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Lier votre abonnement \u00e0 une application API de conversation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vous n&rsquo;avez pas besoin d&rsquo;un nouveau num\u00e9ro. L&rsquo;API de conversation envoie des SMS via une <strong>application<\/strong>, et le canal SMS de l&rsquo;application pointe vers un abonnement SMS. Pointez-le vers celui que vous poss\u00e9dez d\u00e9j\u00e0.<\/p>\n\n\n    <div data-content-type=\"longform\"  class=\"callout text-body-color px-5 py-6 px-md-6 px-lg-7 py-md-7 longform-spacings rounded-lg bg-sand\" data-theme=\"light\">\r\n\r\n        <div class=\"content-body\"> <p class=\"mb-0\">La liaison modifie la destination des callbacks de l&rsquo;abonnement. Les URL de callback de l&rsquo;abonnement doivent \u00eatre supprim\u00e9es avant de pouvoir le lier. Ensuite, les messages entrants sont dirig\u00e9s vers le webhook de l&rsquo;API de conversation de l&rsquo;application, et les rapports de livraison pour les lots que vous envoyez toujours via l&rsquo;API SMS ne vous parviennent que si le lot d\u00e9finit sa propre <code>callback_url<\/code>. Configurez d&rsquo;abord le webhook de l&rsquo;application et essayez-le sur un abonnement de test avant le passage en production, si vous en avez un.<\/p><\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Les \u00e9tapes\u00a0:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Acc\u00e9dez \u00e0 <strong>\u00ab\u00a0Conversation API\u00a0\u00bb<\/strong> (API de conversation), puis \u00e0 <strong>\u00ab\u00a0Apps\u00a0\u00bb<\/strong> (Applications), et cr\u00e9ez une application dans la m\u00eame r\u00e9gion que votre abonnement. L&rsquo;API de conversation fonctionne aux \u00c9tats-Unis, dans l&rsquo;UE et au Br\u00e9sil. Si votre abonnement se trouve dans une autre r\u00e9gion de l&rsquo;API SMS, comme l&rsquo;Australie ou le Canada, demandez \u00e0 votre responsable de compte Sinch quelle r\u00e9gion de l&rsquo;API de conversation utiliser avant de commencer.<\/li>\n\n\n\n<li>Dans l&rsquo;application, cliquez sur <strong>\u00ab\u00a0SET UP CHANNEL\u00a0\u00bb<\/strong> (Configurer le canal) sur la ligne <strong>SMS<\/strong> et choisissez votre abonnement existant. Si des URL de callback sont configur\u00e9es pour l&rsquo;abonnement, le tableau de bord ne le liera pas tant que vous ne les aurez pas supprim\u00e9es sous <strong>SMS<\/strong>, <strong>\u00ab\u00a0Service APIs\u00a0\u00bb<\/strong> (API de service), <strong>\u00ab\u00a0Callback URLs\u00a0\u00bb<\/strong> (URL de callback). Cela inclut le remplacement de <strong>\u00ab\u00a0Incoming URL\u00a0\u00bb<\/strong> (URL entrante), et pas seulement de <strong>\u00ab\u00a0Default URL\u00a0\u00bb<\/strong> (URL par d\u00e9faut). Configurez le webhook de l&rsquo;application avant de faire cela (voir <a href=\"#delivery-reports\">Rapports de livraison<\/a>), car l&rsquo;abonnement cesse d&rsquo;envoyer des callbacks \u00e0 votre ancien point de terminaison \u00e0 partir de ce moment.<\/li>\n\n\n\n<li>Acc\u00e9dez \u00e0 <strong>Param\u00e8tres<\/strong>, puis \u00e0 <strong>Cl\u00e9s d&rsquo;acc\u00e8s<\/strong>, et cr\u00e9ez une cl\u00e9 d&rsquo;acc\u00e8s. Copiez l&rsquo;ID de la cl\u00e9 et le secret. Le secret ne s&rsquo;affiche qu&rsquo;une seule fois.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Copiez l&rsquo;ID de l&rsquo;application depuis l&rsquo;application et l&rsquo;ID de projet depuis <strong>\u00ab\u00a0Settings\u00a0\u00bb<\/strong> (Param\u00e8tres), <strong>\u00ab\u00a0Project Settings\u00a0\u00bb<\/strong> (Param\u00e8tres du projet). Ceux-ci remplacent l&rsquo;ID d&rsquo;abonnement et le jeton d&rsquo;API dans votre code\u00a0:<\/p>\n\n\n\n<figure tabindex=\"0\" class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>API SMS<\/th><th>API de conversation<\/th><\/tr><\/thead><tbody><tr><td><code>https:\/\/{region}.sms.api.sinch.com<\/code><\/td><td><code>https:\/\/{region}.conversation.api.sinch.com<\/code><\/td><\/tr><tr><td>ID d&rsquo;abonnement dans le chemin d&rsquo;acc\u00e8s<\/td><td>ID de projet dans le chemin d&rsquo;acc\u00e8s, ID d&rsquo;application dans le corps<\/td><\/tr><tr><td>Jeton d&rsquo;API comme jeton au porteur<\/td><td>Cl\u00e9 d&rsquo;acc\u00e8s (ID de cl\u00e9 et secret) \u00e9chang\u00e9e contre un jeton OAuth 2.0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le jeton provient d&rsquo;une requ\u00eate et est valide pendant environ une heure\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-f2775bd0297e4c15dfb4aa1afc0bb657_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-f2775bd0297e4c15dfb4aa1afc0bb657_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-f2775bd0297e4c15dfb4aa1afc0bb657_code_0\" role=\"tabpanel\" aria-labelledby=\"block-f2775bd0297e4c15dfb4aa1afc0bb657_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-f2775bd0297e4c15dfb4aa1afc0bb657_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-f2775bd0297e4c15dfb4aa1afc0bb657_code_0_content\" class=\"language-shell\">\r\n\r\n                                    export SINCH_ACCESS_TOKEN=$(curl --silent --show-error --fail-with-body \\\r\n  https:\/\/auth.sinch.com\/oauth2\/token \\\r\n  --user &quot;$SINCH_KEY_ID:$SINCH_KEY_SECRET&quot; \\\r\n  --data grant_type=client_credentials | jq -r .access_token)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Les SDK demandent et actualisent le jeton pour vous.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Envoyer un message<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Voici un appel typique de l&rsquo;API SMS\u00a0: un destinataire, un rapport de livraison par destinataire et une r\u00e9f\u00e9rence pour associer le rapport \u00e0 une commande.<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-04a6e9e9762d0e44301769e8e1870a54_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-04a6e9e9762d0e44301769e8e1870a54_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-04a6e9e9762d0e44301769e8e1870a54_code_0\" role=\"tabpanel\" aria-labelledby=\"block-04a6e9e9762d0e44301769e8e1870a54_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-04a6e9e9762d0e44301769e8e1870a54_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-04a6e9e9762d0e44301769e8e1870a54_code_0_content\" class=\"language-shell\">\r\n\r\n                                    curl --silent --show-error --fail-with-body \\\r\n  &quot;https:\/\/us.sms.api.sinch.com\/xms\/v1\/$SINCH_SERVICE_PLAN_ID\/batches&quot; \\\r\n  --header &quot;Authorization: Bearer $SINCH_API_TOKEN&quot; \\\r\n  --header &quot;Content-Type: application\/json&quot; \\\r\n  --data &#039;{\r\n    &quot;from&quot;: &quot;+12025550123&quot;,\r\n    &quot;to&quot;: [&quot;+15551234567&quot;],\r\n    &quot;body&quot;: &quot;Your order has shipped&quot;,\r\n    &quot;delivery_report&quot;: &quot;per_recipient&quot;,\r\n    &quot;client_reference&quot;: &quot;order-1042&quot;\r\n  }&#039;\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-055f2d3d69892ff2169c8be504573261_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-055f2d3d69892ff2169c8be504573261_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-055f2d3d69892ff2169c8be504573261_code_0\" role=\"tabpanel\" aria-labelledby=\"block-055f2d3d69892ff2169c8be504573261_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-055f2d3d69892ff2169c8be504573261_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-055f2d3d69892ff2169c8be504573261_code_0_content\" class=\"language-shell\">\r\n\r\n                                    {&quot;body&quot;:&quot;Your order has shipped&quot;,&quot;canceled&quot;:false,&quot;client_reference&quot;:&quot;order-1042&quot;,&quot;created_at&quot;:&quot;2026-10-28T11:57:15.529Z&quot;,&quot;delivery_report&quot;:&quot;per_recipient&quot;,&quot;expire_at&quot;:&quot;2026-10-31T11:57:15.529Z&quot;,&quot;flash_message&quot;:false,&quot;from&quot;:&quot;46765106280&quot;,&quot;id&quot;:&quot;01M615Y8W9CRFH0SVQBS9KVK7F&quot;,&quot;modified_at&quot;:&quot;2026-10-28T11:57:15.529Z&quot;,&quot;to&quot;:[&quot;46706855785&quot;],&quot;type&quot;:&quot;mt_text&quot;}\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Le m\u00eame message avec l&rsquo;API de conversation\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-05dbe981148e0743ca785c5c90dcf7a2_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-05dbe981148e0743ca785c5c90dcf7a2_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-05dbe981148e0743ca785c5c90dcf7a2_code_0\" role=\"tabpanel\" aria-labelledby=\"block-05dbe981148e0743ca785c5c90dcf7a2_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-05dbe981148e0743ca785c5c90dcf7a2_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-05dbe981148e0743ca785c5c90dcf7a2_code_0_content\" class=\"language-shell\">\r\n\r\n                                    curl --silent --show-error --fail-with-body \\\r\n  &quot;https:\/\/us.conversation.api.sinch.com\/v1\/projects\/$SINCH_PROJECT_ID\/messages:send&quot; \\\r\n  --header &quot;Authorization: Bearer $SINCH_ACCESS_TOKEN&quot; \\\r\n  --header &quot;Content-Type: application\/json&quot; \\\r\n  --data &#039;{\r\n    &quot;app_id&quot;: &quot;YOUR_APP_ID&quot;,\r\n    &quot;recipient&quot;: {\r\n      &quot;identified_by&quot;: {\r\n        &quot;channel_identities&quot;: [{ &quot;channel&quot;: &quot;SMS&quot;, &quot;identity&quot;: &quot;+15551234567&quot; }]\r\n      }\r\n    },\r\n    &quot;message&quot;: { &quot;text_message&quot;: { &quot;text&quot;: &quot;Your order has shipped&quot; } },\r\n    &quot;channel_properties&quot;: { &quot;SMS_SENDER&quot;: &quot;+12025550123&quot; },\r\n    &quot;message_metadata&quot;: &quot;order-1042&quot;\r\n  }&#039;\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-628de3b5d94a815f87cb2eddb870ed63_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-628de3b5d94a815f87cb2eddb870ed63_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-628de3b5d94a815f87cb2eddb870ed63_code_0\" role=\"tabpanel\" aria-labelledby=\"block-628de3b5d94a815f87cb2eddb870ed63_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-628de3b5d94a815f87cb2eddb870ed63_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-628de3b5d94a815f87cb2eddb870ed63_code_0_content\" class=\"language-shell\">\r\n\r\n                                    {&quot;message_id&quot;:&quot;01M613S632MAAMWRVFEHPQ4YMA&quot;,&quot;accepted_time&quot;:&quot;2026-10-28T11:19:31.682Z&quot;}\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Quatre \u00e9l\u00e9ments ont chang\u00e9. <code>from<\/code> est devenu la propri\u00e9t\u00e9 de canal <code>SMS_SENDER<\/code>. <code>to<\/code> est devenu un unique <code>recipient<\/code>, avec le nom du canal indiqu\u00e9 \u00e0 c\u00f4t\u00e9 du num\u00e9ro. <code>client_reference<\/code> est devenu <code>message_metadata<\/code>, qui est renvoy\u00e9 dans le rapport de livraison. <code>delivery_report<\/code> a disparu de la requ\u00eate\u00a0: les rapports de livraison proviennent d&rsquo;un webhook sur l&rsquo;application, abord\u00e9 plus loin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La r\u00e9ponse a \u00e9galement chang\u00e9. L&rsquo;API SMS renvoie un lot avec un <code>id<\/code>. L&rsquo;API de conversation renvoie un <code>message_id<\/code> pour le message unique, et c&rsquo;est \u00e0 cet ID que les rapports de livraison font r\u00e9f\u00e9rence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans Node.js, le changement se situe au niveau des options du client et de la m\u00e9thode. Avant, avec l&rsquo;API SMS\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-ba7024f514b2938912f74f046fc51c61_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-ba7024f514b2938912f74f046fc51c61_code_0\" aria-selected=\"true\">\r\n                                Javascript                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-ba7024f514b2938912f74f046fc51c61_code_0\" role=\"tabpanel\" aria-labelledby=\"block-ba7024f514b2938912f74f046fc51c61_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-ba7024f514b2938912f74f046fc51c61_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-Javascript\" tabindex=\"0\">\r\n                                <code id=\"block-ba7024f514b2938912f74f046fc51c61_code_0_content\" class=\"language-Javascript\">\r\n\r\n                                    import { SinchClient } from &quot;@sinch\/sdk-core&quot;;\r\n\r\n\/\/ Before: the standalone SMS API, authenticated with a service plan ID and API token.\r\nconst sinchClient = new SinchClient({\r\n  servicePlanId: process.env.SINCH_SERVICE_PLAN_ID ?? &quot;&quot;,\r\n  apiToken: process.env.SINCH_API_TOKEN ?? &quot;&quot;,\r\n  smsRegion: &quot;us&quot;,\r\n});\r\n\r\nconst batch = await sinchClient.sms.batches.sendTextMessage({\r\n  sendSMSRequestBody: {\r\n    from: &quot;+12025550123&quot;,\r\n    to: [&quot;+15551234567&quot;],\r\n    body: &quot;Your order has shipped&quot;,\r\n    delivery_report: &quot;per_recipient&quot;,\r\n    client_reference: &quot;order-1042&quot;,\r\n  },\r\n});\r\n\r\nconsole.log(`Sent batch ${batch.id}`);\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Apr\u00e8s, avec l&rsquo;API de conversation\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-01f22babb3d7836d8d68d8205908d654_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-01f22babb3d7836d8d68d8205908d654_code_0\" aria-selected=\"true\">\r\n                                Javascript                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-01f22babb3d7836d8d68d8205908d654_code_0\" role=\"tabpanel\" aria-labelledby=\"block-01f22babb3d7836d8d68d8205908d654_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-01f22babb3d7836d8d68d8205908d654_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-Javascript\" tabindex=\"0\">\r\n                                <code id=\"block-01f22babb3d7836d8d68d8205908d654_code_0_content\" class=\"language-Javascript\">\r\n\r\n                                    import { SinchClient } from &quot;@sinch\/sdk-core&quot;;\r\n\r\n\/\/ After: the Conversation API, authenticated with a project ID and access key.\r\nconst sinchClient = new SinchClient({\r\n  projectId: process.env.SINCH_PROJECT_ID ?? &quot;&quot;,\r\n  keyId: process.env.SINCH_KEY_ID ?? &quot;&quot;,\r\n  keySecret: process.env.SINCH_KEY_SECRET ?? &quot;&quot;,\r\n  conversationRegion: &quot;us&quot;,\r\n});\r\n\r\nconst response = await sinchClient.conversation.messages.sendTextMessage({\r\n  sendMessageRequestBody: {\r\n    app_id: process.env.SINCH_APP_ID ?? &quot;&quot;,\r\n    recipient: {\r\n      identified_by: {\r\n        channel_identities: [{ channel: &quot;SMS&quot;, identity: &quot;+15551234567&quot; }],\r\n      },\r\n    },\r\n    message: { text_message: { text: &quot;Your order has shipped&quot; } },\r\n    channel_properties: { SMS_SENDER: &quot;+12025550123&quot; },\r\n    message_metadata: &quot;order-1042&quot;,\r\n  },\r\n});\r\n\r\nconsole.log(`Sent message ${response.message_id}`);\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Les deux utilisent <code>@sinch\/sdk-core<\/code>, vous pouvez donc les ex\u00e9cuter c\u00f4te \u00e0 c\u00f4te dans une m\u00eame base de code pendant que vous migrez les flux. Les exemples omettent la validation des entr\u00e9es pour garder la comparaison lisible. Le <a href=\"https:\/\/sinch.com\/fr\/blog\/envoyer-sms-api-conversation-curl-nodejs-python\/\">requ\u00eate POST d&rsquo;envoi de SMS<\/a> contient la version compl\u00e8te avec des v\u00e9rifications d&rsquo;environnement et la validation des num\u00e9ros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Champ par champ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les champs que la plupart des int\u00e9grations API SMS utilisent et leur nouvel emplacement\u00a0:<\/p>\n\n\n\n<figure tabindex=\"0\" class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Champ de l&rsquo;API SMS<\/th><th>API de conversation<\/th><\/tr><\/thead><tbody><tr><td><code>from<\/code><\/td><td><code>channel_properties.SMS_SENDER<\/code> ou l&rsquo;exp\u00e9diteur par d\u00e9faut de l&rsquo;abonnement<\/td><\/tr><tr><td><code>to<\/code> (tableau)<\/td><td><code>recipient<\/code> (un par requ\u00eate), ou l&rsquo;API Batch pour plusieurs destinataires<\/td><\/tr><tr><td><code>body<\/code><\/td><td><code>message.text_message.text<\/code><\/td><\/tr><tr><td><code>client_reference<\/code><\/td><td><code>message_metadata<\/code>, renvoy\u00e9 dans les rapports de livraison. <code>correlation_id<\/code> est \u00e9galement transmis aux r\u00e9ponses entrantes<\/td><\/tr><tr><td><code>delivery_report<\/code><\/td><td>Un webhook <code>MESSAGE_DELIVERY<\/code> sur l&rsquo;application<\/td><\/tr><tr><td><code>callback_url<\/code><\/td><td><code>callback_url<\/code> dans la requ\u00eate. Le SDK Python l&rsquo;appelle <code>event_destination_target<\/code><\/td><\/tr><tr><td><code>parameters<\/code><\/td><td>API Batch <code>recipient_and_params[].parameters<\/code><\/td><\/tr><tr><td><code>send_at<\/code><\/td><td>API Batch <code>send_after<\/code>, jusqu&rsquo;\u00e0 sept jours \u00e0 l&rsquo;avance<\/td><\/tr><tr><td><code>flash_message<\/code><\/td><td><code>channel_properties.SMS_FLASH_MESSAGE: \"true\"<\/code><\/td><\/tr><tr><td><code>max_number_of_message_parts<\/code><\/td><td><code>channel_properties.SMS_MAX_NUMBER_OF_MESSAGE_PARTS<\/code><\/td><\/tr><tr><td><code>id<\/code> du lot<\/td><td><code>message_id<\/code> par message, ou <code>batch_id<\/code> via l&rsquo;API Batch<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Les valeurs des propri\u00e9t\u00e9s de canal sont des cha\u00eenes de caract\u00e8res, donc <code>SMS_FLASH_MESSAGE<\/code> prend la valeur <code>\"true\"<\/code>, et non <code>true<\/code>. Si vous envoyez des SMS binaires avec <code>type: mt_binary<\/code> et un UDH, consultez la <a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/channel-support\/sms\/properties\">Propri\u00e9t\u00e9s du canal SMS<\/a> pour votre cas d&rsquo;usage avant de migrer ce flux.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Envoyer \u00e0 plusieurs destinataires<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;API SMS accepte jusqu&rsquo;\u00e0 1\u00a0000 num\u00e9ros dans <code>to<\/code> et remplit les <code>parameters<\/code> par destinataire. Sur l&rsquo;API de conversation, <code>messages:send<\/code> prend un seul destinataire. Pour une poign\u00e9e de messages, bouclez sur vos destinataires et envoyez une requ\u00eate pour chacun. Pour une vraie liste, utilisez l&rsquo; <a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/api-reference\/batch-api\">API Batch de conversation<\/a>\u00a0: un message, jusqu&rsquo;\u00e0 1\u00a0000 destinataires, chacun avec ses propres param\u00e8tres.<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-b4d96cfd357919ae8fb7741134d393dd_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-b4d96cfd357919ae8fb7741134d393dd_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-b4d96cfd357919ae8fb7741134d393dd_code_0\" role=\"tabpanel\" aria-labelledby=\"block-b4d96cfd357919ae8fb7741134d393dd_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-b4d96cfd357919ae8fb7741134d393dd_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-b4d96cfd357919ae8fb7741134d393dd_code_0_content\" class=\"language-shell\">\r\n\r\n                                    #!\/usr\/bin\/env bash\r\n# Send one templated SMS to several recipients with the Conversation Batch API.\r\n# Requires SINCH_ACCESS_TOKEN from https:\/\/auth.sinch.com\/oauth2\/token.\r\nset -euo pipefail\r\n\r\n: &quot;${SINCH_ACCESS_TOKEN:?Set SINCH_ACCESS_TOKEN}&quot;\r\n: &quot;${SINCH_PROJECT_ID:?Set SINCH_PROJECT_ID}&quot;\r\n: &quot;${SINCH_APP_ID:?Set SINCH_APP_ID}&quot;\r\n: &quot;${SINCH_SMS_SENDER:?Set SINCH_SMS_SENDER}&quot;\r\nregion=&quot;${SINCH_REGION:-us}&quot;\r\n\r\nbody=$(jq -n \\\r\n  --arg app_id &quot;$SINCH_APP_ID&quot; \\\r\n  --arg sender &quot;$SINCH_SMS_SENDER&quot; \\\r\n  &#039;{\r\n    app_id: $app_id,\r\n    message: { text_message: { text: &quot;Hi ${name}, your order has shipped&quot; } },\r\n    channel_properties: { SMS_SENDER: $sender },\r\n    recipient_and_params: [\r\n      {\r\n        recipient: { identified_by: { channel_identities: [{ channel: &quot;SMS&quot;, identity: &quot;+15551234567&quot; }] } },\r\n        parameters: { name: &quot;Ana&quot; }\r\n      },\r\n      {\r\n        recipient: { identified_by: { channel_identities: [{ channel: &quot;SMS&quot;, identity: &quot;+15557654321&quot; }] } },\r\n        parameters: { name: &quot;Sam&quot; }\r\n      }\r\n    ]\r\n  }&#039;)\r\n\r\ncurl --silent --show-error --fail-with-body \\\r\n  &quot;https:\/\/$region.conversationbatch.api.sinch.com\/v1\/projects\/$SINCH_PROJECT_ID\/messages&quot; \\\r\n  --header &quot;Authorization: Bearer $SINCH_ACCESS_TOKEN&quot; \\\r\n  --header &quot;Content-Type: application\/json&quot; \\\r\n  --data &quot;$body&quot;\r\necho\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-17748d230969cef481e8c0b9de408ec4_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-17748d230969cef481e8c0b9de408ec4_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-17748d230969cef481e8c0b9de408ec4_code_0\" role=\"tabpanel\" aria-labelledby=\"block-17748d230969cef481e8c0b9de408ec4_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-17748d230969cef481e8c0b9de408ec4_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-17748d230969cef481e8c0b9de408ec4_code_0_content\" class=\"language-shell\">\r\n\r\n                                    {&quot;batch_id&quot;:&quot;01M613S8XFQAP5EAX93J9QHX1W&quot;,&quot;send_after&quot;:&quot;2026-10-28T11:19:34Z&quot;}\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">La syntaxe des espaces r\u00e9serv\u00e9s est <code>${name}<\/code>, identique \u00e0 celle des param\u00e8tres de l&rsquo;API SMS. L&rsquo;API Batch poss\u00e8de son propre h\u00f4te, <code>conversationbatch.api.sinch.com<\/code>. Pour planifier le lot, ajoutez <code>send_after<\/code> avec une heure UTC jusqu&rsquo;\u00e0 sept jours \u00e0 l&rsquo;avance. Le message de chaque destinataire obtient son propre <code>message_id<\/code> et son propre rapport de livraison, avec l&rsquo;ID du lot dans les <code>metadata<\/code> du rapport.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Utilisez le chemin d&rsquo;acc\u00e8s <code>\/v1\/<\/code>. Les points de terminaison <code>v1alpha<\/code> et <code>v1beta<\/code> de l&rsquo;API Batch <a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/release-notes\">cesseront de fonctionner le 16 d\u00e9cembre 2026<\/a>, le code \u00e9crit pour ceux-ci doit donc \u00e9galement \u00eatre migr\u00e9 vers <code>\/v1\/<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rapports de livraison<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sur l&rsquo;API SMS, vous d\u00e9finissez <code>delivery_report<\/code> sur chaque lot et obtenez les rapports \u00e0 l&rsquo;URL de callback de l&rsquo;abonnement. Sur l&rsquo;API de conversation, les rapports sont envoy\u00e9s aux webhooks de l&rsquo;application, et vous les choisissez par d\u00e9clencheur. Ajoutez-en un avec <code>MESSAGE_DELIVERY<\/code> pour les rapports et <code>MESSAGE_INBOUND<\/code> pour les r\u00e9ponses\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-98db0e2c2dcc105d591622d3a634c04f_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-98db0e2c2dcc105d591622d3a634c04f_code_0\" aria-selected=\"true\">\r\n                                Shell                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-98db0e2c2dcc105d591622d3a634c04f_code_0\" role=\"tabpanel\" aria-labelledby=\"block-98db0e2c2dcc105d591622d3a634c04f_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-98db0e2c2dcc105d591622d3a634c04f_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-shell\" tabindex=\"0\">\r\n                                <code id=\"block-98db0e2c2dcc105d591622d3a634c04f_code_0_content\" class=\"language-shell\">\r\n\r\n                                    curl --silent --show-error --fail-with-body \\\r\n  &quot;https:\/\/us.conversation.api.sinch.com\/v1\/projects\/$SINCH_PROJECT_ID\/webhooks&quot; \\\r\n  --header &quot;Authorization: Bearer $SINCH_ACCESS_TOKEN&quot; \\\r\n  --header &quot;Content-Type: application\/json&quot; \\\r\n  --data &#039;{\r\n    &quot;app_id&quot;: &quot;YOUR_APP_ID&quot;,\r\n    &quot;target&quot;: &quot;https:\/\/example.com\/sinch\/callbacks&quot;,\r\n    &quot;target_type&quot;: &quot;HTTP&quot;,\r\n    &quot;triggers&quot;: [&quot;MESSAGE_DELIVERY&quot;, &quot;MESSAGE_INBOUND&quot;]\r\n  }&#039;\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Un rapport de livraison se pr\u00e9sente ainsi\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#block-b5b092a82642634b2dc2c141d6532471_code_0\" type=\"button\" role=\"tab\" aria-controls=\"block-b5b092a82642634b2dc2c141d6532471_code_0\" aria-selected=\"true\">\r\n                                Javascript                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"block-b5b092a82642634b2dc2c141d6532471_code_0\" role=\"tabpanel\" aria-labelledby=\"block-b5b092a82642634b2dc2c141d6532471_code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#block-b5b092a82642634b2dc2c141d6532471_code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/sinch.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                                                        <pre class=\"w-100 h-100 m-0 line-numbers language-Javascript\" tabindex=\"0\">\r\n                                <code id=\"block-b5b092a82642634b2dc2c141d6532471_code_0_content\" class=\"language-Javascript\">\r\n\r\n                                    {\r\n  &quot;app_id&quot;: &quot;YOUR_APP_ID&quot;,\r\n  &quot;project_id&quot;: &quot;YOUR_PROJECT_ID&quot;,\r\n  &quot;message_delivery_report&quot;: {\r\n    &quot;message_id&quot;: &quot;01M613S632MAAMWRVFEHPQ4YMA&quot;,\r\n    &quot;conversation_id&quot;: &quot;&quot;,\r\n    &quot;status&quot;: &quot;DELIVERED&quot;,\r\n    &quot;channel_identity&quot;: {\r\n      &quot;channel&quot;: &quot;SMS&quot;,\r\n      &quot;identity&quot;: &quot;46706855785&quot;,\r\n      &quot;app_id&quot;: &quot;&quot;,\r\n      &quot;nrs_data&quot;: { &quot;mcc&quot;: &quot;240&quot;, &quot;mnc&quot;: &quot;07&quot;, &quot;country&quot;: &quot;SE&quot; }\r\n    },\r\n    &quot;contact_id&quot;: &quot;&quot;,\r\n    &quot;metadata&quot;: &quot;order-1042&quot;,\r\n    &quot;processing_mode&quot;: &quot;DISPATCH&quot;\r\n  }\r\n}\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">La liste des statuts est plus courte que celle de l&rsquo;API SMS. Un SMS passe de <code>QUEUED_ON_CHANNEL<\/code> \u00e0 <code>DELIVERED<\/code> ou <code>FAILED<\/code>. Un rapport <code>FAILED<\/code> contient un champ <code>reason<\/code> avec un code et une description expliquant la cause de l&rsquo;\u00e9chec. Votre recherche sur <code>client_reference<\/code> devient une recherche sur <code>metadata<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le num\u00e9ro de t\u00e9l\u00e9phone dans <code>channel_identity.identity<\/code> est renvoy\u00e9 sans le <code>+<\/code> initial, m\u00eame si vous l&rsquo;avez envoy\u00e9 \u00e0 <code>+46706855785<\/code>. L&rsquo;API SMS fait de m\u00eame dans ses rapports, le code qui effectue d\u00e9j\u00e0 une correspondance sur le <code>recipient<\/code> continue donc de fonctionner une fois qu&rsquo;il lit le nouveau champ. <code>contact_id<\/code> et <code>conversation_id<\/code> sont vides car l&rsquo;application s&rsquo;ex\u00e9cute en mode Dispatch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sinch effectue de nouvelles tentatives sur un webhook qui ne renvoie pas de code <code>2xx<\/code>, gardez donc le gestionnaire idempotent\u00a0: utilisez <code>message_id<\/code> et <code>status<\/code> pour ignorer les rapports que vous avez d\u00e9j\u00e0 trait\u00e9s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Messages entrants<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e9ponses \u00e0 votre num\u00e9ro arrivent sur le webhook de l&rsquo;application avec le d\u00e9clencheur <code>MESSAGE_INBOUND<\/code>. Le texte se trouve sous <code>message.contact_message.text_message.text<\/code> et le num\u00e9ro de l&rsquo;exp\u00e9diteur sous <code>message.channel_identity.identity<\/code>. Si votre code pour l&rsquo;API SMS lit <code>body<\/code> et <code>from<\/code> depuis un callback entrant, ce sont les deux chemins \u00e0 modifier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois l&rsquo;abonnement li\u00e9, son URL de callback par d\u00e9faut pointe vers l&rsquo;API de conversation, et les r\u00e9ponses \u00e0 ses num\u00e9ros sont dirig\u00e9es vers le webhook de l&rsquo;API de conversation de l&rsquo;application. Elles apparaissent toujours dans la liste des messages entrants de l&rsquo;API SMS (<code>GET \/xms\/v1\/{service_plan_id}\/inbounds<\/code>), de sorte que le code qui lit cette liste continue de fonctionner pendant la migration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Migrer un flux \u00e0 la fois<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques choix permettent de rendre la migration moins risqu\u00e9e.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Commencer par les notifications sortantes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les notifications unidirectionnelles, telles que les mises \u00e0 jour d&rsquo;exp\u00e9dition et les rappels, n\u00e9cessitent le moins de modifications\u00a0: un envoi et un rapport de livraison. Migrez-les en premier et conservez les flux bidirectionnels sur l&rsquo;API SMS jusqu&rsquo;\u00e0 ce que le webhook soit en place et test\u00e9. Les deux API fonctionnent avec le m\u00eame abonnement pendant que vous effectuez la migration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Donner aux envois de l&rsquo;API SMS leur propre <code>callback_url<\/code> pendant la migration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois l&rsquo;abonnement li\u00e9, son URL de callback par d\u00e9faut appartient \u00e0 l&rsquo;API de conversation. Les rapports de livraison pour les messages que vous envoyez toujours via l&rsquo;API SMS n&rsquo;atteignent pas le webhook de votre application, et l&rsquo;abonnement n&rsquo;a aucune autre URL de callback vers laquelle les envoyer. D\u00e9finissez <code>callback_url<\/code> sur chaque lot de l&rsquo;API SMS n\u00e9cessitant encore des rapports, et ils continueront d&rsquo;arriver \u00e0 votre point de terminaison au format de l&rsquo;API SMS. Vous pouvez \u00e9galement les r\u00e9cup\u00e9rer avec <code>GET \/xms\/v1\/{service_plan_id}\/batches\/{batch_id}\/delivery_report<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conserver les valeurs de <code>client_reference<\/code> dans <code>message_metadata<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si vos rapports, votre base de donn\u00e9es ou un outil de support se basent sur <code>client_reference<\/code>, placez la m\u00eame valeur dans <code>message_metadata<\/code>. Les rapports des deux API correspondront alors aux m\u00eames enregistrements lors de la migration, et aucun \u00e9l\u00e9ment en aval n&rsquo;a besoin de savoir quelle API a envoy\u00e9 le message.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Envoyer \u00e0 des num\u00e9ros de t\u00e9l\u00e9phone avec <code>identified_by<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les nouvelles applications de l&rsquo;API de conversation s&rsquo;ex\u00e9cutent en mode <strong>Dispatch<\/strong>, qui ne stocke pas les contacts. Cela correspond au fonctionnement de l&rsquo;API SMS\u00a0: vous envoyez \u00e0 un num\u00e9ro et obtenez un rapport pour ce num\u00e9ro. L&rsquo;utilisation de <code>identified_by<\/code> avec le num\u00e9ro de t\u00e9l\u00e9phone fonctionne dans les deux modes, vous n&rsquo;avez donc pas \u00e0 modifier votre mod\u00e8le de donn\u00e9es pour effectuer la migration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e9solution de probl\u00e8mes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Erreur <code>404<\/code> de l&rsquo;API de conversation.<\/strong> La r\u00e9gion indiqu\u00e9e dans l&rsquo;URL ne correspond pas \u00e0 celle de l&rsquo;application. L&rsquo;application n&rsquo;est accessible que dans la r\u00e9gion o\u00f9 vous l&rsquo;avez cr\u00e9\u00e9e.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Le canal SMS signale des erreurs.<\/strong> L&rsquo;application et l&rsquo;abonnement doivent se trouver dans la m\u00eame r\u00e9gion. Si elles diff\u00e8rent, recr\u00e9ez l&rsquo;application dans la r\u00e9gion de l&rsquo;abonnement et configurez-y le canal SMS.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Les callbacks n&rsquo;arrivent plus \u00e0 votre ancien point de terminaison.<\/strong> L&rsquo;association a supprim\u00e9 les URL de callback de l&rsquo;abonnement. Pour les messages entrants et les envois via l&rsquo;API de conversation, v\u00e9rifiez que l&rsquo;application poss\u00e8de un webhook avec les d\u00e9clencheurs <code>MESSAGE_DELIVERY<\/code> et <code>MESSAGE_INBOUND<\/code>, et qu&rsquo;il renvoie un code <code>2xx<\/code>. Pour les lots que vous envoyez toujours via l&rsquo;API SMS, d\u00e9finissez <code>callback_url<\/code> sur le lot, comme d\u00e9crit dans <a href=\"#move-one-flow-at-a-time\">Migrer un flux \u00e0 la fois<\/a>. Pour voir vers quoi l&rsquo;abonnement pointe, ouvrez <strong>SMS<\/strong>, <strong>\u00ab\u00a0Service APIs\u00a0\u00bb<\/strong> (API de service), s\u00e9lectionnez l&rsquo;abonnement et regardez sous <strong>\u00ab\u00a0Callback URLs\u00a0\u00bb<\/strong> (URL de callback).<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>L&rsquo;envoi avec <code>contact_id<\/code> \u00e9choue.<\/strong> L&rsquo;application est en mode Dispatch, qui ne stocke pas les contacts. Envoyez plut\u00f4t avec <code>identified_by<\/code> et le num\u00e9ro de t\u00e9l\u00e9phone.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Erreur <code>400<\/code> de l&rsquo;API Batch concernant les param\u00e8tres.<\/strong> Un espace r\u00e9serv\u00e9 dans le message n&rsquo;a pas de valeur pour l&rsquo;un des destinataires. Chaque <code>${name}<\/code> du texte n\u00e9cessite une cl\u00e9 correspondante dans les <code>parameters<\/code> de chaque destinataire.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Prochaines \u00e9tapes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois l&rsquo;application en place, vous pouvez y ajouter le RCS ou WhatsApp, attribuer au destinataire une identit\u00e9 pour chaque canal dans <code>channel_identities<\/code>, lister les canaux dans <code>channel_priority_order<\/code> et vous rabattre sur le SMS pour les destinataires qui n&rsquo;en disposent pas. Le <a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/keyconcepts\">page des concepts cl\u00e9s<\/a> explique le fonctionnement du repli.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ressources compl\u00e9mentaires<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/getting-started\">D\u00e9marrer avec l&rsquo;API de conversation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/channel-support\/sms\/set-up\">Configuration du canal SMS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/channel-support\/sms\/properties\">Propri\u00e9t\u00e9s du canal SMS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/api-reference\/batch-api\">API Batch de conversation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/callbacks\">Callbacks de l&rsquo;API de conversation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/developers.sinch.com\/docs\/conversation\/processing-modes\">Modes de traitement<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sinch.com\/fr\/blog\/envoyer-sms-api-conversation-curl-nodejs-python\/\">Envoyer des SMS avec l&rsquo;API de conversation de Sinch en curl, Node.js et Python<\/a><\/li>\n<\/ul>\n","protected":false},"author":93,"featured_media":214372,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"tags":[],"blog_category":[751],"class_list":["post-214408","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-developpeurs"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Migrer de l&#039;API SMS de Sinch (XMS) vers l&#039;API de conversation<\/title>\n<meta name=\"description\" content=\"Mappez les lots, les rapports de livraison et les messages entrants de l&#039;API SMS de Sinch (XMS) vers l&#039;API de conversation, avec des requ\u00eates avant\/apr\u00e8s dans curl et Node.js.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrer de l&#039;API SMS de Sinch (XMS) vers l&#039;API de conversation\" \/>\n<meta property=\"og:description\" content=\"Mappez les lots, les rapports de livraison et les messages entrants de l&#039;API SMS de Sinch (XMS) vers l&#039;API de conversation, avec des requ\u00eates avant\/apr\u00e8s dans curl et Node.js.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/\" \/>\n<meta property=\"og:site_name\" content=\"Sinch\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/wearesinch\/\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sinch.com\/wp-content\/uploads\/2026\/10\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1296\" \/>\n\t<meta property=\"og:image:height\" content=\"788\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@WeAreSinch\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/\"},\"author\":{\"name\":\"Gunnar Grosch\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#\\\/schema\\\/person\\\/b2bde1c2728a21bc953ea0e129936c08\"},\"headline\":\"Migrer de l\u2019API SMS de Sinch vers l\u2019API de conversation\",\"datePublished\":\"2026-10-29T16:18:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/\"},\"wordCount\":2182,\"publisher\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sinch.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png\",\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/\",\"url\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/\",\"name\":\"Migrer de l'API SMS de Sinch (XMS) vers l'API de conversation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sinch.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png\",\"datePublished\":\"2026-10-29T16:18:21+00:00\",\"description\":\"Mappez les lots, les rapports de livraison et les messages entrants de l'API SMS de Sinch (XMS) vers l'API de conversation, avec des requ\u00eates avant\\\/apr\u00e8s dans curl et Node.js.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sinch.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png\",\"contentUrl\":\"https:\\\/\\\/sinch.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png\",\"width\":1296,\"height\":788,\"caption\":\"A split-flap departure board routing from the SMS API batches endpoint to the Conversation API messages:send endpoint\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/migrer-api-sms-xms-vers-api-de-conversation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sinch.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/sinch.com\\\/fr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Migrer de l\u2019API SMS de Sinch vers l\u2019API de conversation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/sinch.com\\\/fr\\\/\",\"name\":\"Sinch\",\"description\":\"Messagerie SMS, Voix, Email, Vid\u00e9o & API de v\u00e9rification | Sinch\",\"publisher\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sinch.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#organization\",\"name\":\"Sinch\",\"url\":\"https:\\\/\\\/sinch.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sinch.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/Thumbnail-Logo-Honey.png\",\"contentUrl\":\"https:\\\/\\\/sinch.com\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/Thumbnail-Logo-Honey.png\",\"width\":800,\"height\":496,\"caption\":\"Sinch\"},\"image\":{\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/wearesinch\\\/\",\"https:\\\/\\\/x.com\\\/WeAreSinch\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/sinch\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCZZ2u_B2afTxA0v-xcgfsaw\",\"https:\\\/\\\/www.instagram.com\\\/wearesinch\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sinch.com\\\/fr\\\/#\\\/schema\\\/person\\\/b2bde1c2728a21bc953ea0e129936c08\",\"name\":\"Gunnar Grosch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8f177695c01082754db3f0858d534fdaceedba31f74932d7de39991e5e9d7e8d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8f177695c01082754db3f0858d534fdaceedba31f74932d7de39991e5e9d7e8d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8f177695c01082754db3f0858d534fdaceedba31f74932d7de39991e5e9d7e8d?s=96&d=mm&r=g\",\"caption\":\"Gunnar Grosch\"},\"description\":\"Gunnar Grosch is a Principal Developer Advocate at Sinch and an engineer with over 25 years of experience building software, scaling developer communities, and making complex technology accessible. He shares code, insights, and lessons through conference talks, blog posts, and open source.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Migrer de l'API SMS de Sinch (XMS) vers l'API de conversation","description":"Mappez les lots, les rapports de livraison et les messages entrants de l'API SMS de Sinch (XMS) vers l'API de conversation, avec des requ\u00eates avant\/apr\u00e8s dans curl et Node.js.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/","og_locale":"fr_FR","og_type":"article","og_title":"Migrer de l'API SMS de Sinch (XMS) vers l'API de conversation","og_description":"Mappez les lots, les rapports de livraison et les messages entrants de l'API SMS de Sinch (XMS) vers l'API de conversation, avec des requ\u00eates avant\/apr\u00e8s dans curl et Node.js.","og_url":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/","og_site_name":"Sinch","article_publisher":"https:\/\/www.facebook.com\/wearesinch\/","og_image":[{"width":1296,"height":788,"url":"https:\/\/sinch.com\/wp-content\/uploads\/2026\/10\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@WeAreSinch","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#article","isPartOf":{"@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/"},"author":{"name":"Gunnar Grosch","@id":"https:\/\/sinch.com\/fr\/#\/schema\/person\/b2bde1c2728a21bc953ea0e129936c08"},"headline":"Migrer de l\u2019API SMS de Sinch vers l\u2019API de conversation","datePublished":"2026-10-29T16:18:21+00:00","mainEntityOfPage":{"@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/"},"wordCount":2182,"publisher":{"@id":"https:\/\/sinch.com\/fr\/#organization"},"image":{"@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#primaryimage"},"thumbnailUrl":"https:\/\/sinch.com\/wp-content\/uploads\/2026\/10\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png","inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/","url":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/","name":"Migrer de l'API SMS de Sinch (XMS) vers l'API de conversation","isPartOf":{"@id":"https:\/\/sinch.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#primaryimage"},"image":{"@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#primaryimage"},"thumbnailUrl":"https:\/\/sinch.com\/wp-content\/uploads\/2026\/10\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png","datePublished":"2026-10-29T16:18:21+00:00","description":"Mappez les lots, les rapports de livraison et les messages entrants de l'API SMS de Sinch (XMS) vers l'API de conversation, avec des requ\u00eates avant\/apr\u00e8s dans curl et Node.js.","breadcrumb":{"@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#primaryimage","url":"https:\/\/sinch.com\/wp-content\/uploads\/2026\/10\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png","contentUrl":"https:\/\/sinch.com\/wp-content\/uploads\/2026\/10\/SI-Blog-Developers-Migrate-from-sms-xms-api-to-conversation-api-Header.png","width":1296,"height":788,"caption":"A split-flap departure board routing from the SMS API batches endpoint to the Conversation API messages:send endpoint"},{"@type":"BreadcrumbList","@id":"https:\/\/sinch.com\/fr\/blog\/migrer-api-sms-xms-vers-api-de-conversation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sinch.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/sinch.com\/fr\/blog\/"},{"@type":"ListItem","position":3,"name":"Migrer de l\u2019API SMS de Sinch vers l\u2019API de conversation"}]},{"@type":"WebSite","@id":"https:\/\/sinch.com\/fr\/#website","url":"https:\/\/sinch.com\/fr\/","name":"Sinch","description":"Messagerie SMS, Voix, Email, Vid\u00e9o & API de v\u00e9rification | Sinch","publisher":{"@id":"https:\/\/sinch.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sinch.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/sinch.com\/fr\/#organization","name":"Sinch","url":"https:\/\/sinch.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/sinch.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/sinch.com\/wp-content\/uploads\/2024\/09\/Thumbnail-Logo-Honey.png","contentUrl":"https:\/\/sinch.com\/wp-content\/uploads\/2024\/09\/Thumbnail-Logo-Honey.png","width":800,"height":496,"caption":"Sinch"},"image":{"@id":"https:\/\/sinch.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/wearesinch\/","https:\/\/x.com\/WeAreSinch","https:\/\/www.linkedin.com\/company\/sinch","https:\/\/www.youtube.com\/channel\/UCZZ2u_B2afTxA0v-xcgfsaw","https:\/\/www.instagram.com\/wearesinch\/"]},{"@type":"Person","@id":"https:\/\/sinch.com\/fr\/#\/schema\/person\/b2bde1c2728a21bc953ea0e129936c08","name":"Gunnar Grosch","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/8f177695c01082754db3f0858d534fdaceedba31f74932d7de39991e5e9d7e8d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8f177695c01082754db3f0858d534fdaceedba31f74932d7de39991e5e9d7e8d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8f177695c01082754db3f0858d534fdaceedba31f74932d7de39991e5e9d7e8d?s=96&d=mm&r=g","caption":"Gunnar Grosch"},"description":"Gunnar Grosch is a Principal Developer Advocate at Sinch and an engineer with over 25 years of experience building software, scaling developer communities, and making complex technology accessible. He shares code, insights, and lessons through conference talks, blog posts, and open source."}]}},"_links":{"self":[{"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/blog\/214408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/users\/93"}],"version-history":[{"count":0,"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/blog\/214408\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/media\/214372"}],"wp:attachment":[{"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/media?parent=214408"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/tags?post=214408"},{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/sinch.com\/fr\/wp-json\/wp\/v2\/blog_category?post=214408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}