Testing & Validation
- Ensure you have a valid Personal Access Token from the CJ Developer Portal.
- Confirm you are using the correct API endpoint for production or test mode.
- Verify your token is authorized for the advertiser account you are working with.
- Ensure your request includes required attribution data. cjEvent is preferred. AID and PID may be used as fallback values.
- Processing can take up to an hour or longer.
How to get a CJ Test Link
CJ Account Manager
or Create Test Link
test link
(must be https://)
Save
to generate a link
cjevent appended to your URL.Testing Scenarios
Retail
-
Scenario 1: No Discount Test
Click a CJ Tracking Link, proceed with a purchase and do not apply any discount code at checkout. -
Scenario 2: Whole Order Discount Test
Click a CJ Tracking Link, proceed with a purchase and apply a whole-order discount code at checkout. -
Scenario 3: Item Level Discount Test
Click a CJ Tracking Link, proceed with a purchase and apply an item-specific discount code at checkout. -
Scenario 4: Combination Discount Test
Click a CJ Tracking Link and apply both an item-level and whole-order discount discount code at checkout.
All tests should include 2 products minimum, with one product having a quantity of 2. Please send a screenshot of the order confirmation page that includes order Id, product prices, discounts, and taxes.
Travel
-
Initial Reservation Purchase Test
Click a CJ Tracking Link and proceed with a standard purchase of hotel/flight reservation.If you are utilizing our Open Ended Lifecycle Solution, we will need to test
-
Accepted
The initial reservation is completed and the initial transaction updates from pending to accepted. -
Declined
The initial reservation is cancelled and the initial transaction updates from pending to declined.
-
Finance
-
Scenario 1: Standard Application Submission
Click a CJ Tracking link and submit a credit card application with all required fields completed. -
Scenario 2: Pre-Qualified Application
Click a CJ Tracking link, complete a pre-qualification check, then proceed to full application submission. -
Scenario 3: Card Approval
Click a CJ Tracking link and submit an application that results in instant approval (validates approval-based commissioning if applicable). -
Scenario 4: Checking Account Opening
Click a CJ Tracking link and open a new checking account with initial deposit. -
Scenario 5: Savings Account Opening
Click a CJ Tracking link and open a savings or high-yield savings account.
Network Services
-
Scenario 1: Basic Signup
Click a CJ Tracking link and complete a new internet/mobile plan signup with standard pricing. -
Scenario 2: Promotional Rate Signup
Click a CJ Tracking link and complete a signup using a promotional offer or discounted first-month rate. -
Scenario 3: Bundle Signup
Click a CJ Tracking link and sign up for a bundled package (e.g., internet + TV + phone). -
Scenario 4: Plan Upgrade
Click a CJ Tracking link as an existing customer and upgrade to a higher-tier plan (e.g., faster internet speed, more data).
The scenarios on this page represent commonly tested situations for each vertical. They are not exhaustive βyour account may have additional action trackers, custom parameters, or program-specific requirements that require further testing. Contact your CJ Integration Engineer for a complete list of scenarios specific to your account setup.
Choose the Correct Endpoint Based on Your Integration Stage
The New Orders API exposes two endpoints. Which one you call depends on whether your integration is in onboarding or already live in production. Using the wrong endpoint can either suppress legitimate test traffic or generate commissionable orders during QA β so confirm your stage before submitting.
Before your integration is approved and traffic is flowing, submit test orders to the live endpoint. During onboarding, your account is not yet generating commissionable activity, so submissions are safely routed for review without affecting publisher payouts.
Endpoint: tracking.api.cj.com/graphqltest
Once your integration is approved and processing real orders, use the test endpoint for any QA, regression, or validation work. This keeps test submissions out of your production reporting and prevents accidental commissioning on synthetic orders.
Endpoint: tracking.api.cj.com/graphql
After going live, do not continue submitting test traffic to the live endpoint. Doing so can create real, commissionable orders in your reporting that must be cancelled via the
cancelOrdersGraphQL mutation.
Verify the API Response Returns a Valid submissionId
submissionIdA successful submission returns an HTTP 200 response containing a submissionId. This ID confirms that CJ has received and queued the order for processing β it does not yet confirm the order is valid for commissioning. Persist the submissionId in your system so you can trace any downstream issues back to a specific submission.
- Response status code is 200.
- Response body includes a non-empty
submissionId(UUID format). - Any non-200 response, or a 200 missing the
submissionId, is treated as a failed submission and retried per your error-handling policy.
Error Handling
The API returns immediate errors for issues related to Authentication, Schema Validation, Authorization, and Additional Field-Level Validation. Errors are returned in the order listed, one category at a time. Each category must be resolved before the next becomes visible.
| Category | Error Description | Error Message |
|---|---|---|
| Authentication | Missing authentication token | Missing Token |
| Authentication | Invalid authentication token | Invalid Token |
| Authorization | Enterprise ID is not associated with the token provided | Unauthorized |
| Schema | Incorrectly formatted request | Invalid Syntax |
| Schema | Missing required fields | Validation error of type WrongType: argument ... is missing required fields $FIELDS |
| Schema | Incorrect data format or type | Validation error of type WrongType: argument ... with value ... is not a valid $FIELD_TYPE |
| Schema | Incorrect entry for a value-restricted field | Validation error of type WrongType: argument ... is not a valid $FIELD_Value |
| Schema | Unsupported field name in request | Validation error of type WrongType: argument ... contains a field not in $QUERY_TYPE |
| Field Validation | Too many items in the order | Order may not have more than 100 items |
| Field Validation | updateTime is set in the future | Order may not have an updateTime in the future |
| Generic | Excessive load on the CJ system | 504 |
Need help?
Submit a support ticket for account-specific support.
Updated 11 days ago
