Sell leads to Flexifin (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.

AdvertiserFlexifin
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": 360
      },
      "data": {
        "formData": {
          "active": true,
          "title": "",
          "subtitle": "",
          "flow": "ping",
          "beType": "integration"
        }
      }
    },
    {
      "id": "2-1",
      "type": "startNode",
      "position": {
        "x": -560,
        "y": 40
      },
      "data": {
        "formData": {
          "active": true,
          "title": "",
          "subtitle": "",
          "flow": "post",
          "beType": "integration"
        }
      }
    },
    {
      "id": "1-2",
      "type": "modifyFieldNode",
      "position": {
        "x": -360,
        "y": 360
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Transform data",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{data_home_status}",
              "fields": [
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "owner",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "HOME_OWNER"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "tenant",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "TENANT"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "family",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "CO_OWNED"
                },
                {
                  "source": "{data_home_status}",
                  "operator": "equals",
                  "value": "employ-benefits",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "EMPLOYEE_BENEFIT"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "1-3",
      "type": "httpNode",
      "position": {
        "x": -140,
        "y": 360
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Ping",
          "subtitle": "",
          "method": "POST",
          "endpoint": "{endpoint}/api/v1/leads/check",
          "timeout": 30,
          "format": null,
          "parser": "json",
          "notsend": null,
          "convert_data": null,
          "headers": [],
          "query": [],
          "body": [
            {
              "key": "code",
              "value": "{partner_id}"
            },
            {
              "key": "token",
              "value": "{token}"
            },
            {
              "key": "sourceDetail",
              "value": "{username}"
            },
            {
              "key": "residenceAddress.zip",
              "value": "{data_zip}"
            },
            {
              "key": "personalInfo.lastName",
              "value": "{data_last_name}"
            },
            {
              "key": "residenceAddress.city",
              "value": "{data_city}"
            },
            {
              "key": "personalInfo.firstName",
              "value": "{data_first_name}"
            },
            {
              "key": "residenceAddress.street",
              "value": "{data_street}"
            },
            {
              "key": "personalInfo.birthNumber",
              "value": "{data_nin}"
            },
            {
              "key": "residenceAddress.homeStatus",
              "value": "{data_home_status}"
            },
            {
              "key": "residenceAddress.houseNumber",
              "value": "{data_house_number}"
            }
          ],
          "signature": null,
          "insecure": null
        }
      }
    },
    {
      "id": "1-4",
      "type": "endNode",
      "position": {
        "x": 320,
        "y": 300
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Success",
          "subtitle": "",
          "success": "success"
        }
      }
    },
    {
      "id": "2-2",
      "type": "modifyFieldNode",
      "position": {
        "x": -360,
        "y": 40
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Transform data",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{data_different_contact_address}",
              "fields": [
                {
                  "source": "{data_different_contact_address}",
                  "operator": "equals",
                  "value": "true",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "0"
                },
                {
                  "source": "{data_different_contact_address}",
                  "operator": "equals",
                  "value": "false",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "1"
                },
                {
                  "source": "{data_different_contact_address}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "to_bool",
                  "pattern": "",
                  "output": ""
                }
              ]
            },
            {
              "fieldName": "{data_cell_phone}",
              "fields": [
                {
                  "source": "{data_cell_phone}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "regex_replace",
                  "pattern": "^\\s*(?:(?:\\+?420|00420)[\\s().-]*)?(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)\\s*$",
                  "output": "+420$1$2$3$4$5$6$7$8$9"
                }
              ]
            },
            {
              "fieldName": "{data_income_type}",
              "fields": [
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "full-time",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "EMPLOYED"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "self-employed",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "SELF_EMPLOYED"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "parental",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "MATERNITY_LEAVE"
                },
                {
                  "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": "UNEMPLOYED"
                },
                {
                  "source": "{data_income_type}",
                  "operator": "equals",
                  "value": "other",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "OTHER"
                }
              ]
            },
            {
              "fieldName": "{data_employer_phone}",
              "fields": [
                {
                  "source": "{data_employer_phone}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "regex_replace",
                  "pattern": "^\\s*(?:(?:\\+?420|00420)[\\s().-]*)?(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)[\\s().-]*(\\d)\\s*$",
                  "output": "+420$1$2$3$4$5$6$7$8$9"
                }
              ]
            },
            {
              "fieldName": "{data_employed_time}",
              "fields": [
                {
                  "source": "{data_employed_time}",
                  "operator": "equals",
                  "value": "3-month",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "1"
                },
                {
                  "source": "{data_employed_time}",
                  "operator": "equals",
                  "value": "1-year",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "3"
                },
                {
                  "source": "{data_employed_time}",
                  "operator": "equals",
                  "value": "1-2-year",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "4"
                },
                {
                  "source": "{data_employed_time}",
                  "operator": "equals",
                  "value": "2-5-year",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "5"
                },
                {
                  "source": "{data_employed_time}",
                  "operator": "equals",
                  "value": "5-year-plus",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "8"
                },
                {
                  "source": "{data_employed_time}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "to_int",
                  "pattern": "",
                  "output": ""
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "2-3",
      "type": "httpNode",
      "position": {
        "x": -140,
        "y": 40
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Post",
          "subtitle": "",
          "method": "POST",
          "endpoint": "{endpoint}/api/v1/leads/signup",
          "timeout": 30,
          "format": null,
          "parser": "json",
          "notsend": null,
          "convert_data": null,
          "headers": [],
          "query": [],
          "body": [
            {
              "key": "code",
              "value": "{partner_id}"
            },
            {
              "key": "token",
              "value": "{token}"
            },
            {
              "key": "period",
              "value": "toInt({data_period})"
            },
            {
              "key": "product",
              "value": "loan"
            },
            {
              "key": "ipAddress",
              "value": "{ip_address}"
            },
            {
              "key": "sameAddress",
              "value": "{data_different_contact_address}"
            },
            {
              "key": "sourceDetail",
              "value": "{username}"
            },
            {
              "key": "requestedAmount",
              "value": "toInt({data_requested_amount})"
            },
            {
              "key": "bankData.bankCode",
              "value": "{data_bank_code}"
            },
            {
              "key": "contactAddress.zip",
              "value": "{data_contact_zip}"
            },
            {
              "key": "personalInfo.email",
              "value": "{data_email}"
            },
            {
              "key": "contactAddress.city",
              "value": "{data_contact_city}"
            },
            {
              "key": "residenceAddress.zip",
              "value": "{data_zip}"
            },
            {
              "key": "contactAddress.street",
              "value": "{data_contact_street}"
            },
            {
              "key": "employerData.employer",
              "value": "{data_employer}"
            },
            {
              "key": "employerData.jobTitle",
              "value": "{data_job_title}"
            },
            {
              "key": "personalInfo.lastName",
              "value": "{data_last_name}"
            },
            {
              "key": "residenceAddress.city",
              "value": "{data_city}"
            },
            {
              "key": "personalInfo.cellPhone",
              "value": "{data_cell_phone}"
            },
            {
              "key": "personalInfo.firstName",
              "value": "{data_first_name}"
            },
            {
              "key": "personalInfo.incomeType",
              "value": "{data_income_type}"
            },
            {
              "key": "residenceAddress.street",
              "value": "{data_street}"
            },
            {
              "key": "incomeData.monthlyIncome",
              "value": "toInt({data_monthly_income})"
            },
            {
              "key": "personalInfo.birthNumber",
              "value": "{data_nin}"
            },
            {
              "key": "employerData.employedTime",
              "value": "{data_employed_time}"
            },
            {
              "key": "bankData.bankAccountNumber",
              "value": "{data_account_number}"
            },
            {
              "key": "contactAddress.houseNumber",
              "value": "{data_contact_house_number}"
            },
            {
              "key": "employerData.employerPhone",
              "value": "{data_employer_phone}"
            },
            {
              "key": "incomeData.monthlyExpenses",
              "value": "toInt({data_expenses})"
            },
            {
              "key": "residenceAddress.homeStatus",
              "value": "{data_home_status}"
            },
            {
              "key": "residenceAddress.houseNumber",
              "value": "{data_house_number}"
            },
            {
              "key": "personalInfo.identityCardNumber",
              "value": "{data_identity_card_number}"
            },
            {
              "key": "employerData.employerAddress.city",
              "value": "{data_employer_address}"
            }
          ],
          "signature": null,
          "insecure": null
        }
      }
    },
    {
      "id": "2-4",
      "type": "setNode",
      "position": {
        "x": 100,
        "y": -40
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Store response",
          "subtitle": "",
          "fields": [
            {
              "key": "{redirect_url}",
              "value": "{parsedBody.data.url}"
            },
            {
              "key": "{external_id}",
              "value": "{parsedBody.data.refNo}"
            }
          ]
        }
      }
    },
    {
      "id": "2-6",
      "type": "endNode",
      "position": {
        "x": 320,
        "y": -40
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Success",
          "subtitle": "",
          "success": "success"
        }
      }
    },
    {
      "id": "1-5",
      "type": "modifyFieldNode",
      "position": {
        "x": 100,
        "y": 440
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Reject reason",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{reason}",
              "fields": [
                {
                  "source": "{parsedBody.data.status}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Unspecified"
                }
              ]
            },
            {
              "fieldName": "{reason_detail}",
              "fields": [
                {
                  "source": "{body}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{body}"
                },
                {
                  "source": "{parsedBody.message}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.message}"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "1-6",
      "type": "endNode",
      "position": {
        "x": 320,
        "y": 440
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Rejected",
          "subtitle": "",
          "success": "failed"
        }
      }
    },
    {
      "id": "2-5",
      "type": "modifyFieldNode",
      "position": {
        "x": 100,
        "y": 120
      },
      "data": {
        "formData": {
          "active": true,
          "title": "Reject reason",
          "subtitle": "",
          "data": [
            {
              "fieldName": "{reason}",
              "fields": [
                {
                  "source": "{parsedBody.data.status}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "Unspecified"
                }
              ]
            },
            {
              "fieldName": "{reason_detail}",
              "fields": [
                {
                  "source": "{body}",
                  "operator": "always",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{body}"
                },
                {
                  "source": "{parsedBody.message}",
                  "operator": "is_not_empty",
                  "value": "",
                  "value2": "",
                  "modification": "replace",
                  "pattern": "",
                  "output": "{parsedBody.message}"
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "2-7",
      "type": "endNode",
      "position": {
        "x": 320,
        "y": 120
      },
      "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.data.status}",
            "operator": "equals",
            "output": "Accepted",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-1-3-1-5",
      "source": "1-3",
      "target": "1-5",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.data.status}",
            "operator": "equals",
            "output": "Rejected",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-2-2-2-3",
      "source": "2-2",
      "target": "2-3",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": []
      }
    },
    {
      "id": "edge-2-3-2-4",
      "source": "2-3",
      "target": "2-4",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.data.status}",
            "operator": "equals",
            "output": "Accepted",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-2-3-2-5",
      "source": "2-3",
      "target": "2-5",
      "type": "customEdge",
      "data": {
        "active": true,
        "title": "",
        "subtitle": "",
        "conditions": [
          {
            "value": "{parsedBody.data.status}",
            "operator": "equals",
            "output": "Rejected",
            "output2": ""
          }
        ]
      }
    },
    {
      "id": "edge-2-4-2-6",
      "source": "2-4",
      "target": "2-6",
      "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": []
      }
    },
    {
      "id": "edge-2-5-2-7",
      "source": "2-5",
      "target": "2-7",
      "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

Two calls with the same shape: a cheap pre-check on a few identifying fields, then the full signup. Both return Accepted or Rejected in the body under HTTP 200.

The answer is always in data.status. The HTTP status code says nothing about the decision.

What will be needed from advertiser

KeyPurpose
endpointBase API URL.
tokenAPI token sent in the request body.
usernameAdvertiser-provided value used as sourceDetail by the blueprint.
partner_idPartner code sent as code.

Flows

Ping, POST /api/v1/leads/check. Name, national ID and address only. Returns data.status.

Post, POST /api/v1/leads/signup. Full payload. Returns data.status, plus refNo and url when accepted.

Calls

POST {endpoint}/api/v1/leads/check
POST {endpoint}/api/v1/leads/signup
Content-Type: application/json
format: application/json

Credentials travel in the body: code is the partner identifier and token the key. There is no auth header.

Request fields

Dotted paths for nesting.

Ping
FieldRequiredValue
codeyes{partner_id}
tokenyes{token}
sourceDetailno{send_id}
personalInfo.firstNameyes{g_name_first}
personalInfo.lastNameyes{g_name_last}
personalInfo.birthNumberyes{g_id_national_number}
residenceAddress.streetyes{g_address_street}
residenceAddress.houseNumberyes{g_address_street_number}
residenceAddress.cityyes{g_address_city}
residenceAddress.zipyes{g_address_zip}
residenceAddress.homeStatusyes{g_home_type}, see enums
Post

Everything above, plus:

FieldRequiredValue
personalInfo.emailyes{g_email}
personalInfo.cellPhoneyes{g_phone} in +420XXXXXXXXX
personalInfo.identityCardNumberyes{g_id_card_number}
personalInfo.incomeTypeyes{g_fin_type}, see enums
incomeData.monthlyIncomeyestoInt({g_fin_income})
incomeData.monthlyExpensesyestoInt({g_fin_expenses})
employerData.employerno{g_employer_name}
employerData.jobTitleno{g_employ_position}
employerData.employedTimeno{g_employ_time}, see enums
employerData.employerPhoneno{g_employer_phone} in +420XXXXXXXXX
employerData.employerAddress.cityno{g_employer_address}
bankData.bankAccountNumberyes{g_bank_account_number}
bankData.bankCodeyes{g_bank_account_code}
contactAddress.streetno{g_address_contact_street}
contactAddress.houseNumberno{g_address_contact_street_number}
contactAddress.cityno{g_address_contact_city}
contactAddress.zipno{g_address_contact_zip}
sameAddressyesinverse of {g_address_contact_status}
requestedAmountyestoInt({g_amount})
periodyestoInt({g_period})
productyesloan
ipAddressyes{ip_address}

Phone numbers must be in international form. personalInfo.Invalid phone number format and employerData.Invalid phone number format are the two most common 400s, and they account for most of them together. The advertiser wants +420 followed by nine digits.

sameAddress is inverted relative to a “contact address differs” checkbox, it is true when the addresses are the same.

Amounts, periods and employment length go as integers, so convert inline in the HTTP node with toInt(...) rather than adding a Modify step for it.

Enums

incomeType: EMPLOYED, SELF_EMPLOYED, MATERNITY_LEAVE, PENSION, UNEMPLOYED, OTHER.

homeStatus: HOME_OWNER, TENANT, DORMITORY, HOSTEL, MINISTRY, EMPLOYEE_BENEFIT, CO_OWNED.

employedTime is a number of buckets: 1 under three months, 3 under a year, 4 one to two years, 5 two to five years, 8 over five years. Where the form’s bucket falls between two of the advertiser’s, choose the one that presents the lead as qualifying.

Outcomes

message is OK on every answer, accepted or not. It describes the call, not the decision, so nothing should branch on it. The decision is always data.status.

Recognised byHTTPMeaningReject reasonFrequency
data.status: Accepted200Approved,common
data.status: Rejected200Refused, no reason givenUnspecifiedcommon
validationErrors ~ Invalid phone number format400Malformed phoneInvalid Dataoccasional
validationErrors ~ must be an email400Malformed e-mailInvalid Datarare
data.status: Accepted, refNo and url null200Approved but no reference issued, see belowrare
HTML error page500Advertiser-side failure, (technical)rare

Two things in that table need care.

Accepted at the post arrives with and without refNo. Most acceptances carry a reference and a URL; a handful carry Accepted with both null. Those are not conversions there is nowhere to send the applicant and nothing to reconcile later, so the success condition needs url as well as the status.

Rejected at the post also arrives with a refNo and a url. The advertiser has created a record and still refused. Branch on data.status, never on the presence of the URL alone.

Rejected carries no reason at all. It is Unspecified, the largest bucket in the report and the thing to raise with the advertiser.

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

Branching

Ping, approved:

{status}                     equals   200
{parsedBody.data.status}     equals   Accepted

Ping, refused:

{status}                     equals   200
{parsedBody.data.status}     equals   Rejected

Post, converted:

{status}                     equals         200
{parsedBody.data.status}     equals         Accepted
{parsedBody.data.url}        is not empty

Post, refused, the catch-all, scoped to the business field:

{status}                     equals             200
{parsedBody.data.status}     regex not match    ^Accepted$

400 carries a documented validationErrors list naming the failed field, so it gets a branch. 500 returns an HTML page and gets none.

Stored values

ParameterSource
{external_id}{parsedBody.data.refNo}
{redirect_url}{parsedBody.data.url}

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.