Sell leads to Úvěrová pokladna (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.

AdvertiserÚvěrová pokladna
CountryCZ
SegmentFinance
ProductLoan
Integration typeLead generation
FlowsPing → 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": -560,
        "y": -160
      },
      "data": {
        "formData": {
          "active": true,
          "title": "",
          "subtitle": "",
          "flow": "ping",
          "beType": "integration"
        }
      }
    },
    {
      "id": "2-1",
      "type": "startNode",
      "position": {
        "x": -560,
        "y": 200
      },
      "data": {
        "formData": {
          "active": true,
          "title": "",
          "subtitle": "",
          "flow": "post",
          "beType": "integration"
        }
      }
    },
    {
      "id": "1-2",
      "type": "modifyFieldNode",
      "position": {
        "x": -400,
        "y": -160
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Transform Data",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{housing_type}",
              "fields": [
                {
                  "source": "{data_home_status}",
                  "operator": "regex_match",
                  "value": "^(OwnHouse|InRent|Hostel|ByClosePerson|CooperativeHousing)$",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{data_home_status}"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "owner",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "OwnHouse"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "tenant",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "InRent"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "family",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "ByClosePerson"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "employ-benefits",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Hostel"
                }
              ]
            },
            {
              "fieldName": "{income_source}",
              "fields": [
                {
                  "source": "{data_income_type}",
                  "operator": "regex_match",
                  "value": "^(FullEmployment|DisabilityPension|OwnAccountWorker|Pension|MaternityLeave|AgreementOnWorkActivity|Other)$",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{data_income_type}"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "full-time",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "FullEmployment"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "self-employed",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "OwnAccountWorker"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "parental",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "MaternityLeave"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "pension",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Pension"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "unemployed",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Other"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "other",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Other"
                }
              ]
            },
            {
              "fieldName": "{is_osvc}",
              "fields": [
                {
                  "source": "{data_income_type}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "0"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "self-employed",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "1"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "OwnAccountWorker",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "1"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "1-3",
      "type": "httpNode",
      "position": {
        "x": -240,
        "y": -160
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Auth",
          "subtitle": "",
          "method": "POST",
          "endpoint": "{endpoint}/api/leads/login-with-api-key",
          "timeout": 30,
          "format": "application/json",
          "parser": "json",
          "notsend": null,
          "convert_data": null,
          "headers": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "query": [],
          "body": [
            {
              "key": "apiKey",
              "value": "{token}"
            }
          ],
          "signature": null,
          "insecure": null
        }
      }
    },
    {
      "id": "1-4",
      "type": "setNode",
      "position": {
        "x": -80,
        "y": -160
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Store response",
          "subtitle": "",
          "fields": [
            {
              "key": "{access_token}",
              "value": "{parsedBody.result.token}"
            }
          ]
        }
      }
    },
    {
      "id": "1-5",
      "type": "httpNode",
      "position": {
        "x": 80,
        "y": -160
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Ping",
          "subtitle": "",
          "method": "POST",
          "endpoint": "{endpoint}/api/leads/pre-check-sync/{data_nin}",
          "timeout": 30,
          "format": "application/json",
          "parser": "json",
          "notsend": null,
          "convert_data": null,
          "headers": [
            {
              "key": "Content-Type",
              "value": "application/json"
            },
            {
              "key": "Authorization",
              "value": "Bearer {access_token}"
            }
          ],
          "query": [],
          "body": [],
          "signature": null,
          "insecure": null
        }
      }
    },
    {
      "id": "1-6",
      "type": "setNode",
      "position": {
        "x": 400,
        "y": -220
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Store response",
          "subtitle": "",
          "fields": [
            {
              "key": "{lead_precheck_id}",
              "value": "{parsedBody.result.id}"
            }
          ]
        }
      }
    },
    {
      "id": "1-8",
      "type": "endNode",
      "position": {
        "x": 560,
        "y": -220
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Success",
          "subtitle": "",
          "success": "success"
        }
      }
    },
    {
      "id": "1-7",
      "type": "modifyFieldNode",
      "position": {
        "x": 400,
        "y": -80
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Reject reason",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{reason}",
              "fields": [
                {
                  "source": "{parsedBody.result.accepted}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Unspecified"
                },
                {
                  "source": "{parsedBody.result.errorMessage}",
                  "operator": "regex_match",
                  "value": "duplic",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Duplicate"
                },
                {
                  "source": "{parsedBody.result.errorMessage}",
                  "operator": "regex_match",
                  "value": "(age|věk)",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Age"
                }
              ]
            },
            {
              "fieldName": "{reason_detail}",
              "fields": [
                {
                  "source": "{parsedBody.result.accepted}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "pre-check declined"
                },
                {
                  "source": "{parsedBody.result.errorMessage}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.result.errorMessage}"
                },
                {
                  "source": "{parsedBody.error.message}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.error.message}"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "1-9",
      "type": "endNode",
      "position": {
        "x": 560,
        "y": -80
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Rejected",
          "subtitle": "",
          "success": "failed"
        }
      }
    },
    {
      "id": "2-2",
      "type": "httpNode",
      "position": {
        "x": -400,
        "y": 200
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Post",
          "subtitle": "",
          "method": "POST",
          "endpoint": "{endpoint}/api/leads/import",
          "timeout": 30,
          "format": "application/json",
          "parser": "json",
          "notsend": null,
          "convert_data": null,
          "headers": [
            {
              "key": "Content-Type",
              "value": "application/json"
            },
            {
              "key": "Authorization",
              "value": "Bearer {access_token}"
            }
          ],
          "query": [],
          "body": [
            {
              "key": "leads.0.expenses",
              "value": "toInt({data_expenses})"
            },
            {
              "key": "leads.0.incomeNet",
              "value": "toInt({data_monthly_income})"
            },
            {
              "key": "leads.0.ipAddress",
              "value": "{ip_address}"
            },
            {
              "key": "leads.0.externalId",
              "value": "{eid}"
            },
            {
              "key": "leads.0.loanAmount",
              "value": "toInt({data_requested_amount})"
            },
            {
              "key": "leads.0.housingType",
              "value": "{housing_type}"
            },
            {
              "key": "leads.0.employerName",
              "value": "{data_employer}"
            },
            {
              "key": "leads.0.incomeSource",
              "value": "{income_source}"
            },
            {
              "key": "leads.0.userLastName",
              "value": "{data_last_name}"
            },
            {
              "key": "leads.0.daysToDueDate",
              "value": "toInt({data_period})"
            },
            {
              "key": "leads.0.isLoanForOSVC",
              "value": "toBool({is_osvc})"
            },
            {
              "key": "leads.0.propertyOwner",
              "value": "{data_own_property}"
            },
            {
              "key": "leads.0.userFirstName",
              "value": "{data_first_name}"
            },
            {
              "key": "leads.0.userPhoneNumber",
              "value": "{data_cell_phone}"
            },
            {
              "key": "leads.0.userEmailAddress",
              "value": "{data_email}"
            },
            {
              "key": "leads.0.bankAccountNumber",
              "value": "{data_account_number}"
            },
            {
              "key": "leads.0.bankAccountBankCode",
              "value": "{data_bank_code}"
            },
            {
              "key": "leads.0.permanentAddress.city",
              "value": "{data_city}"
            },
            {
              "key": "leads.0.permanentAddress.street",
              "value": " {data_street} {data_house_number}"
            },
            {
              "key": "leads.0.permanentAddress.zipCode",
              "value": "{data_zip}"
            },
            {
              "key": "leads.0.identificationDocumentNumber",
              "value": "{data_identity_card_number}"
            },
            {
              "key": "leads.0.personalIdentificationNumber",
              "value": "{data_nin}"
            },
            {
              "key": "leads.0.ownAccountWorkerIdentificationNumber",
              "value": "{data_company_number_imported}"
            }
          ],
          "signature": null,
          "insecure": null
        }
      }
    },
    {
      "id": "2-3",
      "type": "setNode",
      "position": {
        "x": -240,
        "y": 140
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Store response",
          "subtitle": "",
          "fields": [
            {
              "key": "{external_id}",
              "value": "{parsedBody.result.leadIds.0.id}"
            },
            {
              "key": "{redirect_url}",
              "value": "{parsedBody.result.leadIds.0.redirectUrl}"
            }
          ]
        }
      }
    },
    {
      "id": "2-5",
      "type": "endNode",
      "position": {
        "x": -80,
        "y": 140
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Success",
          "subtitle": "",
          "success": "success"
        }
      }
    },
    {
      "id": "2-4",
      "type": "modifyFieldNode",
      "position": {
        "x": -240,
        "y": 280
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Reject reason",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{reason}",
              "fields": [
                {
                  "source": "{parsedBody.result.leadIds.0.leadStatus}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Unspecified"
                },
                {
                  "source": "{parsedBody.result.leadIds.0.leadStatus}",
                  "operator": "equals",
                  "value": "2",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Not Eligible"
                },
                {
                  "source": "{parsedBody.result.errors.0}",
                  "operator": "regex_match",
                  "value": "Duplicate record",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Duplicate"
                },
                {
                  "source": "{parsedBody.result.errors.0}",
                  "operator": "regex_match",
                  "value": "(Invalid code|invalid format|not valid format|is required|max length)",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Invalid Data"
                },
                {
                  "source": "{parsedBody.result.errors.0}",
                  "operator": "regex_match",
                  "value": "nedostatečného příjmu",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Low Income"
                },
                {
                  "source": "{parsedBody.result.errors.0}",
                  "operator": "regex_match",
                  "value": "mimo definované hodiny",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Not Eligible"
                },
                {
                  "source": "{parsedBody.result.errors.0}",
                  "operator": "regex_match",
                  "value": "Půjčky pro fyzické osoby",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Product Mismatch"
                }
              ]
            },
            {
              "fieldName": "{reason_detail}",
              "fields": [
                {
                  "source": "{parsedBody.result.leadIds.0.leadStatus}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "leadStatus={parsedBody.result.leadIds.0.leadStatus}"
                },
                {
                  "source": "{parsedBody.result.errors.0}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.result.errors.0}"
                },
                {
                  "source": "{parsedBody.error.message}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.error.message}"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "2-6",
      "type": "endNode",
      "position": {
        "x": -80,
        "y": 280
      },
      "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-2-1-2-2",
      "source": "2-1",
      "target": "2-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": []
      }
    },
    {
      "id": "edge-1-3-1-4",
      "source": "1-3",
      "target": "1-4",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.result.isOk}",
            "operator": "equals",
            "output": "true",
            "output2": ""
          },
          {
            "value": "{parsedBody.result.token}",
            "operator": "is_not_empty",
            "output": "",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-1-4-1-5",
      "source": "1-4",
      "target": "1-5",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-1-5-1-6",
      "source": "1-5",
      "target": "1-6",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.result.accepted}",
            "operator": "equals",
            "output": "true",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-1-5-1-7",
      "source": "1-5",
      "target": "1-7",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.result.accepted}",
            "operator": "not_equals",
            "output": "true",
            "output2": ""
          },
          {
            "value": "{status}",
            "operator": "is_less_than",
            "output": "400",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-1-6-1-8",
      "source": "1-6",
      "target": "1-8",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-1-7-1-9",
      "source": "1-7",
      "target": "1-9",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-2-2-2-3",
      "source": "2-2",
      "target": "2-3",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.result.leadIds.0.leadStatus}",
            "operator": "equals",
            "output": "1",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-2-2-2-4",
      "source": "2-2",
      "target": "2-4",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.result.leadIds.0.leadStatus}",
            "operator": "not_equals",
            "output": "1",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-2-3-2-5",
      "source": "2-3",
      "target": "2-5",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-2-4-2-6",
      "source": "2-4",
      "target": "2-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

Bearer-token API. An API key is exchanged for a token, and the token authorises everything after it. The pre-check is synchronous and returns a plain yes or no; the import posts the lead.

The responses are wrapped: the payload always sits under result, and the wrapper carries its own success and error alongside the HTTP status.

What will be needed from advertiser

KeyPurpose
endpointBase API URL.
tokenAPI key exchanged for the bearer token.

Flows

Ping, authenticate, then POST /api/leads/pre-check-sync/{national_id}. Returns result.accepted.

Post, POST /api/leads/import with the lead. Returns a leadStatus code and, when accepted, a redirect URL.

Authentication runs once per flow. The token stays valid for the calls that follow it, so a second Auth node before every request is duplication, not safety. The Post flow does authenticate again rather than reading a token the Ping stored, a token has a lifetime and the Post may run much later.

Calls

Auth
POST {endpoint}/api/leads/login-with-api-key
Content-Type: application/json
format: application/json

{ "apiKey": "{token}" }

Response:

{ "result": { "isOk": true, "token": "…", "errorMessage": null },
  "success": true, "error": null, "targetUrl": null, "unAuthorizedRequest": false, "__abp": true }

The token is at result.token. Reading it from anywhere else leaves the header empty, and every call after it comes back 401, a whole integration silently returning nothing but authentication failures, with no error anywhere in the run.

Ping and Post
POST {endpoint}/api/leads/pre-check-sync/{g_id_national_number}
POST {endpoint}/api/leads/import
Authorization: Bearer {custom_access_token}
Content-Type: application/json
format: application/json

The advertiser restricts access by IP address; the addresses have to be registered with them first.

Request fields

The pre-check takes the national ID in the path and no body.

The import sends an array with a single lead, so every field is prefixed leads.0.:

FieldRequiredValue
leads.0.userFirstNameyes{g_name_first}
leads.0.userLastNameyes{g_name_last}
leads.0.personalIdentificationNumberyes{g_id_national_number}
leads.0.identificationDocumentNumberyes{g_id_card_number}
leads.0.userEmailAddressyes{g_email}
leads.0.userPhoneNumberyes{g_phone}
leads.0.permanentAddress.streetyes{g_address_street} {g_address_street_number}
leads.0.permanentAddress.cityyes{g_address_city}
leads.0.permanentAddress.zipCodeyes{g_address_zip}
leads.0.loanAmountyestoInt({g_amount})
leads.0.daysToDueDateyestoInt({g_period})
leads.0.incomeNetyestoInt({g_fin_income})
leads.0.expensesyestoInt({g_fin_expenses})
leads.0.incomeSourceyes{g_fin_type}, see enums
leads.0.housingTypeyes{g_home_type}, see enums
leads.0.employerNameno{g_employer_name}
leads.0.isLoanForOSVCyestoBool(...), true for the self-employed
leads.0.propertyOwnerno{g_asset_status}
leads.0.bankAccountNumberyes{g_bank_account_number}
leads.0.bankAccountBankCodeyes{g_bank_account_code}
leads.0.ownAccountWorkerIdentificationNumberself-employed{g_company_registration}
leads.0.externalIdyes{send_id}
leads.0.ipAddressyes{ip_address}

Compose the street and number together in the HTTP field. That is not a transformation and does not need a Modify step.

Numeric fields are typed, so convert inline with toInt(...) and toBool(...). One conversion, never nested.

Enums

incomeSource: FullEmployment, OwnAccountWorker, Pension, DisabilityPension, MaternityLeave, AgreementOnWorkActivity, Other.

housingType: OwnHouse, InRent, Hostel, ByClosePerson, CooperativeHousing.

isLoanForOSVC is derived rather than collected: it is true exactly when the income source is self-employment.

Outcomes

leadIds is an array even though only one lead was sent, so its values sit at result.leadIds.0..... Without the index the reference does not resolve.

Recognised byMeaningReject reasonFrequency
result.accepted: truePre-check passed,common
result.leadIds.0.leadStatus: 1Accepted for processing,common
result.accepted: falsePre-check refused, no reason givenUnspecifiedcommon
result.leadIds.0.leadStatus: 2Failed the knockout lead scoringNot Eligiblecommon
result.errors.0 ~ Duplicate recordAlready on fileDuplicateoccasional
result.errors.0 ~ `Invalid codeinvalid formatis requiredmax length`
result.errors.0 ~ nedostatečného příjmuIncome below thresholdLow Incomeoccasional
result.errors.0 ~ mimo definované hodinyOutside accepted hoursOutside Hoursrare
result.errors.0 ~ Půjčky pro fyzické osobyWrong product for this applicantProduct Mismatchrare
result.errorMessage ~ duplicAlready on fileDuplicaterare
result.errorMessage ~ age, věkBelow the age limitAgerare

leadStatus is a numeric code with its own meaning, and only some of it belongs in the run:

CodeMeaningWhere it shows up
0Unknown, should not occur,
1Accepted after lead scoringat import
2Refused by knockout lead scoringat import
3Refused during later processingpostback
4Cancelled during later processingpostback
5Converted and commissionablepostback

Codes 3, 4 and 5 arrive later by postback and never appear in the response. They belong to the Tracking API, not to the integration. Branch only on 1 and 2.

leadStatus: 2 is the one place in this integration where Not Eligible is right: the advertiser has named a knockout criterion the lead failed. A bare accepted: false at the pre-check names nothing and is Unspecified.

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

Branching

Auth succeeded:

{parsedBody.result.isOk}     equals         true
{parsedBody.result.token}    is not empty

Ping, accepted:

{parsedBody.result.accepted}    equals    true

Ping, refused, paired with a status test so that only the advertiser’s own answers reach it:

{parsedBody.result.accepted}    not equals       true
{status}                        is less than     400

Post, accepted:

{parsedBody.result.leadIds.0.leadStatus}    equals    1

Post, refused:

{parsedBody.result.leadIds.0.leadStatus}    not equals    1

Stored values

ParameterSource
{custom_access_token}{parsedBody.result.token} from Auth
{custom_precheck_id}{parsedBody.result.id} from the pre-check
{external_id}{parsedBody.result.leadIds.0.id} from the import
{redirect_url}{parsedBody.result.leadIds.0.redirectUrl} from the import

The access token is a working value with a lifetime, so it belongs in a custom_ parameter, not in {external_id} and not written back into the secrets table.

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.