Skip to main content
Skip table of contents

Server-to-Server Implementation

This page describes a server-side method for pushing data from your existing affiliate network software into your Katalys Advertiser account.

This method is not recommended due to lack of transparency for Katalys affiliates, limited data postback options, and lower attribution rates which dilute your program’s value to affiliates. This means your partners will not be able to optimize their campaigns as well, will have limited insights into how their campaigns are performing, and may choose not to work with you due to the lack of transparency. We highly recommend starting with any of our plugin-based approaches for smooth and fast onboarding with no developer time.

This implementation type is uniquely limited in having no opportunity for providing traffic quality reports to your Katalys partners. If you must perform your own attribution, we recommend reviewing the Sub-network Implementation guide PREFERRED.

Initial Requirements

To get started with sending data back to Katalys, you must:

  • Retrieve your Tracking ID from the Katalys “Integrations” page
    This is the data silo that has been created to collect data for your integration. This is frequently named using a KA- prefix followed by random numbers/letters.
    Go to your account’s Integrations page →

  • Implement your own affiliate software
    You must have an attribution technology tool implemented on your site that can store Katalys tracking information, such as transaction_id, offer_id, and aff_id. Either a) the transaction_id parameter must be defined or b) the offer_id and aff_id parameter must be defined.

    • Inbound Katalys links should contain the URL parameters transaction_id, offer_id, and publisher_id.

    • You will need to store these values and offer them back to Katalys after a conversion takes place.

    • As an example:

      For URL: https://example.com/page1?utm_source=Katalys&transaction_id=1234abcd&offer_id=1234&publisher_id=5678
      You would store transaction_id=1234abcd, offer_id=1234, and aff_id=5678

If your system will be configured to send every order for your CRM (instead of just Katalys-specific conversions), use type=offline_conv instead of type=force_convert. The value offline_conv requires that you also deploy the Katalys JavaScript to your website. Read more about Custom Integrations for details.

HTTP Request Details

Katalys can receive a postback via an HTTP POST or GET request from your server. This option is the least-flexible of our reporting options – all fields are required.

POST request with JSON

This endpoint will return a 204 status code when the data is received and parsed correctly.

The whitespace in the example is to make the request easy to read. We follow standard JSON conventions and ignore whitespace between parameters.

Remember to replace the {variable} syntax below with your own values. See Reporting Schema for all available data keys.

JSON
POST https://db.revoffers.com/v2/_tr_offline
Content-Type: application/json

{
    "type": "force_convert",
    "site_id": "{katalys_tracking_id}",
    "order_id": "{your_crm_order_id}",
    "email_address": "{email_address}",
    "sale_amount": "{sale_amount}",
    "subtotal_amount": "{subtotal_amount}",
    "client_ip": "{client_ip_address}",
    "user_agent": "{client_user_agent}",
    "discount_1_code": "{coupon_code}",
    "transaction_id": "{katalys_transaction_id}",
    "offer_id": "{katalys_offer_id}",
    "aff_id": "{katalys_aff_id}"
}

POST request with form-encoded values

The endpoint will return a 204 status code when the data is received and parsed correctly.

The newline characters in the example below are for illustration purposes only and should be stripped from the actual payload.

Remember to replace the {variable} syntax below with your own values. See Reporting Schema for all available data keys.

NONE
POST https://db.revoffers.com/v2/_tr_offline
Content-Type: application/x-www-form-urlencoded

type=force_convert
  &site_id={katalys_tracking_id}
  &order_id={your_crm_order_id}
  &email_address={email_address}
  &sale_amount={sale_amount}
  &subtotal_amount={subtotal_amount}
  &client_ip={client_ip_address}
  &user_agent={client_user_agent}
  &discount_1_code={coupon_code}
  &transaction_id={katalys_transaction_id}
  &offer_id={katalys_offer_id}
  &aff_id={katalys_aff_id}

GET request with URL parameters

This type of request will always return a 204 response.

The newline characters in the example below are for illustration purposes only and should be stripped from the actual payload.

Remember to replace the {variable} syntax below with your own values. See Reporting Schema for all available data keys.

CODE
GET https://db.revoffers.com/v2/_tr_offline?
  type=force_convert
  &site_id={katalys_tracking_id}
  &order_id={your_crm_order_id}
  &email_address={email_address}
  &sale_amount={sale_amount}
  &subtotal_amount={subtotal_amount}
  &client_ip={client_ip_address}
  &user_agent={client_user_agent}
  &discount_1_code={coupon_code}
  &transaction_id={katalys_transaction_id}
  &offer_id={katalys_offer_id}
  &aff_id={katalys_aff_id}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.