“Invalid signature” error when sending SMS via n8n webhook to OVH API

Hello everyone,

I’m trying to send an SMS through the OVH API from an n8n webhook, but I’m always getting an “Invalid signature” error, even though:

  1. My request payload (URL, headers, and body) looks like this:
    {
    “url”: “https://eu.api.ovh.com/1.0/sms/sms-cc1632275-1/jobs”,
    “headers”: {
    “X-Ovh-Application”: “0000000000000”,
    “X-Ovh-Consumer”: “4b000000000000000000000000”,
    “X-Ovh-Timestamp”: “170000000000000000”,
    “X-Ovh-Signature”: “$1$0000000000000000000000000000000000000”,
    “Content-Type”: “application/json”
    },
    “body”: {
    “charset”: “UTF-8”,
    “class”: “phoneDisplay”,
    “coding”: “7bit”,
    “message”: “Thank you, your number has been confirmed!”,
    “noStopClause”: false,
    “priority”: “high”,
    “receivers”: [“+33600000000”],
    “sender”: “ChristopheC”,
    “senderForResponse”: false,
    “validityPeriod”: 2880
    }
    }

  2. When I compare my output string and the computed signature, everything appears correct.

  3. However, when I use the exact same payload in the OVH API console (OVHcloud API), the SMS is sent successfully.

I created my application credentials via Control panel - OVHcloud following the recommended steps:
To get the Application key, Application secret, consumer key.

Questions:

  • What are common pitfalls when calculating the OVH signature (field ordering, encoding, timestamp, etc.)?
  • How can I troubleshoot this “Invalid signature” error more effectively within n8n?
  • Has anyone integrated the OVH SMS API with n8n and can share their signature configuration?

Thank you in advance for your help!

Hey @Christophe_Chapiteau Welcome to the community!

Just a wild stab in the dark but if you’re using the HTTP node, there is an option which is called “lowercase headers”. This option is turned on default and those affect headers - perhaps turn this option off and see if anything changes?