This is an older version of the Campaign Monitor API. We strongly encourage you to quit livin' in the past and use the shiny new RESTful version with lots of new functionality. You won't regret it.

Client.UpdateAccessAndBilling

Update the access and billing settings of an existing client, leaving the basic details untouched.

Parameters and required information

Here’s a list of all the parameters you’ll need to pass to the Client.UpdateAccessAndBilling method. Only the first three parameters (ApiKey, ClientID, and AccessLevel) are required for all calls. The relevance and necessity of the other parameters depends on the chosen AccessLevel (and BillingType), and will be fully described along with each parameter.

Please note that for reasons of security there is no way to set a client’s credit card details via the API. It will have to be done in the application.

ApiKey
Your API application key. See here for more details.

ClientID
The appropriate clientID. See here for more details.

AccessLevel
An integer describing the client’s ability to access different areas of the application. Influences the significance and requirements of the following parameters. Click here for a full description of available levels.

Username
Client login username. Not required and ignored if AccessLevel is set to 0.

Password
Client login password. Not required and ignored if AccessLevel is set to 0.

BillingType
Client billing type, only required if AccessLevel is set to allow the client to create and send campaigns

Currency
Billing currency for this client, only required if BillingType is set to either ClientPaysAtStandardRate or ClientPaysWithMarkup. See full details.

DeliveryFee
Flat rate delivery fee to be charged to the client for each campaign sent, expressed in the chosen currency’s major unit, but without the currency symbol (for example, sending “6.5” means “$6.50” if USD is used). Only required if BillingType is set to ClientPaysWithMarkup, in which case it should be at least equal to the standard rate. Further detail is available.

CostPerRecipient
Additional cost added to the campaign for each email address the campaign is sent to, expressed in the chosen currency’s minor unit (for example, sending “1.5” means 1.5 cents per email address if USD is used). Only required if BillingType is set to ClientPaysWithMarkup, in which case it should be at least equal to the standard cost/recipient rate. Further detail is available.

DesignAndSpamTestFee
Expressed in the chosen currency’s major unit (for example, sending “10” means “$10” if USD is used). Only required if BillingType is set to ClientPaysWithMarkup and client has access to design and spam tests, in which case the fee should be equal to or higher than the standard rate (identical to the standard DeliveryFee for that currency).

Access Levels

The AccessLevel parameter is an integer which describes the degree to which the client will be allowed to access the web application (via their Username and Password), in addition to whatever functionality the designer provides for them via the API.

Access Level Reports Subscriber Management Subscriber Imports Create/Send Campaigns Campaign Imports Design and Spam Tests
0 No No No No No No
1 Yes No No No No No
2 No Yes No No No No
3 Yes Yes No No No No
5 Yes No No Yes No No
7 Yes Yes No Yes No No
13 Yes No No Yes No Yes
15 Yes Yes No Yes No Yes
18 No Yes Yes No No No
19 Yes Yes Yes No No No
23 Yes Yes Yes Yes No No
31 Yes Yes Yes Yes No Yes
37 Yes No No Yes Yes No
39 Yes Yes No Yes Yes No
45 Yes No No Yes Yes Yes
47 Yes Yes No Yes Yes Yes
55 Yes Yes Yes Yes Yes No
63 Yes Yes Yes Yes Yes Yes

Billing Types

Three different billing types are available for clients with Create/Send access. Brief information is provided below, but please see the help documentation for further detail on how these options work practically. It is important that clients paying for themselves must have credit card details saved in the application before sending through the API will be possible.

UserPaysOnClientsBehalf
All campaigns (and tests if relevant) will be paid for using the designer’s email credits and/or credit card details

ClientPaysAtStandardRate
Campaigns (and tests if relevant) will be paid for using the client’s credit card details at the standard rates for the chosen currency

ClientPaysWithMarkup
Campaigns (and tests if relevant) will be paid for using the client’s credit card details at a marked up rate determined by the designer. The difference between the marked up and standard rates will be paid as profit to the designer at the end of the month.

Currencies

For either of the two client billing types (ClientPaysAtStandardRate and ClientPaysWithMarkup), a currency is required. Five are available:

USD - US Dollars

GBP - Great Britain Pounds

EUR - Euros

CAD - Canadian Dollars

AUD - Australian Dollars

NZD - New Zealand Dollars

Return Codes

Success

0: Success
Client access and billing settings were updated successfully

Error

100: Invalid API Key
The API key pass was not valid or has expired.

102: Invalid ClientID
The ClientID was not valid.

151: Username Taken
The chosen username is already being used, either by the designer or by a client

153: Invalid Access Level
Specified access level does not exist. Click here for a list of valid settings.

158: Username Empty
Chosen username cannot be empty when AccessLevel is non zero.

159: Invalid Password
Password must be at least 5 characters in length.

160: Invalid Billing Type
Specified billing type does not exist. The list is here.

164: Invalid Delivery Fee
Specified delivery fee must be numeric and is required for the selected billing type

165: Invalid Cost/Recipient
Specified cost per recipient must be numeric and is required for the selected billing type

166: Invalid Design and Spam Test Fee
Specified design and spam test fee must be numeric and is required for the selected billing type

167: Invalid Currency Code
Specified currency is invalid and is required for the selected billing type. See the list of available currencies.

168: Delivery Fee Below Minimum
Delivery fees, when required, must be at least equal to the standard rate for the chosen currency.

169: Cost Per Recipient Below Minimum
Cost per recipient, when required, must be at least equal to the standard rate for the chosen currency

170: Markup Rate Too Low
When ClientPaysWithMarkup is chosen, either the delivery rate or cost per recipient must be greater than the standard rate for the selected currency.

171: Design and Spam Test Fee Below Minimum
Design and spam test fee, when required, must be at least equal to the standard campaign rate for that currency.

SOAP 1.1

The following is a sample SOAP request and response. The placeholders shown need to be replaced with actual values.

POST /api/api.asmx HTTP/1.1
Host: api.createsend.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://api.createsend.com/api/Client.UpdateAccessAndBilling"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Client.UpdateAccessAndBilling xmlns="http://api.createsend.com/api/">
      <ApiKey>string</ApiKey>
      <ClientID>string</ClientID>
      <AccessLevel>int</AccessLevel>
      <Username>string</Username>
      <Password>string</Password>
      <BillingType>string</BillingType>
      <Currency>string</Currency>
      <DeliveryFee>string</DeliveryFee>
      <CostPerRecipient>string</CostPerRecipient>
      <DesignAndSpamTestFee>string</DesignAndSpamTestFee>
    </Client.UpdateAccessAndBilling>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Client.UpdateAccessAndBillingResponse xmlns="http://api.createsend.com/api/">
      <Client.UpdateAccessAndBillingResult>
        <Code>int</Code>
        <Message>string</Message>
      </Client.UpdateAccessAndBillingResult>
    </Client.UpdateAccessAndBillingResponse>
  </soap:Body>
</soap:Envelope>

HTTP GET

The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.

GET /api/api.asmx/Client.UpdateAccessAndBilling?ApiKey=string&ClientID=string&AccessLevel=string&Username=string&Password=string&BillingType=string&Currency=string&DeliveryFee=string&CostPerRecipient=string&DesignAndSpamTestFee=string HTTP/1.1
Host: api.createsend.com
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<Result xmlns="http://api.createsend.com/api/">
  <Code>int</Code>
  <Message>string</Message>
</Result>

HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

POST /api/api.asmx/Client.UpdateAccessAndBilling HTTP/1.1
Host: api.createsend.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

ApiKey=string&ClientID=string&AccessLevel=string&Username=string&Password=string&BillingType=string&Currency=string&DeliveryFee=string&CostPerRecipient=string&DesignAndSpamTestFee=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<Result xmlns="http://api.createsend.com/api/">
  <Code>int</Code>
  <Message>string</Message>
</Result>