Sell leads to Cash4Car (CZ)

Maximize revenue from your leads by connecting this advertiser to your PalDock workspace. The integration is prebuilt, so you can go live in a few clicks, no developer needed.

AdvertiserCash4Car
CountryCZ
SegmentFinance
ProductLoan
Integration typeLead generation
Flows→ Post

Integration overview

This prebuilt PalDock integration connects your lead flow directly to the advertiser. It handles field mapping, request delivery and response processing, so you can start sending leads without building the integration from scratch.

The integration uses PalDock’s global fields and returns standardized outcomes for reporting and routing, while preserving advertiser response details for troubleshooting.

Blueprint

{
  "nodes": [
    {
      "id": "1-1",
      "type": "startNode",
      "position": {
        "x": -158,
        "y": -20.5
      },
      "data": {
        "formData": {
          "active": true,
          "title": "",
          "subtitle": "",
          "flow": "post",
          "beType": "integration"
        }
      }
    },
    {
      "id": "1-2",
      "type": "httpNode",
      "position": {
        "x": -11,
        "y": -91.5
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Post",
          "subtitle": "",
          "method": "POST",
          "endpoint": "{endpoint}/poptavky/add",
          "timeout": 30,
          "format": "application/json",
          "parser": "json",
          "notsend": null,
          "convert_data": null,
          "headers": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "query": [
            {
              "key": "HASH",
              "value": "{token}"
            }
          ],
          "body": [
            {
              "key": "car",
              "value": "{data_own_car}"
            },
            {
              "key": "stat",
              "value": "cz"
            },
            {
              "key": "email",
              "value": "{data_email}"
            },
            {
              "key": "jmeno",
              "value": "{data_first_name}"
            },
            {
              "key": "phone",
              "value": "{data_cell_phone}"
            },
            {
              "key": "prijmeni",
              "value": "{data_last_name}"
            },
            {
              "key": "source_hash",
              "value": "{eid}"
            }
          ],
          "signature": null,
          "insecure": null
        }
      }
    },
    {
      "id": "1-3",
      "type": "setNode",
      "position": {
        "x": 165,
        "y": -171
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Store response",
          "subtitle": "",
          "fields": [
            {
              "key": "{redirect_url}",
              "value": "{parsedBody.redirect_url}"
            },
            {
              "key": "{external_id}",
              "value": "{parsedBody.id}"
            }
          ]
        }
      }
    },
    {
      "id": "1-5",
      "type": "endNode",
      "position": {
        "x": 353,
        "y": -140.5
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Success",
          "subtitle": "",
          "success": "success"
        }
      }
    },
    {
      "id": "1-4",
      "type": "modifyFieldNode",
      "position": {
        "x": 118.5,
        "y": 10
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Reject reason",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{reason}",
              "fields": [
                {
                  "source": "{parsedBody.error}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Unspecified"
                },
                {
                  "source": "{parsedBody.error}",
                  "operator": "contains",
                  "value": "invalid",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Invalid Data"
                },
                {
                  "source": "{parsedBody.error}",
                  "operator": "contains",
                  "value": "missing",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Invalid Data"
                },
                {
                  "source": "{parsedBody.error}",
                  "operator": "contains",
                  "value": "duplicity",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Duplicate"
                }
              ]
            },
            {
              "fieldName": "{reason_detail}",
              "fields": [
                {
                  "source": "{parsedBody.error}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.error}"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "1-6",
      "type": "endNode",
      "position": {
        "x": 290.5,
        "y": 10
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Rejected",
          "subtitle": "",
          "success": "failed"
        }
      }
    }
  ],
  "edges": [
    {
      "id": "edge-1-1-1-2",
      "source": "1-1",
      "target": "1-2",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-1-2-1-3",
      "source": "1-2",
      "target": "1-3",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{status}",
            "operator": "equals",
            "output": "200",
            "output2": ""
          },
          {
            "value": "{parsedBody.message}",
            "operator": "equals",
            "output": "success",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-1-2-1-4",
      "source": "1-2",
      "target": "1-4",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.message}",
            "operator": "regex_not_match",
            "output": "success",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-1-3-1-5",
      "source": "1-3",
      "target": "1-5",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-1-4-1-6",
      "source": "1-4",
      "target": "1-6",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    }
  ]
}

How it works

  1. Copy the blueprint and paste it in your PalDock workspace– Create a new integration in your workspace and paste the blueprint. Every field arrives prefilled.
  2. Enter your credentials – Paste the secrets you received from advertiser and set your Pingtree
  3. Send a test lead – Verify the response, then switch the channel live.

FAQ

Do I need my own contract with this advertiser?

Yes. PalDock delivers leads on your behalf, so the commercial agreement and API credentials come from the advertiser directly.

What happens to rejected leads?

The advertiser returns its decision in the delivery response. PalDock reads it and moves rejected leads to the next buyer in your pingtree automatically, so a rejection does not need to end the lead’s journey.

Can I change the field mapping?

Yes, but we do not recommend it. Blueprints are already mapped to PalDock’s global fields. If you use local fields, you need to remap each integration separately.

How long does setup take?

Few clicks, if you already have credentials. The blueprint arrives prefilled and mapped to PalDock’s global fields, so if your lead structure uses them, there is nothing to map. If you use local fields, you map them once.

What the integration does

Start sending leads in 3 clicks

Copy the prebuilt blueprint, add your credentials and start sending leads. No coding, no integration work.

Real-time lead delivery

Send leads to the advertiser instantly as they arrive, without exports, batches or manual processing.

No field mapping headache

PalDock global fields work across all prebuilt integrations. Map your lead data once and reuse it everywhere.

Know exactly why leads fail

Get standardized rejection reasons for reporting and advertiser’s response for the full context and troubleshooting.

API & integration details

The simplest integration in the library. One call, a handful of fields, and a two-key response.

What will be needed from advertiser

KeyPurpose
endpointBase API URL.
tokenKey sent as the HASH query parameter.

Flows

Post, POST /poptavky/add?HASH={token}. Creates the enquiry.

Calls

POST {endpoint}/poptavky/add?HASH={token}
Content-Type: application/json
format: application/json

The key travels as the HASH query parameter. There is no auth header.

Request fields

FieldRequiredValue
source_hashyes{send_id}
jmenoyes{g_name_first}
prijmeniyes{g_name_last}
emailyes{g_email}
phoneyes{g_phone}
statyescz, also accepts sk, pl, es
caryes{g_asset_type}

source_hash is the advertiser’s deduplication key and the handle for asking about the lead later. Send {send_id} so the value is reproducible.

The product only makes sense for someone who owns a vehicle. Where the form asks and the answer is no, filter before the request rather than sending a lead that will be refused the outcome is a Product Mismatch you can name yourself.

Enums

None.

Outcomes

Recognised byHTTPMeaningReject reasonFrequency
message: success200Accepted,common
error ~ missing200A required field was emptyInvalid Dataoccasional
error ~ invalid200A field failed validationInvalid Dataoccasional
error ~ duplicity200This source_hash was used beforeDuplicateoccasional

error is a free-text string naming the problem, for example missing stat (cz,sk,pl,es). Pass it through whole in {reason_detail} and match the reason on a substring.

Reject reasons come from the standard list. See Reject reason for what each one means and when to use it.

Branching

Accepted:

{status}                    equals            200
{parsedBody.message}        equals            success

Refused, scoped to the business field:

{parsedBody.message}        regex not match   success

Stored values

ParameterSource
{external_id}{parsedBody.id}
{redirect_url}{parsedBody.redirect_url} where returned

Author

Affiliate and lead generation expert with 15+ years as partner, advertiser and network, including end to end product design from concept to rollout of an affiliate tracking platform. Background in lending, telco, gambling and other verticals with a focus on tracking, affiliate management, fraud prevention, integrations and lead generation.

The Affiliate Platform Guide

Everything you need to choose the right affiliate platform in one place. Download the complete guide and keep it as your handy reference.