Tradedoubler Advertiser Management API

Nick Morris advertiserwip
Help

Apiary Powered Documentation

Sign in with Apiary account.

Tradedoubler Advertiser Management API

Introduction

Tradedoubler is an Affiliate Marketing Network, connecting various advertising brands with our network of publishing websites. Tradedoubler's platform manages this relationship between advertisers and publishers. This documentation relates to the Advertiser API, which allows brands or advertisers to manage their programs on Tradedoubler's platform.

Changelog

2021-08-19 Endpoints changed in this release:

  • GET /events

  • POST /events

  • PUT /events

Events

When creating a lead or sale event, we automatically create a corresponding impression based event (i.e. for when there is no click we assign the conversion to an impression and then track using the referencing impression conversion event). We have added the referencing iLead or iSales event to leads and sales event.

2021-08-05

Endpoints changed in this release:

  • GET /transactions

  • GET /transactions/export

  • GET /users/me

  • PUT /users/me

Transactions

We have included an option to filter by datetime by adding time to toDate and fromDate, this can apply to timeOfTransaction or timeOfLastModified. Time is optional and if not supplied, we assume 00:00:00 for fromDate and 23:59:59 for toDate.

Transactions export

We have included an option to filter by datetime by adding time to toDate and fromDate, this can apply to timeOfTransaction or timeOfLastModified. Time is optional and if not supplied, we assume 00:00:00 for fromDate and 23:59:59 for toDate.

Update Account

We have included an endpoint to update your account details.

User currency preferences

All users can now specify their prefered currency, this will be used in the UI to default currency for dashboards and reports.

2021-07-30

Endpoints changed in this release:

  • GET /transactions

  • GET /transactions/export

Transactions

We have included an optional lastModified: When enabled, this applies the date range to the date the transaction was last modified rather than the time the of transaction.

Transactions export

We have included an optional lastModified: When enabled, this applies the date range to the date the transaction was last modified rather than the time the of transaction.

2021-03-23

Endpoints changed in this release:

  • DELETE /programs/{programId}

Close Program

We have introduced a new endpoint which will close an existing program

2021-03-09

Endpoints changed in this release:

  • GET /pendingSales

  • GET /programs/{programId}/sources

  • POST /programs/{programId}/commissions

PendingSales

We have improved performance on pendingSales endpoint, as a result we have removed the field "queuedForProcess"

Program Sources

We have added more meta data for program sources, this will help with validation of affiliate applications. The fields are: sourceUrl, promotionTypeId and promotionTypeName

Program Commissions

We have fixed a bug where commissions could not be added for untracked sales events (event id 17)

2020-12-15

Endpoints changed in this release:

  • GET /dashboard

Dashboard

We have added metrics for Unique Visitors, impression Leads and Impression Sales as well daily breakdown and commission for Impression Leads and Sales.

Authentication

Authentication against the API is handled by oAuth 2.0 using bearer tokens. Once you have authentication using the oauth endpoint, all requests require a bearer token sent via the Authorization header as per the following format:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZHVzZXIiOiIzYWY2MDIyZDlmZjQ2NjcxNTEwOWY1OWQ2Yjc4MDI0YjI0NzA1Y2RiYzRhNDJkODkxMGNhNmZkYjBhN2RkNzE5ODJkNDdhNTQwN2FjNTQxYTAyZDczOTRmMmQxZmI5ODI1NTRhYjRjNWE2OTAyMjQ3NGEwZDczNDY5M2ZjMmEzMDgzYTI0MzBkYzI4OTU4ZDI2MmQ5OGZiOTBhYzk1Yjc3YTMyMmViOTM0NDdiMzFlMzY2YWU3ZTlmNzM0M2NmM2NhM2I5ZWVkNzQzYTc5Y2JmY2EyYzQzMmE0YWIxMGU5MTU2YzFlYzQxZTVmNzBjZmIwMzZiMDE5MmQ1ZTllYjQ5OGRmNzMzZDNlZWVmYTIxNDM4YjE2NGRhOTgyYjVjYmIxM2ZhMzgyMzY5NzlkZTllMTQwNWJhYTY0YWRjYmQzNTllZGM5NjcyZWVkY2MxN2IyMzY0MTU5ZmNkOWFmMzFhMDYyMWM2MmQwYzEyMGM0Y2YyOWFiNzAwYWRmNWYzMWI0YTNmN2M5NDgxNDE4M2UxM2YwODIwZmE0ZmFkMDM5NiIsInVzZXJfbmFtZSI6InVrQHRyYWRlZG91Ymxlci5jb20iLCJjcmVhdGVkIjoxNTQ5OTc3MDE3LCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTU0OTk3NzkxNywiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjA2OGU4YTllLTc4ZjUtNDdkNy1iMjU1LWU1YmZmZjExYWM4OCIsImNsaWVudF9pZCI6InRkY29ubmVjdF9wdWJsaXNoZXIifQ.cN_ose-fMtxGbVN27Yg2Sotc4zz4oLLVkyZHvCvj0zs

You will need a valid Client ID and Secret code before you can use the API. You will need to retrieve this through the Tradedoubler API Client UI. For more information see oAuth Section

Response Formats

The reponse format for all API requests is JSON. All requests should therefore contain the following header:

Content-Type: application/json

Rate Limiting

To ensure system stability we apply limits to the number of API requests allowed by API Clients. This is limited to 60 requests per minute. If you exceed this you will receive the a HTTP 429 Too Many Requests Status Error with the response body:

API rate limit exceeded

Please wait another minute and you will be able to make API requests again.

Paging

To handle large results and to optimise performance of our API we use paginatation on a number of our endpoints to reduce the size of results returned to the client. All endpoints supporting pagination will return 2 attributes:

  • offset

  • limit

To page through the results you need to supply two fields within the body of your GET request:

Paramater Description Details
offset Offset the results by a specified amount Integer, default is 0
limit Limit the number of results to be returned Integer, default is 20, maxmium limit is 100 unless specified

For example:

  • If the limit is default at 20 and an endpoint produces 100 results, only the first 20 will be returned (results 0 to 19).

  • In order to retrieve the remaining results, use the offset parameter. In this example, adding offset=20 to the query string parameters.

  • Results begin at offset 0. If you're retrieving a report with limit=20, page 2 will begin at offset=20, page 3 at offset=40, page 4 at offset=60, etc.

Roles

Advertiser users can be given one of four roles. This determines which endpoints they can access.

User Management

Method URL Owner Admin Member Read-only
GET /users/me
PUT /users/me
PUT /users/me/password
GET /users/me/password/reset
PUT /users/me/password/reset
POST /users/me/password/reset
GET /users
POST /users
GET /users/{logonAccountId}
PUT /users/{logonAccountId}
DELETE /users/{logonAccountId}

Account Management

Method URL Owner Admin Member Read-only
GET /ads
PUT /ads
POST /ads
DELETE /ads
GET /programs
POST /programs
GET /programs/{programId}
PUT /programs/{programId}
GET /programs/{programId}/advanced
PUT /programs/{programId}/advanced
GET /programs/{programId}/commissions
POST /programs/{programId}/commissions
GET /programs/{programId}/segments
PUT /programs/{programId}/segments
POST /programs/{programId}/segments
GET /programs/{programId}/sources
PUT /programs/{programId}/sources✔
GET /events
PUT /events
POST /events
GET /tokens
POST /tokens
GET /salesPending
PUT /salesPending
GET /invoices
GET /invoices/{invoiceId}
GET /sources
GET /sources/{sourceId}
POST /sources/apply

Reporting

Method URL Owner Admin Member Read-only
GET /statistics
GET /statistics/export
GET /transactions
GET /transactions/export
GET /dashboard
GET /dashboard/programs
GET /dashboard/sources

Reference

oAuth 2.0


Bearer and Refresh Token

Tradedoubler APIs use oAuth2 authentification with refreshTokens. All requests must be validated with a bearerToken in the header request.

Only use oAuth2 credentials when you don't already have a refresh token!

Client Credentials

To use our APIs you will need to create a client which provides a ClientId and ClientSecret. The client is required to generate a bearer token which is used on all subsequent API requests to validate your account and role. You can create your API client using our tool at the following URL: https://solutions.tradedoubler.com/tools/api-client

Your clientSecret is only shown once when you create a new client. If you do not know your clientSecret you must delete and recreate the client in the API Client UI!


Bearer token

To generate a bearer token you need to send a POST request to the oauth endpoint with your username and password. All requests have to be signed with an Authorization generated by a valid ClientID and ClientSecret in the Header:

Authorization: Basic U3dhZ3dsciByb2Nrcw== 

Where U3dhZ3dsciByb2Nrcw== is Base64 encoding of ClientID and ClientSecret base64encoded(ClientID:ClientSecret)

Refresh Token

To refresh a token you need to send a POST request to the oauth endpoint with the refresh token received in the response when generating a bearer token. All requests have to be signed with an Authorization generated by a valid ClientID and ClientSecret in the Header:

Authorization: Basic U3dhZ3dsciByb2Nrcw== 

Where U3dhZ3dsciByb2Nrcw== is Base64 encoding of ClientID and ClientSecret base64encoded(ClientID:ClientSecret)

Users


Users have access to Advertiser Organization and have four roles available: Owner, Admin, Write, Read. An Advertiser Organization always has one user with the role owner. This service allows the creation and management of users for the Advertiser Organization.

My User

A User is an individual logon account connected to a Publisher organization.

Get My User Details

Get details related to current logged in user. This is available for any role.

Response
object
  • logonAccountId
    Logon ID of the user
    number
    1234567
  • username
    username for login
    string
    user123
  • firstName
    string
    A
  • lastName
    string
    User
  • email

    user's email address

    string
    user@tradedoubler.com
  • roleId

    Role ID of user, 1 = Owner, 2 = Admin, 3 = Member, 4 = Read-only

    number
    1
  • languageId

    2 Character language code of user (ISO 639-1)

    string
    en
  • organizationId
    Organization ID of the Publisher the user belongs to
    number
    1234567
  • owningOrganizationId

    When Publisher is in a private network, the ID of the private network organization

    number
    0
  • countryAccess

    array of countries the user should have access to. Countries should be ISO_3166-1 Alpha-2

    array[string]
  • newsletter
    Y or N if the user should receive newsletters from Tradedoubler
    string
    Y
  • typeId

    User type, if a publisher or advertiser. Advertiser typeId is always 2

    number
    2
  • personId
    Person ID of the user
    number
    123456
  • reportCurrencyCode

    3 character currency code (ISO 4217)

    string
    EUR

Update My User Information

Update details related to current logged in user. This is available for any role.

Request
object
  • username
    username for login
    string
    user123
  • firstName
    string
    A
  • lastName
    string
    User
  • email

    user's email address

    string
    user@tradedoubler.com
  • languageId

    2 Character language code of user (ISO 639-1)

    string
    en
  • newsletter

    newsletter preferences, Y to receive, N to opt-out

    string
    Y
  • reportCurrencyCode

    3 character currency code (ISO 4217)

    string
    EUR

Users

List Users

Provides a list of all users connected to the Publisher Organization. This is only available for the user with the role Owner.

Create a user

Create a new user for a Publisher Organization.

Request
object
  • username
    username for login
    string
    user123
  • firstName
    string
    A
  • lastName
    string
    User
  • email

    user's email address

    string
    user@tradedoubler.com
  • roleId

    Role ID of user, 1 = Owner, 2 = Admin, 3 = Member, 4 = Read-only

    number
    1
  • password

    user's password

    string
    aUn1queP@ssword
  • languageId

    2 Character language code of user (ISO 639-1)

    string
    en
  • countryAccess

    array of countries the user should have access to. Countries should be ISO_3166-1 Alpha-2.

    array[string]
  • newsletter
    Y or N if the user should receive newsletters from Tradedoubler
    string
    Y
  • reportCurrencyCode

    3 character currency code (ISO 4217)

    string
    EUR

User By Id

Get a specific User

Provides information for a specific user based on their logonAcccountId. This is only available for the user with the role Owner.

Request
object
  • logonAccountId
    Logon ID of the user
    number
    1234567
  • username
    username for login
    string
    user123
  • firstName
    string
    A
  • lastName
    string
    User
  • email

    user's email address

    string
    user@tradedoubler.com
  • roleId

    Role ID of user, 1 = Owner, 2 = Admin, 3 = Member, 4 = Read-only

    number
    1
  • languageId

    2 Character language code of user (ISO 639-1)

    string
    en
  • organizationId
    Organization ID of the Publisher the user belongs to
    number
    1234567
  • owningOrganizationId

    When Publisher is in a private network, the ID of the private network organization

    number
    0
  • countryAccess

    array of countries the user should have access to. Countries should be ISO_3166-1 Alpha-2

    array[string]
  • newsletter
    Y or N if the user should receive newsletters from Tradedoubler
    string
    Y
  • typeId

    User type, if a publisher or advertiser. Advertiser typeId is always 2

    number
    2
  • personId
    Person ID of the user
    number
    123456
  • reportCurrencyCode

    3 character currency code (ISO 4217)

    string
    EUR

Update a user

Update information for a specific user based on their logonAcccountId. This is only available for the user with the role Owner.

Request
object
  • username
    username for login
    string
    user123
  • firstName
    string
    A
  • lastName
    string
    User
  • email

    user's email address

    string
    user@tradedoubler.com
  • roleId

    Role ID of user, 1 = Owner, 2 = Admin, 3 = Member, 4 = Read-only

    number
    1
  • languageId

    2 Character language code of user (ISO 639-1)

    string
    en
  • countryAccess

    array of countries the user should have access to. Countries should be ISO_3166-1 Alpha-2

    array[string]
  • newsletter
    Y or N if the user should receive newsletters from Tradedoubler
    string
    Y
  • reportCurrencyCode

    3 character currency code (ISO 4217)

    string
    EUR

Delete a user

Delete a user a specific user based on their logonAcccountId, this will remove their access to login or access any Publisher Organization information. This is only available for the user with the role Owner.

Password


Change Password

Change Password

Change the password of logged in user

Ads


List All Ads in a program

Ads

You can view a list of available ads on a specific program

URI Parameters
programIdFilter available ads for specific programs
adTypeFilter available ads based on the type
adSize

Filter available ads based on the Size. This is a free text search, to search for width use "300x" and for height only "x250"

adNameFilter available ads based on the Name
adIdFilter for a specific ad
includeExpired

Where to include expired ads (default value: false)

sortBy
sortOrder
offset
limit
Response
object
  • programId
    Id of the program
    number
    123456
  • programName
    Name of the program
    string
    A Program
  • adId
    Id of the Ad
    number
    12345678
  • adName
    Name of the ad
    string
    DefaultAd
  • adSize
    Size of the Ad
    string
    300x250
  • programCategories
    Array of program category Ids
    array[string]
  • lastUpdate

    01-17T23:00:00.000+0200 (date) - Date and time the ad was last updated

    string
    2020
  • createdDate

    01-01T12:00:00.000+0200 (date) - Date and time the ad was created

    string
    2020
  • adType

    Type of ad. 1 = text, 4 = image, 6 = html

    number
    4
  • url

    100x100.jpg - url where the ad is hosted if an image

    string
    http://test.tradedoubler.com/file/30539/18.01.17_logo/selection
  • productUrl

    url the ad redirects to, applies to image and text ads

    string
    http://www.tradedoubler.com
  • customHtml
    html code for HTML ads
    string
    <html>...</html>
  • text
    Text for text ads
    string
    This is an ad
  • segments
    array of all segments with access to the ad
    array[string]

Create AD

You can create a text, image or HTML ad programmatically through the API

List an Ad by ID

Ad

You can view more details on a specific ad. This is also useful if you want to update an existing ad.

URI Parameters
adId

Update Ad

Update an existing ad

URI Parameters
adId

Programs


Programs

List all Programs

You can view a list of available programs for your organization

URI Parameters
activeFilter by the active status of program
pausedFilter by the paused status of the program
countryCode

Filter programs on a specific country - ISO (add countrycode)

nameFilter on the name of the program.
categoryIdsFilter based on program categories
sortBy
sortOrder
offset
limit
Response
object
  • id
    unique Id for the program
    string
    123456
  • countryCode
    country code of the program
    string
    GB
  • closedProgram

    if the program is a closed program, then it is invite only, publishers can not apply via the interface

    string
    true
  • active
    if the program is currently active
    string
    true
  • paused
    if the program is in a paused state then no statistics will show until it is unpaused. Contact your Tradedoubler Account Manager to request a program is no longer paused.
    string
    false
  • createdDate

    08-21 - the date the program was created

    string
    2009
  • startDate

    08-21 - the date the programw went live

    string
    2009
  • name
    the name of the program
    string
    ATestProgram
  • logoUrl

    the url for the program's logo

    string
    https://www.logo.com
  • prepayment

    if the program is prepayment then the advertiser is invoiced in advance, this allows publishers to be paid much quicker. Otherwise advertisers are invoiced on a monthly basis.

    string
    false
  • deepLinking
    if the program allows publishers to deeplink to product pages
    string
    true
  • categoryIds
    The Ids of categories the program has been mapped to. See parameters for more information
    array[string]
  • keywordPolicyId

    The keyword policy rule for the program. 0=no keyword policy, 1 = Open policy, 2 = Restricted, 3 = Closed.

    string
    0
  • implementationTypeId

    The type of tracking setup for the program. 1 = Click tracking program only, 2 = on-site conversion tracking, 3rd party setup, 3 = on-site conversion tracking, 1st party setup, 4 offline tracking, 3rd party setup, 5 = offline conversion tracking, 1st party setup, 6-Unknown.

    string
    3
  • currencyCode
    the currency the program is set to track in
    string
    GBP
  • sourceStatus
    object containing a summary of accepted affiliates and affiliates that have applied and require approval.
    object

Program Information

You can view a specific program from your organization

URI Parameters
programId
Response
object
  • id
    unique Id for the program
    string
    123456
  • name
    the name of the program
    string
    ATestProgram
  • active
    if the program is currently active
    string
    true
  • closedProgram

    if the program is a closed program, then it is invite only, publishers can not apply via the interface

    string
    true
  • currencyCode
    the currency the program is set to track in
    string
    GBP
  • countryCode
    country code of the program
    string
    GB
  • homePageUrl
    the home page of the program
    string
    https://www.tradedoubler.com
  • logoUrl

    the url for the program's logo

    string
    http://www.tradedoubler.com/logo.jpg
  • uniqueClickTime
    the time in hours since the last click before a click is counted as unique
    string
    0.5
  • cookieWindow
    the time in days for sales to be allowed. The time in days between last click and sale.
    string
    30
  • autoConnect
    automatically connects affiliates that have the feature enabled
    string
    false
  • impressionTracking

    if impression tracking is enabled, if no click has been found

    string
    true
  • voucherTracking
    if TradedoublerTradedouber voucher is enabled
    string
    true
  • mobileTracking
    if the program has tracking on a mobile friendly site
    string
    true
  • categoriess
    the categories the program has been mapped to.
    object
  • implementationTypeId

    the type of tracking setup for the program. 1 = Click tracking program only, 2 = on-site conversion tracking, 3rd party setup, 3 = on-site conversion tracking, 1st party setup, 4 offline tracking, 3rd party setup, 5 = offline conversion tracking, 1st party setup, 6-Unknown.

    string
    3
  • startDate

    08-21 - the date the programw went live

    string
    2009
  • endDate

    if the program has ended, the date it ended.

    string
    null
  • persons
    the relevant users for the program
    object
  • smb
    whether the program is a Tradedoubler Grow program
    string
    false
  • deepLinking
    if the program allows publishers to deeplink to product pages
    string
    true

Advanced Program Information

You can view advanced information on a specific program from your organization

URI Parameters
programId
Response
object
  • id
    unique Id for the program
    string
    123456
  • name
    the name of the program
    string
    ATestProgram
  • exclusiveVoucher

    if the sales from exclusive vouchers should be re-allocated to the affiliate granted the exclusive code

    string
    true
  • redirectUrl

    URL to redirect users to when clicking on a program link. Usually used for third party trackers like DoubleClick or Advertiser's own redirect scripts

    string
    "https://redir.tradedoubler.com/redirects"
  • directLink
    if redirects should be used or the program direct links to a landing page
    string
    false
  • uniqueClickTime
    the time in hours since the last impression before an impression is counted as unique
    string
    12
  • impressionWindow
    the time in days for iSales to be allowed. The time in days between last impression and sale.
    string
    4
  • timeZoneId

    ID for the time zone, see time zone endpoint for all available time zones

    string
    15
  • timeZone
    The time zone the program is set
    string
    UTC +1
  • allowedDomains
    the domains affiliates can link to for the program. If the domain is not valid the homePageUrl is used instead
    string
    https://*.tradedoubler.com
  • plt

    If the program uses Product Level Tracking. 1 = NO ; 2 = HYBRID, both PLT and normal events can be used; 3 = YES, PLT only.

    string
    1
  • autoApprove
    if the program auto approves affiliate applications and after how many days
    object
  • encodeUrl

    if the deeplink/landing page should be url encoded before being added to a redirect URL

    string
    true
  • firstPartyTracking

    if the Tradedoubler's cookie ID, tduid, should be added to the deeplink/landing page to enable first party tracking.

    { "id": 123456, "name": "ATestProgram", "exclusiveVoucher": true, "redirectUrl": "https://redir.tradedoubler.com/redirects", "directLink": false, "uniqueImpressions": 12, "ImpressionWindow": 4, "timeZoneId": 15, "timeZone": "UTC +1", "allowedDomains": "https://.tradedoubler.com,https://www.tradedoubler.", "plt": 1, "autoApprove": { "action": "A", "days": 30 }, "encodeUrl": true, "firstPartyTracking": true }

    string
    true

Program Texts

You can view texts that relate to your programs such as program description, short description etc...

URI Parameters
programId

Program Timezones

You can view all available timeZones and the corresponding IDs

End Program

Standardised way to end a program. If a program has received no traffic then program is ended immediately. If program has traffic, it is set to end in 30 days to give publishers time to redirect their traffic.

URI Parameters
programId
td_mainclosurereason
td_secondaryClosureReason

Sources

Manage sources connected to your programs. You can view applications, accepted sources as well as their category and ranking.

List Sources

You can view more details on a specific ad. This is also useful if you want to update an existing ad.

URI Parameters
programId
segmentId

Filter sources within a specific segment, comma seperated for multiple segments

statusIdThe connection status of the program and source i.e. 1 is under consideration. Comma seperated for multiple statuses
sourceIdFilter by source
rankFilter by rank
sortBy
sortOrder
offset
limit

Update Source

Update the source's connection to a program

URI Parameters
programId

Commissions

Commissions are the fees paid to your publishers for generating traffic and/or sales to your programs. A commission is created for an event (a click, lead or sale) and created for programs. To setup different commission levels you assign commissions against a segment (which is used to group sources)

List commissions

A list of commissions for a specific program. You can filter by status - active commissions, past or future - or view commissions for specific segments.

URI Parameters
programId
segmentIdsFilter commissions for specific segments. Mutiple ids should be comma seperated
status

filter on the status of the commission, multiple values should be comma seperated

sortBy
sortOrder
offset
limit

Change commission

All changes to commissions are a post request as we create a new commission in our system.

Segments

Segments are used to group sources for each program. By using segments you can easily setup different commission levels on your programs and manage your sources more easily.

Segments

A list of segments created for a specific program.

URI Parameters
programId
deleted

Include segments that have been deleted. (@Nick Check if it true it is deleted and not)

sortBy
sortOrder
offset
limit

Pending Sales


Pending Sales

In Tradedoubler transactions can be given a pending status whereby an advertiser has a set amount of time to validate a pending sale (usually up to 90 days) and approve/deny the transaction. This is usually to allow for an advertiser's returns or cancellation policy. Being able to approve a transaction in Tradedoubler as soon as it is confirmed in an advertiser's system provides greater transparency to your publishers around when they will be paid for their activities.

List pending transactions

Get a list of all your transactions (leads and sales) and see the time until they will automatically validate

URI Parameters
programIdsFilter pending transactions for specific programs. Mutiple ids should be comma seperated
startDate

filter if the commission is active after the start date. (ISO-8601 YYYYMMDD)

endDate

filter if the commission is active or does not stop before the end date. (ISO-8601 YYYYMMDD)

sortBy
sortOrder
offset
limit

Validate transactions

Validate transactions by changing the status to approved or denied. For transactions that are denied we require a reasonId to give the publisher greater transparency as to why the transaction was denied. (@Nick add reason codes). It is possible to modify the order value for a transactions to reflect a partial return/cancellation, this can also be done without updating the transaction status - i.e. the transaction will remain in a pending state.

Request
object
  • transactionId
    Id of the transaction
    number
    123456
  • action

    Action to apply to the transaction i.e. approve, deny or update

    string
    Approve
  • reason

    When denying a transaction, you must supply a reason

    enum[string, fixed]
  • amount

    When updating a transaction, the new order value i.e. for partial returns

    number, optional
    0.99
  • currencyCode

    When updating a transaction, the currency for the new order value

    string, optional
    EUR

Categories


Custom Categories

Advertisers can create their own categories which can be applied to any of their sources. They can used as filters when managing sources or for reporting.

List Categories

Get categories created for an advertiser to use for sources

URI Parameters
categoryNameFree text search on category name
categoryIdFilter by the category id
sortBy
sortOrder
offset
limit

Update a Category

Update a category name

URI Parameters
categoryId

Create a new Category

Create a new custom category

Invoices


Invoices

View invoices and their status and get copies of your invoice.

List Invoices

List of invoices

URI Parameters
invoiceNumberInvoice number
invoiceStatus

Status of the invoice @Nick to add options

programIdFilter invoices that relate to a program
fromDateInclude invoices from a date
toDateInclude invoices up to a date

Invoice Download

Download an Invoice

Download a PDF of your invoice

URI Parameters
invoiceNumberInvoice number

Events


Advertiser Custom Events

Custom events are a flexible way of tracking which products, categories or services converted. This provides better reporting insight and the ability to set different commissions for different events in order to maintain margin control. Each event can have a different pending period to reflect the different returns/cancellation policies based on the type of product or service.

List Events

Get custom events created for an advertiser

URI Parameters
eventTypeId

Filters on eventType - leads or Sales

pendingFilters on if the event has a pending period
ruleIdFilters on the events rule.
sortBy
sortOrder
offset
limit

Create an Event

Create a new event for your programs.

Update Event

Update an existing event. You cannot change the type of event (from a sale to a lead or vice versa), you would need to create a new event.

Tokens


Advertiser Tokens

Tokens are required to use Tradedoubler's older API services: Products, Vouchers, Claims and Conversions. Documentation found at: https://dev.tradedoubler.com

List tokens

You can view a list of available tokens:

Refresh a token

You can refresh your token should you require:

Reporting


Statistics

Statistics is the main reporting endpoint. This reflects a lot of work to simplify Tradedoubler's reports from the old advertiser interface into a single endpoint with the ability to change how the statistics are grouped.

Statistics

Detailed statistics for advertiser, they can be grouped by date, source, program, ad.

URI Parameters
intervalTypeInterval Grouping.
reportTypeReport Type Grouping
fromDateThe date the report runs from
toDateThe date the report runs until
sourceIdFilter by a source ID
programIdFilter by a program ID
adIdFilter by an ad ID
reportCurrencyCodeThe ISO 4217 code of currency
sortByThe field used to sort the results
sortOrder

The order the sort field is sorted by (asc or desc)

offsetOffset to get results from
limitNumber of records to be retrieved

Export

Export summary statistics into another reporting format - for analysis in tools such as Excel

URI Parameters
formatFormat of the export file
intervalTypeInterval Grouping.
reportTypeReport Type Grouping
fromDateThe date the report runs from
toDateThe date the report runs until
sourceIdFilter by a source ID
programIdFilter by a program ID
adIdFilter by an ad ID
reportCurrencyCodeThe ISO 4217 code of currency
sortByThe field used to sort the results
sortOrder

The order the sort field is sorted by (asc or desc)

offsetOffset to get results from
limitNumber of records to be retrieved

Transaction

Transactions relate to sales or leads and give detailed information

List transaction

List of transactions for a given source

URI Parameters
fromDate

The date the report runs from, optionally you can provide the time, if no time provided we assume 00:00:00

toDate

The date the report runs until, optionally you can provide the time, if no time provided we assume 23:59:59

lastModifiedApply date range to timeofLastModification
reportCurrencyCodeThe ISO 4217 code of currency
programIdFilter by a program ID
sourceIdFilter by Source ID.
adIdFilter by an ad ID
eventIdFilter by an event ID
orderOrLeadNumberFilter transactions by order or lead number
status

The status of a transaction

  • Member
    • P - Pending
    • A - Accepted
    • D - Denied
sortByThe field used to sort the results
sortOrder

The order the sort field is sorted by (asc or desc)

offsetOffset to get results from
limitNumber of records to be retrieved
Response
object
  • transactionId
    Unique ID for each transaction
    number
    123456789
  • programId
    The ID for the program where the transaction took place
    number
    123456
  • programName
    The name of the program where the transaction took place
    string
    Program 1
  • sourceName
    The name of the source that was attributed the transaction
    string
    Source 1
  • sourceId
    The ID of the source that was attributed the transaction
    number
    1234567
  • adId
    The ID of the Ad
    number
    12345678
  • eventId
    The event ID for the transaction
    number
    123456
  • eventName

    The event name describes the transction that took place (this could be a subscription, product, or general sale)

    string
    A Sale Event
  • eventTypeId

    This donates the type of transaction, where 4 = Lead (a transaction with no monetary value like a registration) and 5 = Sale

    number
    5
  • status

    For transactions with a pending period this is the current status, where A = Accepted, P = Pending and D = Denied

    string
    A
  • timeofLastClick
    The timestamp of the last click before the transaction was made
    string
    2019-02-18 19:07:59.0
  • timeofCreate

    The timestamp of when the transaction was created in Tradedoubler's database (for offline sales this can be some time after the time of transaction)

    string
    2019-02-27 00:38:28.0
  • timeofTransaction
    The timestamp of when the transaction took place
    string
    2019-02-26 23:17:56.0
  • timeofLastModified

    The timestamp of when the transaction was last changed (usually when the status after an advertiser validates transactions)

    string
    null
  • leadNumber

    When eventTypeId = 4 (transaction is a lead) the leadNumber for the transaction

    string
    null
  • orderNumber

    When eventTypeId = 5 (transaction is a sale) the orderNumber for the transaction

    string
    order123
  • orderValue

    When eventTypeId = 5 (transaction is a sale) the order value for the transaction

    number
    100
  • commission
    The commission attributed to the source for the transaction
    number
    10
  • paid
    Whether the commission for the transaction has been assigned to a payment invoice and should have been paid to the publisher
    string
    false
  • productInfo
    ProductInfo Object contains all products in the basket for the transaction if the adveriser supplies this data
    object
  • voucherCode
    The voucher code redeemed if it was used for the transaction
    string
    10PERCENT
  • productsApi
    object
  • crossDevice

    1 (string) - If the sale was cross device, the validation method id

    string
  • pendingRule
    If the sale is pending whether the sale will auto approve or auto deny
    string
    auto_approve
  • deviceObject

    Device Object contains all device information related to the transaction if it took place on a mobile/tablet

    object
  • modified
    Identifies if the transaction has been modified
    boolean
    false

Export Transactions

Export list of transactions for a given source

URI Parameters
formatFormat of the export file
sourceIdSource ID. Currently we only allow transactions report to be run for one Source at a time.
fromDate

The date the report runs from, optionally you can provide the time, if no time provided we assume 00:00:00

toDate

The date the report runs until, optionally you can provide the time, if no time provided we assume 23:59:59

lastModifiedApply date range to timeofLastModification
programIdFilter by a program ID
adIdFilter by an ad ID
reportCurrencyCodeThe ISO 4217 code of currency
orderOrLeadNumberFilter transactions by order or lead number
sortByThe field used to sort the results
sortOrder

The order the sort field is sorted by (asc or desc)

offsetOffset to get results from
limitNumber of records to be retrieved
Response
object
  • programId
    The ID for the program where the transaction took place
    number
    123456
  • programName
    The name of the program where the transaction took place
    string
    Program 1
  • sourceName
    The name of the source that was attributed the transaction
    string
    Source 1
  • sourceId
    The ID of the source that was attributed the transaction
    number
    1234567
  • eventId
    The event ID for the transaction
    number
    123456
  • eventName

    The event name describes the transction that took place (this could be a subscription, product, or general sale)

    string
    A Sale Event
  • eventTypeId

    This donates the type of transaction, where 4 = Lead (a transaction with no monetary value like a registration) and 5 = Sale

    number
    5
  • status

    For transactions with a pending period this is the current status, where A = Accepted, P = Pending and D = Denied

    string
    A
  • timeofLastClick
    The timestamp of the last click before the transaction was made
    string
    2019-02-18 19:07:59.0
  • timeofCreate

    The timestamp of when the transaction was created in Tradedoubler's database (for offline sales this can be some time after the time of transaction)

    string
    2019-02-27 00:38:28.0
  • timeofTransaction
    The timestamp of when the transaction took place
    string
    2019-02-26 23:17:56.0
  • timeofLastModified

    The timestamp of when the transaction was last changed (usually when the status after an advertiser validates transactions)

    string
    null
  • leadNumber

    When eventTypeId = 4 (transaction is a lead) the leadNumber for the transaction

    string
    null
  • orderNumber

    When eventTypeId = 5 (transaction is a sale) the orderNumber for the transaction

    string
    order123
  • orderValue

    When eventTypeId = 5 (transaction is a sale) the order value for the transaction

    number
    100
  • commission
    The commission attributed to the source for the transaction
    number
    10
  • paid
    Whether the commission for the transaction has been assigned to a payment invoice and should have been paid to the publisher
    string
    false
  • productInfo
    ProductInfo Object contains all products in the basket for the transaction if the adveriser supplies this data
    object
  • voucherCode
    The voucher code redeemed if it was used for the transaction
    string
    10PERCENT
  • productsApi
    object
  • crossDevice

    1 (string) - If the sale was cross device, the validation method id

    string
  • pendingRule
    If the sale is pending whether the sale will auto approve or auto deny
    string
    auto_approve
  • deviceObject

    Device Object contains all device information related to the transaction if it took place on a mobile/tablet

    object
  • modified
    Identifies if the transaction has been modified
    boolean
    false

Dashboard

Collection of summary reports

Summary statistics

Summary statistics used for the dashboard within the publisher interface.

URI Parameters
intervalTypeDate range for the report
reportCurrencyCodeThe ISO 4217 code of the currency.

Top performing programs

Provides summary statistics sorted for top performing programs

URI Parameters
intervalTypeDate range for the report
reportCurrencyCodeThe ISO 4217 code of the currency.
sortByThe field used to sort the results
sortOrder

The order the sort field is sorted by (asc or desc)

offsetOffset to get results from
limitNumber of records to be retrieved

Top performing sources

Provides summary statistics sorted for top performing sources

URI Parameters
intervalTypeDate range for the report
reportCurrencyCodeThe ISO 4217 code of the currency.
sortByThe field used to sort the results
sortOrder

The order the sort field is sorted by (asc or desc)

offsetOffset to get results from
limitNumber of records to be retrieved