From 52240d3435404b57864f724409a772c6c2822ad6 Mon Sep 17 00:00:00 2001 From: "ofego.edafe" Date: Fri, 31 May 2024 15:41:10 +1000 Subject: [PATCH] Updates --- openapi.json | 6 +++--- openapi.yaml | 18 +----------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/openapi.json b/openapi.json index aa88886..f891fa2 100644 --- a/openapi.json +++ b/openapi.json @@ -15,7 +15,7 @@ "x-logo": { "url": "https://messagemedia.com/wp-content/themes/MessageMedia%20Theme/images/logo-mm-sinch.svg" }, - "description": "# Introduction\nThe MessageMedia APIs provide powerful business messaging capabilities across sending, receiving, and processing SMS, MMS, and rich messaging. \n\nAll requests to the MessageMedia REST API must be authenticated, this can either be done using Basic Authentication or by signing with a HMAC signature.\n\n*Note: MMS and TTS are only available in the APAC region.*\n\n\n# Base URI\n \nThe API uses the following base URI\n\nFor EU instance please use https://eu.app.api.sinch.com\n\nFor APAC instance, use https://api.messagemedia.com\n\n# Credentials\n \nTo access the API, an API key and secret are required.\n \n[Sign up for a developer account here to get access](https://developers.messagemedia.com/register/): https://developers.messagemedia.com/register/.\n\n# Features\n### De-Duplication \nDe-Duplication helps you avoid having to undertake data cleansing before commencing send outs. \nIt automatically detects and withholds messages deemed to be duplicates through the use of a 24-hour window – if a message is sent to the same number with the same content within a 24hr period, the subsequent message(s) will be withheld and rejected. To enable this, you don't need to make any changes to your application, just an account configuration change by MessageMedia's support team.\n\n### Social Sending \nSocial Sending permits messages to be sent only during sociable hours - i.e. 8am to 6pm (based on your accounts local time zone - not local time). \nMessages sent outside of these hours are scheduled to be released during the next social time period. This feature helps businesses avoid send-outs during a time that would be deemed unsuitable by the customer. To enable this, you don't need to make any changes to your application, just an account configuration change by MessageMedia's support team.\n\n### Familiar Sender\nFamiliar Sender ensures all communication sent to a customer are from the same phone number. \nThis allows businesses to build trust and familiarity with their customers and not confuse them by changing outgoing numbers. To enable this, you don't need to make any changes to your application, just an account configuration change by MessageMedia's support team.\n\n### Character Converter\nCharacters in a message may not always fall within the GSM-7 supported characterset, and when this occurs all \noutbound messages will be encoded using UCS-2 leading to the customer being double-charged for the SMS. Character Converter \ncan help you avoid being double-charged for your SMS by converting all characters into the GSM-7 format ensuring you always \nget the maximum characters into an SMS. Bear in my mind, this will downgrade all your unicode characters so for instance, \nyour emojis will be translated into a string of unknown characters (eg: �). To enable this, you don't need to make any \nchanges to your application, just an account configuration change by MessageMedia's support team.\n" + "description": "# Introduction\nThe MessageMedia APIs provide powerful business messaging capabilities across sending, receiving, and processing SMS, MMS, and rich messaging. \n\nAll requests to the MessageMedia REST API must be authenticated, this can either be done using Basic Authentication or by signing with a HMAC signature.\n \n# Credentials\n \nTo access the API, an API key and secret are required.\n \n[Sign up for a developer account here to get access](https://developers.messagemedia.com/register/): https://developers.messagemedia.com/register/.\n\n# Features\n### De-Duplication \nDe-Duplication helps you avoid having to undertake data cleansing before commencing send outs. \nIt automatically detects and withholds messages deemed to be duplicates through the use of a 24-hour window – if a message is sent to the same number with the same content within a 24hr period, the subsequent message(s) will be withheld and rejected. To enable this, you don't need to make any changes to your application, just an account configuration change by MessageMedia's support team.\n\n### Social Sending \nSocial Sending permits messages to be sent only during sociable hours - i.e. 8am to 6pm (based on your accounts local time zone - not local time). \nMessages sent outside of these hours are scheduled to be released during the next social time period. This feature helps businesses avoid send-outs during a time that would be deemed unsuitable by the customer. To enable this, you don't need to make any changes to your application, just an account configuration change by MessageMedia's support team.\n\n### Familiar Sender\nFamiliar Sender ensures all communication sent to a customer are from the same phone number. \nThis allows businesses to build trust and familiarity with their customers and not confuse them by changing outgoing numbers. To enable this, you don't need to make any changes to your application, just an account configuration change by MessageMedia's support team.\n\n### Character Converter\nCharacters in a message may not always fall within the GSM-7 supported characterset, and when this occurs all \noutbound messages will be encoded using UCS-2 leading to the customer being double-charged for the SMS. Character Converter \ncan help you avoid being double-charged for your SMS by converting all characters into the GSM-7 format ensuring you always \nget the maximum characters into an SMS. Bear in my mind, this will downgrade all your unicode characters so for instance, \nyour emojis will be translated into a string of unknown characters (eg: �). To enable this, you don't need to make any \nchanges to your application, just an account configuration change by MessageMedia's support team.\n" }, "tags": [ { @@ -76,7 +76,7 @@ }, { "name": "Enterprise Webhooks", - "description": "\nSecuring your webhooks is a two-part process. The first part requires you to use the Signature Key Management API to create a key to sign your requests. \n\nThis will actually generates a key pair - the private key which is used to sign the requests and is stored in MessageMedia's secure datastore and the public key which is used to verify the signature and is stored on your side. \n\nThe second part consists of decrypting the message and verifying the authenticity of the message using the public key created earlier.\n\n*Note: This API is only available in the APAC region.*\n\n\n## Verifying a webhook\n\nThis documentation assumes that you have already created a key pair using the [Signature Key Management API](https://developers.messagemedia.com/code/signature-key-managment-api-documentation/).\n\nOnce you have enabled this feature, all webhooks sent will be signed using the private key created via the Signature Key Management API.\n\n\n## Headers\n\nEvery signed webhook will have the following additional headers:\n * `X-MESSAGEMEDIA-KEY-ID`: The uuid of the key used eg: `628fdf4e-bddc-4029-ae59-f9a84a22165c`\n * `X-MESSAGEMEDIA-CIPHER-TYPE`: Encryption algorithm used for digest encryption eg: `RSA`\n * `X-MESSAGEMEDIA-DIGEST-TYPE`: The algorithm used for digest eg: `SHA256`\n * `X-MESSAGEMEDIA-SIGNATURE`: The encrypted digest value which is base64 encoded. This is the signature you will verify against eg: `YdhajTA1p68BrxtWq0hvupEQxA4eliL2rA0tyN5YyuCsJwdYc0tZ8439nQ3KrQCmnsDCoB024lKv3FKhWrWAQldl6tEqpiaabXqJMRAHTAtSph+4R1O3C0tT8WNVNP6wEYOKoPyg1tI43uXOQ8iC4Xr4pIeXaYNkEosPG5I8ZyoiNjy/FW7rdO/QuxtfYcpBqLOE+MG0lHwNTiXkc+JlG0VHQbRg8TmjtmsJEsvB4KGPLqpPBij9v/1fzEagkyLECN+tAHgZY/xjQbhm3xL0cEbMNouYKpK7lg8vyechlkPX5j4hEJMo4u/+5iOw3EFYGPjA9RnneINB6DhbzGM99A==`\n * `DATE`: Date-Time at which the webhook was sent eg: `Tue, 17 Jul 2018 04:52:31 GMT`\n\n\n## Create the comparison string\n\nTo be able to verify the signature, you need to build a comparison string by combining the following:\n* `Request-Line`: The Request-Line begins with a method token, followed by the Request-URI and the protocol version. This can be found in the first line of the request message. eg: `POST /data HTTP/1.1`\n* `Date`: This Date is the one sent in the header eg: `Tue, 17 Jul 2018 04:52:31 GMT`\n* `Body`: This is the the body of the request that is sent back when the webhook is triggered eg: ```{\"vendor_account_id\":{\"vendor_id\":\"MessageMedia\",\"account_id\":\"MessageMediaM123\"},\"callback_url\":\"https://webhook.site/25f79a05-00cf-4997-a127-c55a889eb97a\",\"delivery_report_id\":\"6737fda5-bb86-4fdb-8b62-d7ea49863801\",\"source_number\":\"+61439123036\",\"date_received\":\"2018-07-26T23:39:25.387Z\",\"status\":\"enroute\",\"delay\":0,\"submitted_date\":\"2018-07-26T23:39:25.382Z\",\"original_text\":\"Hey there!\",\"message_id\":\"a0589035-df10-4f3a-92a5-5beac2d100c3\",\"error_code\":\"101\",\"metadata\":{}}```\n\nThe order of concatentation would be `Request-Line` + `Date` + `Body` without any spaces in between. This order must be maintained to build a valid comparison string. \n\n\n## Verifying using public key\n\nOnce you've created the comparison string, you need to use your public key to verify it against the signature (`X-MESSAGEMEDIA-SIGNATURE`) using RSA and the digest type of your key. \nThe way of doing this can vary depending on the language you are coding in. Below are some suggestions on which built-in functions or libraries you can use for each language:\n* PHP - [Openssl_verify](http://php.net/manual/en/function.openssl-verify.php)\n* Python - [Pycrypto](https://gist.github.com/lkdocs/6519372)\n* Node.js - [Crypto](https://nodejs.org/api/crypto.html#crypto_class_verify)\n* C# - [Bouncy castle](http://www.bouncycastle.org/csharp/)\n* Java - [Signature](https://docs.oracle.com/javase/tutorial/security/apisign/vstep4.html)\n* Ruby - [Verify](http://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/PKey/PKey.html#method-i-verify)\n" + "description": "\nSecuring your webhooks is a two-part process. The first part requires you to use the Signature Key Management API to create a key to sign your requests. \n\nThis will actually generates a key pair - the private key which is used to sign the requests and is stored in MessageMedia's secure datastore and the public key which is used to verify the signature and is stored on your side. \n\nThe second part consists of decrypting the message and verifying the authenticity of the message using the public key created earlier.\n\n## Verifying a webhook\n\nThis documentation assumes that you have already created a key pair using the [Signature Key Management API](https://developers.messagemedia.com/code/signature-key-managment-api-documentation/).\n\nOnce you have enabled this feature, all webhooks sent will be signed using the private key created via the Signature Key Management API.\n\n\n## Headers\n\nEvery signed webhook will have the following additional headers:\n * `X-MESSAGEMEDIA-KEY-ID`: The uuid of the key used eg: `628fdf4e-bddc-4029-ae59-f9a84a22165c`\n * `X-MESSAGEMEDIA-CIPHER-TYPE`: Encryption algorithm used for digest encryption eg: `RSA`\n * `X-MESSAGEMEDIA-DIGEST-TYPE`: The algorithm used for digest eg: `SHA256`\n * `X-MESSAGEMEDIA-SIGNATURE`: The encrypted digest value which is base64 encoded. This is the signature you will verify against eg: `YdhajTA1p68BrxtWq0hvupEQxA4eliL2rA0tyN5YyuCsJwdYc0tZ8439nQ3KrQCmnsDCoB024lKv3FKhWrWAQldl6tEqpiaabXqJMRAHTAtSph+4R1O3C0tT8WNVNP6wEYOKoPyg1tI43uXOQ8iC4Xr4pIeXaYNkEosPG5I8ZyoiNjy/FW7rdO/QuxtfYcpBqLOE+MG0lHwNTiXkc+JlG0VHQbRg8TmjtmsJEsvB4KGPLqpPBij9v/1fzEagkyLECN+tAHgZY/xjQbhm3xL0cEbMNouYKpK7lg8vyechlkPX5j4hEJMo4u/+5iOw3EFYGPjA9RnneINB6DhbzGM99A==`\n * `DATE`: Date-Time at which the webhook was sent eg: `Tue, 17 Jul 2018 04:52:31 GMT`\n\n\n## Create the comparison string\n\nTo be able to verify the signature, you need to build a comparison string by combining the following:\n* `Request-Line`: The Request-Line begins with a method token, followed by the Request-URI and the protocol version. This can be found in the first line of the request message. eg: `POST /data HTTP/1.1`\n* `Date`: This Date is the one sent in the header eg: `Tue, 17 Jul 2018 04:52:31 GMT`\n* `Body`: This is the the body of the request that is sent back when the webhook is triggered eg: ```{\"vendor_account_id\":{\"vendor_id\":\"MessageMedia\",\"account_id\":\"MessageMediaM123\"},\"callback_url\":\"https://webhook.site/25f79a05-00cf-4997-a127-c55a889eb97a\",\"delivery_report_id\":\"6737fda5-bb86-4fdb-8b62-d7ea49863801\",\"source_number\":\"+61439123036\",\"date_received\":\"2018-07-26T23:39:25.387Z\",\"status\":\"enroute\",\"delay\":0,\"submitted_date\":\"2018-07-26T23:39:25.382Z\",\"original_text\":\"Hey there!\",\"message_id\":\"a0589035-df10-4f3a-92a5-5beac2d100c3\",\"error_code\":\"101\",\"metadata\":{}}```\n\nThe order of concatentation would be `Request-Line` + `Date` + `Body` without any spaces in between. This order must be maintained to build a valid comparison string. \n\n\n## Verifying using public key\n\nOnce you've created the comparison string, you need to use your public key to verify it against the signature (`X-MESSAGEMEDIA-SIGNATURE`) using RSA and the digest type of your key. \nThe way of doing this can vary depending on the language you are coding in. Below are some suggestions on which built-in functions or libraries you can use for each language:\n* PHP - [Openssl_verify](http://php.net/manual/en/function.openssl-verify.php)\n* Python - [Pycrypto](https://gist.github.com/lkdocs/6519372)\n* Node.js - [Crypto](https://nodejs.org/api/crypto.html#crypto_class_verify)\n* C# - [Bouncy castle](http://www.bouncycastle.org/csharp/)\n* Java - [Signature](https://docs.oracle.com/javase/tutorial/security/apisign/vstep4.html)\n* Ruby - [Verify](http://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/PKey/PKey.html#method-i-verify)\n" }, { "name": "Signature Key Management", @@ -84,7 +84,7 @@ }, { "name": "Mobile Landing Pages (beta)", - "description": "The mobile landing pages (MLP) API provides the facilities to create mobile landing pages and sends them to recipients. This API is currently in beta. \n\n*Note: This API is only available in the APAC region.*\n \n## Concepts\n\nThe approach to creating mobile landing pages involves creating a _Campaign_ and sending them to one or more _Recipients_. A campaign consists of the baseline configuration of a mobile landing page and message that will be generated and sent to each recipient.\n\n## Parameters\n\nCampaign and Recipients can contain parameters. These parameters are used to customise the generated landing page and the message that is to be sent to each user. Campaign and Recipient parameters are merged to form a complete set when processing a recipient.\n\nWhen resolving parameters sets, Recipient parameters override Campaign parameters with the same name.\n\nParameter names used within the template have an associated type, which will be validated when creating the Campaign or sending it to Recipients. You are free to define additional parameters for your own uses, such as when specifying the message.\n\nThe SMS message that is to be sent to each user is defined at the Campaign level. \n\nThe message itself can consist of parameter references surrounded in `${...}`, for example:\n\n```Hello ${firstName} ${lastName}, this is your message.```\n\n## Sending Mobile Landing Pages \n\nFrom end to end, sending a Mobile Landing Pages involves the following steps: \n\n### Step 1: Create a campaign\n\nChoose a template from the template catalogue, and work out what you are going to specify for the required parameters for that template. You will then use the `Create new campaign` endpoint to create the campaign. The following example \nspecifies the desired parameters for the template_id and sets up a message template:\n\n```\n{\n \"template_id\": \"ac895f01-3149-4bf8-a8fe-01d3b8a9ba97\",\n \"parameters\": {\n \"pageTitle\": \"The page title\",\n \"pageText\": \"The body text\",\n \"imageUrl\": \"https://example.com/image.jpg\",\n \"secondaryImageUrl\": \"https://www.example.com/optional_secondary_image.jpg\",\n \"buttonLink\": \"https://example.com/\",\n \"buttonText\": \"Call to Action Button Text\",\n \"secondaryButtonLink\": \"https://example.com/optional_secondary_button\",\n \"secondaryButtonText\": \"Secondary Call to Action Button\"\n },\n \"message\": {\n \"content\": \"Hello ${firstName} ${lastName}, this is the SMS message body\",\n \"metadata\": {\n \"key\": \"value\"\n }\n }\n}\n```\n\nInside the message content the `{}` curly braces indicate template placeholders. These are the names of the parameters you will need to specify for the message when you send to your recipients.\n\n### Step 2: Send to recipients\n\nUsing the `Send campaign to recipients` endpoint, you can specify the id of your campaign in the path and a array of recipients as the payload. Each recipient will include an E.164 formatted \n(international) phone number, an optional scheduled time, and values of any recipient scoped template parameters you may have created. In the following example the recipients have been scoped with the template parameters above: \n\n```\n{\n \"recipients\": [\n {\n \"number\": \"+6140000000\",\n \"parameters\": { \"firstName\":\"Joe\", \"lastName\",\"Bloe\" }\n },\n {\n \"number\": \"+6141111111\",\n \"parameters\": { \"firstName\":\"Jane\", \"lastName\",\"Doe\" }\n }\n ]\n}\n```\n\n## Landing Page Store\n\nThe Landing Page Store is used by the Hub portal to store landing page templates that have been configured using the visual interface. This means that you can \noptionally use this data store to programatically send landing pages that have been designed and configured in the hub.\n\nIf you have made a landing page in the hub, use the `Get landing pages` endpoint to find the landing pages you have made, along with the template and parameters that have been configured. \nYou will then need to copy those template and parameters into a campaign. \n\n## Template Parameters\n\nEach template will have different required parameters, shown in the Templates section. The following is a description of the requirements of each parameter when included in a template.\n\n| Parameter | Required | Tyep|Description |\n|------------------|-------------|-----------|-----------|\n| imageBackgroundUrl | Optional - depends on MLP template. |image| Width: 750 pixels, height: 1624 pixels, size: less than 300 kB, type: png, gif, or jpg|\n| barcodeValue | Optional - depends on MLP template. |text| Alphanumeric string. We will use CODE-128 format 1-D barcode. |\n| barcodeDisplayValue | Optional - defaults to true. Otherwise, use false |text| Indicates whether the barcode value is shown below the barcode image|\n| barcodeHeight| Optional| text||\n| barcodeMargin| Optional| text||\n| barcodeWidth| Optional| text||\n| barcodeLineColor|Optional - each template has it's own default value| text| Indicate the color of bar code. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| pageText | |html| For personalisation, use the following format: “Hi ${firstName}, thanks for visiting…”|\n| pageTextColor|Optional - each template has it's own default value| text| Indicate the color of page text. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| imageHeaderUrl | Optional - depends on MLP template |image| Width: 750 pixels, height: 375 pixels, size: less than 300 kB, type: png, gif, or jpg.|\n| headline | |text| For personalisation, use the following format: “Hi ${firstName}, thanks for visiting…”. Specifications: 60 characters or less recommended|\n| headlineColor|Optional - each template has it's own default value| text| Indicate the color of headline. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| pageTitle | |text| HTML page title shown on browser tab. Specifications: 60 characters or less recommended.|\n| imageLogoUrl |Optional |image| Specifications: width: 300 pixels, height: 120 pixels, size: less than 300 kB, type: png, gif, or jpg|\n| logoLink | Optional|url| For personalisation, use the following format: “https://example.com/?cid=${customerId}”|\n| primaryButtonLink | |url| For personalisation, use the following format: “https://example.com/?cid=${customerId}”|\n| primaryButtonText | |text| For personalisation, use the following format: “${firstName}, shop now”. Specifications: 36 characters or less recommended |\n| primaryButtonTextColor|Optional - each template has it's own default value| text| Indicate the color of primary button text. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| primaryButtonBackgroundColor|Optional - each template has it's own default value| text| Indicate the background color of primary button. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| secondaryButtonLink | Optional - depends on MLP template |url| For personalisation, use the following format: “https://example.com/?cid=${customerId}”|\n| secondaryButtonText | Optional - depends on MLP template |text| For personalisation, use the following format: “Hi ${firstName}, thanks for visiting…”. Specifications: 36 characters or less recommended |\n| secondaryButtonTextColor|Optional - each template has it's own default value| text| Indicate the color of the secondary button text. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| secondaryButtonBackgroundColor|Optional - each template has it's own default value| text| Indicate the background color of secondary button. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| fontFamilyURL1 | Optional - each template has it's own default value|url| Indicate the url of font family, those font family can be used in other property(eg. `headlineFontFamily`)|\n| fontFamilyURL2 | Optional - each template has it's own default value|url| Indicate the url of font family, those font family can be used in other property(eg. `headlineFontFamily`)|\n| fontFamilyURL3 | Optional - each template has it's own default value|url| Indicate the url of font family, those font family can be used in other property(eg. `headlineFontFamily`)|\n| pageTextFontFamily | |text| Specify the font family of page text |\n| headlineFontFamily | |text| Specify the font family of headline text |\n| buttonFontFamily | |text| Specify the font family of button text |\n\n## Template Catalogue\n\n| Name and preview | Template ID |\n|-------------------|-------------|\n| ![](Https://developers.messagemedia.com/wp-content/templates/Template1.png) | 7614456e-844f-4d83-bdfe-20c17ce0f97c |\n| ![](Https://developers.messagemedia.com/wp-content/templates/Template2.png) | f56b5806-f732-4693-b87a-90b66a7d7bfc |\n|![](Https://developers.messagemedia.com/wp-content/templates/template3.png) | c9d7ce1d-20c4-4228-9ba1-6da2a3b4e5e0 |\n" + "description": "The mobile landing pages (MLP) API provides the facilities to create mobile landing pages and sends them to recipients. This API is currently in beta.\n\n## Concepts\n\nThe approach to creating mobile landing pages involves creating a _Campaign_ and sending them to one or more _Recipients_. A campaign consists of the baseline configuration of a mobile landing page and message that will be generated and sent to each recipient.\n\n## Parameters\n\nCampaign and Recipients can contain parameters. These parameters are used to customise the generated landing page and the message that is to be sent to each user. Campaign and Recipient parameters are merged to form a complete set when processing a recipient.\n\nWhen resolving parameters sets, Recipient parameters override Campaign parameters with the same name.\n\nParameter names used within the template have an associated type, which will be validated when creating the Campaign or sending it to Recipients. You are free to define additional parameters for your own uses, such as when specifying the message.\n\nThe SMS message that is to be sent to each user is defined at the Campaign level. \n\nThe message itself can consist of parameter references surrounded in `${...}`, for example:\n\n```Hello ${firstName} ${lastName}, this is your message.```\n\n## Sending Mobile Landing Pages \n\nFrom end to end, sending a Mobile Landing Pages involves the following steps: \n\n### Step 1: Create a campaign\n\nChoose a template from the template catalogue, and work out what you are going to specify for the required parameters for that template. You will then use the `Create new campaign` endpoint to create the campaign. The following example \nspecifies the desired parameters for the template_id and sets up a message template:\n\n```\n{\n \"template_id\": \"ac895f01-3149-4bf8-a8fe-01d3b8a9ba97\",\n \"parameters\": {\n \"pageTitle\": \"The page title\",\n \"pageText\": \"The body text\",\n \"imageUrl\": \"https://example.com/image.jpg\",\n \"secondaryImageUrl\": \"https://www.example.com/optional_secondary_image.jpg\",\n \"buttonLink\": \"https://example.com/\",\n \"buttonText\": \"Call to Action Button Text\",\n \"secondaryButtonLink\": \"https://example.com/optional_secondary_button\",\n \"secondaryButtonText\": \"Secondary Call to Action Button\"\n },\n \"message\": {\n \"content\": \"Hello ${firstName} ${lastName}, this is the SMS message body\",\n \"metadata\": {\n \"key\": \"value\"\n }\n }\n}\n```\n\nInside the message content the `{}` curly braces indicate template placeholders. These are the names of the parameters you will need to specify for the message when you send to your recipients.\n\n### Step 2: Send to recipients\n\nUsing the `Send campaign to recipients` endpoint, you can specify the id of your campaign in the path and a array of recipients as the payload. Each recipient will include an E.164 formatted \n(international) phone number, an optional scheduled time, and values of any recipient scoped template parameters you may have created. In the following example the recipients have been scoped with the template parameters above: \n\n```\n{\n \"recipients\": [\n {\n \"number\": \"+6140000000\",\n \"parameters\": { \"firstName\":\"Joe\", \"lastName\",\"Bloe\" }\n },\n {\n \"number\": \"+6141111111\",\n \"parameters\": { \"firstName\":\"Jane\", \"lastName\",\"Doe\" }\n }\n ]\n}\n```\n\n## Landing Page Store\n\nThe Landing Page Store is used by the Hub portal to store landing page templates that have been configured using the visual interface. This means that you can \noptionally use this data store to programatically send landing pages that have been designed and configured in the hub.\n\nIf you have made a landing page in the hub, use the `Get landing pages` endpoint to find the landing pages you have made, along with the template and parameters that have been configured. \nYou will then need to copy those template and parameters into a campaign. \n\n## Template Parameters\n\nEach template will have different required parameters, shown in the Templates section. The following is a description of the requirements of each parameter when included in a template.\n\n| Parameter | Required | Tyep|Description |\n|------------------|-------------|-----------|-----------|\n| imageBackgroundUrl | Optional - depends on MLP template. |image| Width: 750 pixels, height: 1624 pixels, size: less than 300 kB, type: png, gif, or jpg|\n| barcodeValue | Optional - depends on MLP template. |text| Alphanumeric string. We will use CODE-128 format 1-D barcode. |\n| barcodeDisplayValue | Optional - defaults to true. Otherwise, use false |text| Indicates whether the barcode value is shown below the barcode image|\n| barcodeHeight| Optional| text||\n| barcodeMargin| Optional| text||\n| barcodeWidth| Optional| text||\n| barcodeLineColor|Optional - each template has it's own default value| text| Indicate the color of bar code. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| pageText | |html| For personalisation, use the following format: “Hi ${firstName}, thanks for visiting…”|\n| pageTextColor|Optional - each template has it's own default value| text| Indicate the color of page text. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| imageHeaderUrl | Optional - depends on MLP template |image| Width: 750 pixels, height: 375 pixels, size: less than 300 kB, type: png, gif, or jpg.|\n| headline | |text| For personalisation, use the following format: “Hi ${firstName}, thanks for visiting…”. Specifications: 60 characters or less recommended|\n| headlineColor|Optional - each template has it's own default value| text| Indicate the color of headline. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| pageTitle | |text| HTML page title shown on browser tab. Specifications: 60 characters or less recommended.|\n| imageLogoUrl |Optional |image| Specifications: width: 300 pixels, height: 120 pixels, size: less than 300 kB, type: png, gif, or jpg|\n| logoLink | Optional|url| For personalisation, use the following format: “https://example.com/?cid=${customerId}”|\n| primaryButtonLink | |url| For personalisation, use the following format: “https://example.com/?cid=${customerId}”|\n| primaryButtonText | |text| For personalisation, use the following format: “${firstName}, shop now”. Specifications: 36 characters or less recommended |\n| primaryButtonTextColor|Optional - each template has it's own default value| text| Indicate the color of primary button text. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| primaryButtonBackgroundColor|Optional - each template has it's own default value| text| Indicate the background color of primary button. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| secondaryButtonLink | Optional - depends on MLP template |url| For personalisation, use the following format: “https://example.com/?cid=${customerId}”|\n| secondaryButtonText | Optional - depends on MLP template |text| For personalisation, use the following format: “Hi ${firstName}, thanks for visiting…”. Specifications: 36 characters or less recommended |\n| secondaryButtonTextColor|Optional - each template has it's own default value| text| Indicate the color of the secondary button text. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| secondaryButtonBackgroundColor|Optional - each template has it's own default value| text| Indicate the background color of secondary button. Use a color name(eg. 'red', 'green'), or a hex value(eg. '#F0F8FF') |\n| fontFamilyURL1 | Optional - each template has it's own default value|url| Indicate the url of font family, those font family can be used in other property(eg. `headlineFontFamily`)|\n| fontFamilyURL2 | Optional - each template has it's own default value|url| Indicate the url of font family, those font family can be used in other property(eg. `headlineFontFamily`)|\n| fontFamilyURL3 | Optional - each template has it's own default value|url| Indicate the url of font family, those font family can be used in other property(eg. `headlineFontFamily`)|\n| pageTextFontFamily | |text| Specify the font family of page text |\n| headlineFontFamily | |text| Specify the font family of headline text |\n| buttonFontFamily | |text| Specify the font family of button text |\n\n## Template Catalogue\n\n| Name and preview | Template ID |\n|-------------------|-------------|\n| ![](Https://developers.messagemedia.com/wp-content/templates/Template1.png) | 7614456e-844f-4d83-bdfe-20c17ce0f97c |\n| ![](Https://developers.messagemedia.com/wp-content/templates/Template2.png) | f56b5806-f732-4693-b87a-90b66a7d7bfc |\n|![](Https://developers.messagemedia.com/wp-content/templates/template3.png) | c9d7ce1d-20c4-4228-9ba1-6da2a3b4e5e0 |\n" } ], "servers": [ diff --git a/openapi.yaml b/openapi.yaml index abd9d43..a16b371 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -16,18 +16,7 @@ info: The MessageMedia APIs provide powerful business messaging capabilities across sending, receiving, and processing SMS, MMS, and rich messaging. All requests to the MessageMedia REST API must be authenticated, this can either be done using Basic Authentication or by signing with a HMAC signature. - - *Note: MMS and TTS are only available in the APAC region.* - - - # Base URI - The API uses the following base URI - - For EU instance please use https://eu.app.api.sinch.com - - For APAC instance, use https://api.messagemedia.com - # Credentials To access the API, an API key and secret are required. @@ -491,9 +480,6 @@ tags: The second part consists of decrypting the message and verifying the authenticity of the message using the public key created earlier. - *Note: This API is only available in the APAC region.* - - ## Verifying a webhook This documentation assumes that you have already created a key pair using the [Signature Key Management API](https://developers.messagemedia.com/code/signature-key-managment-api-documentation/). @@ -552,10 +538,8 @@ tags: - ```Disable an enabled signature key``` Disable the current enabled signature key. - name: Mobile Landing Pages (beta) description: | - The mobile landing pages (MLP) API provides the facilities to create mobile landing pages and sends them to recipients. This API is currently in beta. + The mobile landing pages (MLP) API provides the facilities to create mobile landing pages and sends them to recipients. This API is currently in beta. - *Note: This API is only available in the APAC region.* - ## Concepts The approach to creating mobile landing pages involves creating a _Campaign_ and sending them to one or more _Recipients_. A campaign consists of the baseline configuration of a mobile landing page and message that will be generated and sent to each recipient.