Difference between revisions of "NATS4 REST API Send Email"

From TMM Wiki
Jump to navigationJump to search
m (updated parameter descriptions and types)
 
(2 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
| show_api_admin_section = true
 
| show_api_admin_section = true
 
}}
 
}}
== '''POST /sendemail''' ==
+
== '''POST /service/sendemail''' ==
 
'''Description'''  
 
'''Description'''  
*The /sendemail api endpoint is a new feature that allows NATS to automatically send emails to [[ct#Member|members]] or [[ct#Affiliate|affiliates]]. The function differentiates between members and affiliates based on whether the email uses a member ID number or login ID number as an argument.
+
*NATS4 supports an API resource to automatically send emails to [[ct#Member|members]] or [[ct#Affiliate|affiliates]]. The function differentiates between members and affiliates based on whether the email uses a member ID or a login ID as an argument.
  
 
'''Resource URL'''
 
'''Resource URL'''
*<nowiki>http://domain/api/v1/sendemail</nowiki>
+
*<nowiki>http://domain/api/service/sendemail</nowiki>
*Replace domain with the nats domain
+
*Replace domain with the NATS domain
  
'''[[NATS4_REST_API_Overview#Allowed_HTTP_Request_Methods|Request Method''']]
+
'''[[NATS4_REST_API_Overview#Allowed_HTTP_Request_Methods|Request Method]]'''
 
*POST
 
*POST
  
Line 21: Line 21:
 
== '''Parameters''' ==
 
== '''Parameters''' ==
  
'''''Paremeters must be sent with the request body. The examples below show the parameters sent as x-www-form-urlencoded'''
+
'''Parameters must be sent with the request body. The examples below show the parameters sent as x-www-form-urlencoded'''
  
This api endpoint will allow you to add option rules by optionid, rule type, loginid, siteid, tourid, programid, billerid, country, start_time, end_time and cascadeid. These are parameters used to specify which option rule you're adding:  
+
This API endpoint will allow you to add option rules by optionid, rule type, loginid, siteid, tourid, programid, billerid, country, start_time, end_time and cascadeid. These are parameters used to specify which option rule you're adding:  
  
 
*subject: The email subject
 
*subject: The email subject
 
**'''''type: string'''''
 
**'''''type: string'''''
**'''''required'''
+
**'''''required'''''
*type: 'member or affiliate'
+
*type: 'member' or 'affiliate'
 
**'''''type: string'''''
 
**'''''type: string'''''
**'''''required'''
+
**'''''required'''''
*template: The name of the template being used for the email.
+
*template: The name of the template being used for the email
**'''''type: integer'''''
+
**'''''type: string'''''
**'''''optional'''
+
**'''''required'''''
*memberid: The ID number if the email type is a Member email. This argument is required to be defined if the email is being sent to a [[ct#Member|member]].
+
*memberid: The member ID, if the email type is a Member email. This argument must be included if the email is sent to a [[ct#Member|member]]
 
**'''''type: integer'''''
 
**'''''type: integer'''''
**'''''required'''
+
**'''''optional'''''
*loginid: The ID number if the email type is an Affiliate email. This argument is required to be defined if the email is being sent to an [[ct#Affiliate|affiliate]]
+
*loginid: The affiliate ID, if the email type is an Affiliate email. This argument must be provided if the email is sent to an [[ct#Affiliate|affiliate]]
 
**'''''type: integer'''''
 
**'''''type: integer'''''
**'''''optional'''
+
**'''''optional'''''
*custom_vars: The ip address
+
*custom_vars: accepts an associative array of additional variables that will be included your email's template variables
**'''''type: string'''''
+
**'''''type: array'''''
**'''''optional'''
+
**'''''optional'''''
*memberidx:  The biller's membership identifier.
+
*memberidx:  The biller's membership identifier
 
**'''''type: string'''''
 
**'''''type: string'''''
**'''''optional'''
+
**'''''optional'''''
  
  
Line 52: Line 52:
 
'''POST'''
 
'''POST'''
  
<nowiki>http://domain/api/v1/sendemail</nowiki>
+
<nowiki>http://domain/api/service/sendemail</nowiki>
  
 
*Response:  
 
*Response:  
Line 68: Line 68:
 
$data = array(
 
$data = array(
 
     'subject' => 'hello',
 
     'subject' => 'hello',
     'type' => 'SHOW',
+
     'type' => 'affiliate',
    'affid' => '1',
 
 
     'template' => 'test',
 
     'template' => 'test',
 
     'loginid' => '1',
 
     'loginid' => '1',
 
);
 
);
  
$url = 'http://domain/api/sendemail';
+
$url = 'http://domain/api/service/sendemail';
  
 
$headers = array(
 
$headers = array(
Line 99: Line 98:
 
import json
 
import json
  
url = 'http://domain/api/sendemail'
+
url = 'http://domain/api/service/sendemail'
  
 
payload = {
 
payload = {
     'subject': 'hello',
+
     'subject' => 'hello',
     'type': 'SHOW',
+
     'type' => 'affiliate',
    'affid': '1',
+
     'template' => 'test',
     'template': 'test',
+
     'loginid' => '1',
     'loginid': '1',
 
 
}
 
}
  
Line 117: Line 115:
 
res = requests.post(url, data=payload, headers=headers)
 
res = requests.post(url, data=payload, headers=headers)
 
print res.text
 
print res.text
 
 
 
</pre>
 
</pre>
  
Line 127: Line 123:
  
 
data =  
 
data =  
     'subject': 'hello',
+
     'subject' => 'hello',
     'type': 'SHOW',
+
     'type' => 'affiliate',
    'affid': '1',
+
     'template' => 'test',
     'template': 'test',
+
     'loginid' => '1',
     'loginid': '1',
 
 
}
 
}
  
 
var options = {
 
var options = {
     url: 'http://domain/api/sendemail',
+
     url: 'http://domain/api/service/sendemail',
 
     method: 'POST',
 
     method: 'POST',
 
     form: data,
 
     form: data,
Line 156: Line 151:
  
 
request(options, callback);
 
request(options, callback);
 
 
 
</pre>
 
</pre>
  
 
'''Curl'''
 
'''Curl'''
 
<pre>
 
<pre>
curl -X POST 'http://domain/api/sendemail' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: tmm1phrvezsbu" -H "Content-Type: application/x-www-form-urlencoded" -d 'subject=hello&type=affiliate&template=test&loginid=1'
+
curl -X POST 'http://domain/api/service/sendemail' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: tmm1phrvezsbu" -H "Content-Type: application/x-www-form-urlencoded" -d 'subject=hello&type=affiliate&template=test&loginid=1'
 
</pre>
 
</pre>
  
 +
== '''Legacy Changes''' ==
 +
'''''Use the following documentation changes if you are using the REST API with NATS versions below <font style="color: red;">4.1.13.5</font>:'''''
 +
 +
'''Resource URL'''
 +
*<nowiki>http://domain/api/sendemail</nowiki>
 +
*Replace domain with your nats domain
 +
 +
'''Parameters'''
 +
*No changes.
  
 
[[Category:NATS4 API Articles]]
 
[[Category:NATS4 API Articles]]

Latest revision as of 21:09, 1 November 2018

NATS 4
Members Admin
The Members Admin
View Member Details
Add Member
MySQL Auth
Mod Authn DB
Multisite Access
Member Logging
Member Password Retrieval
OpenID Connect
Mod Auth OpenIDC
ID Numbers
SOAP API
API
API Best Practices
WSDL Cache
Add Affiliate
Add Member Note
Admin Get Adtools
Adtool Categories
Adtool Types
Affiliate Get Campaigns
Bulk Import Adtools
Caching
Decode Natscode
Expire Manual Member
Get Affiliate Campaigns
Get Affiliate Hit Data
Get Affiliate Loginids
Get Affiliate Nats Codes
Get Affiliate Payout
Get Affiliate Program Campaign List
Get_Affiliate_Program_Campaign_List
Get Member Details
Get Member Instant Upgrade String
Get Member Package Upgrade String
Get Member Token Rebuy String
Get Member Upsell String
Get Payment Data
Get Payvia Rule
Get Profit Loss Report
Ping
Record Member Login
Search Affiliate Info
Search Member Info
Send Email API Function
Set Affiliate Admin Settings
Set Affiliate Customs
Set Affiliate Defaults
Set Affiliate Information
Set Affiliate Settings
Set Member Details
Set Payment Status
Set Payvia Rule
REST API
API Overview
API Best Practices
REST API PATH UPDATES
Adtools
GET /adtools/admin
GET /adtools/categories
GET /adtools/types
POST /adtools/importdump
Affiliate
GET /affiliate/campaigns
GET /affiliate/hitdata
GET /affiliate/payout
GET /affiliate/searchinfo
POST /affiliate/addaffiliate
POST /affiliate/invoice
PATCH /affiliate/setadminsettings
PATCH /affiliate/setcustoms
PATCH /affiliate/setdefaults
PATCH /affiliate/setinformation
PATCH /affiliate/setpayviainfo
PATCH /affiliate/setsettings
PATCH /affiliate/status
Member
GET /member/authstring
GET /member/details
GET /member/searchinfo
GET /suggestedcanceloffers
PATCH /member/setdetails
PATCH /member/setexpiration
POST /member/addnote
POST /member/recordlogin
PUT /member/expiremanual
PATCH /member/forget
Option
GET /option/options
GET /option/rule
PATCH /option/rule
PATCH/option/text
POST /option/rule
Payments
GET /payments/getpayments
GET /payviarule
PATCH /payments/setstatus
PATCH /payviarule
Report
GET /profitlossreport
Get /transactionpayouts
GET /report/transaction
Service
GET /service/decodenatscode
GET /service/ping
POST /service/sendemail

POST /service/sendemail

Description

  • NATS4 supports an API resource to automatically send emails to members or affiliates. The function differentiates between members and affiliates based on whether the email uses a member ID or a login ID as an argument.

Resource URL

  • http://domain/api/service/sendemail
  • Replace domain with the NATS domain

Request Method

  • POST

Response Format

  • JSON

Authentication

  • HTTP headers

Parameters

Parameters must be sent with the request body. The examples below show the parameters sent as x-www-form-urlencoded

This API endpoint will allow you to add option rules by optionid, rule type, loginid, siteid, tourid, programid, billerid, country, start_time, end_time and cascadeid. These are parameters used to specify which option rule you're adding:

  • subject: The email subject
    • type: string
    • required
  • type: 'member' or 'affiliate'
    • type: string
    • required
  • template: The name of the template being used for the email
    • type: string
    • required
  • memberid: The member ID, if the email type is a Member email. This argument must be included if the email is sent to a member
    • type: integer
    • optional
  • loginid: The affiliate ID, if the email type is an Affiliate email. This argument must be provided if the email is sent to an affiliate
    • type: integer
    • optional
  • custom_vars: accepts an associative array of additional variables that will be included your email's template variables
    • type: array
    • optional
  • memberidx: The biller's membership identifier
    • type: string
    • optional


Example Request

POST

http://domain/api/service/sendemail

  • Response:
"SUCCESS"

Example Code

PHP

<?php
$curl = curl_init();

$data = array(
    'subject' => 'hello',
    'type' => 'affiliate',
    'template' => 'test',
    'loginid' => '1',
);

$url = 'http://domain/api/service/sendemail';

$headers = array(
    'api-key: 44b5498dbcb481a0d00b404c0169af62',
    'api-username: tmm1phrvezsbu'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));

$resp = curl_exec($curl);
//dumps an associative array representation of the json
var_dump(json_decode($resp, true));
// Close request to clear up some resources
curl_close($curl);

Python

  • This example requires pip and the request library which can be installed via pip by: 'pip install requests'
import requests
import json

url = 'http://domain/api/service/sendemail'

payload = {
    'subject' => 'hello',
    'type' => 'affiliate',
    'template' => 'test',
    'loginid' => '1',
}


headers = {
        'api-key': '44b5498dbcb481a0d00b404c0169af62',
        'api-username': 'tmm1phrvezsbu'
        }

res = requests.post(url, data=payload, headers=headers)
print res.text

node.js

  • This example requires npm and the request module which can be installed via npm by: 'npm install request'
var request = require('request');

data = 
    'subject' => 'hello',
    'type' => 'affiliate',
    'template' => 'test',
    'loginid' => '1',
}

var options = {
    url: 'http://domain/api/service/sendemail',
    method: 'POST',
    form: data,
    json: true,
    headers: {
        'api-key': '44b5498dbcb481a0d00b404c0169af62',
        'api-username': 'tmm1phrvezsbu'
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
    else{
        console.log(body);
    }

}

request(options, callback);

Curl

curl -X POST 'http://domain/api/service/sendemail' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: tmm1phrvezsbu" -H "Content-Type: application/x-www-form-urlencoded" -d 'subject=hello&type=affiliate&template=test&loginid=1'

Legacy Changes

Use the following documentation changes if you are using the REST API with NATS versions below 4.1.13.5:

Resource URL

  • http://domain/api/sendemail
  • Replace domain with your nats domain

Parameters

  • No changes.