Proof of Purchase Publisher Transaction API

Prev Next

The Proof of Purchase Publisher API includes a transaction ingestion endpoint, allowing authorized publishers to submit pending transactions directly to an advertiser’s program. It is intended for publishers with proof-of-purchase functionality, such as card-linked offer platforms.

Activation

  1. Awin Partner Development needs to enable the proof of purchase feature on a per publisher basis.

  2. The advertiser needs to enable the CLO endpoint for their program and the CLO publisher in the UI under Tracking Settings → Publisher Settings. This setting appears only when the publisher has been designated as “Proof of Purchase Eligible” by Awin.

Both activation steps are required for the publisher to be able to use the endpoint.

Authentication

Each request should have a valid API key included in the header according to the instructions. The API key can be obtained in the Awin UI.

x-api-key: YOUR_API_KEY

Endpoint

POST /publishers/{publisherId}/advertiser/{advertiserId}/orders
  • publisherId: Awin publisher ID.

  • advertiserId: This refers to the ID of the advertiser program where the publisher intends to submit transactions.

Request Payload

{
  "orders": [
    {
      "orderReference": "string (max 50 chars)",
      "amount": 123.45,
      "currency": "EUR",
      "transactionTime": 1762859931,
      "commissionGroup": [
        {
          "code": "DEFAULT",
          "amount": 123.45
        }
      ],
      "clickTime": 1762859852,
      "awc": "1001_xxx_xxx",
      "clickRef": "example",
      "customerAcquisition": "NEW"
    }
  ]
}

The batch endpoint supports a maximum of 1,000 transactions in each request.

Required Fields

Field

Type

Description

orderReference

string

Unique transaction ID

If there is no advertiser order reference, a publisher-specific reference for the transaction can be used.

amount

float

Transaction value

currency

string

ISO 4217 currency code

transactionTime

int

UNIX time

Optional Fields

Field

Type

Description

commissionGroups

array

This can be used to assign all or part of a transaction to a commission group. These groups are set up and managed by the advertiser in the Commission Manager on the Awin platform.

clickTime

int

UNIX time

Can be used to capture the time of the card load event.

If not provided - fallback to transactionTime.

awc

string

Click identifier

To measure offer load events, publisher to compute awc and register it.

clickRef

string

Publisher specific reference

customerAcquisition

string

NEW or RETURNING

Commission Groups Array Structure

This section applies only if the optional commisionGroups field is included in the request.

Field name

Required

Type

Description

code

Yes

String

Accepted characters for the commission group code are alphanumerics (use upper case letters), underscore (_), period (.), and hyphen (-).

amount

Yes

Float

The total amount of money spent in the give commission group. The value must be a float, thousand separator aren't accepted. The decimal place has to be a period.

Response

Possible Status Codes

Response Code

Description

200

Success: Orders processed successfully

400

Bad Request: Invalid or missing advertiserId/publisherId in request path

400

Invalid Payload: Some objects in the request are invalid

401

Unauthorized: Invalid authentication credentials

500

Internal Error: Service is temporarily unavailable

Attribution & Validation

  • Transactions remain pending until validated by the advertiser. Automatic validation may apply.

  • Transactions are posted after the specified waiting period to allow for possible partial or full refunds, but this must be done within a maximum of 3 months (90 days) from the original transaction date.

  • Attribution is determined by proof of purchase, ensuring exclusive channel assignment.

  • Transactions must be de-duplicated before posting.

  • No click or cookie data is required for attribution.

  • Payload validity must be verified with both Awin and the advertisers before posting transaction events in production.

Access & Rate Limits

  • API keys are user-scoped and require publisher account-level authorization.

  • Rate limit: Maximum of 6 requests per second.