Created 2007-06-13 (kag)
Updated 2011-03-01 (kag)
NOTE: Recent changes are highlighted.
SOAP is the preferred method for sending leads to Efolks.
For posting to the LMS system, since we are using SOAP,
the WSDL file can essentially be used as documentation (see below).
IMPORTANT: The most common issue with integrating with our SOAP web service is that
we do not do authentication as part of the SOAP request, but rather using HTTP Authentication /
Basic Access Authentication (RFC 1945 section 11).
com.efolks.www.leads_incoming client = new com.efolks.www.leads_incoming();
client.Credentials = new System.Net.NetworkCredential("username", "password");
$client = new SoapClient($wsdl_url, array('login' => USERNAME, 'password' => PASSWORD));
https://www.efolks.com/webservices/leads_incoming.php?wsdl
We support HTTP-POST (and HTTP-GET) submissions of leads for those not planning to implement a SOAP lead submission. HTTPS/SSL is required. Our service will not accept leads on non-secure HTTP connection.
The posting URL is:
https://www.efolks.com/webservices/leads_incoming.php
| Field | Description | Required | Form Field? |
|---|---|---|---|
| login | Assigned by efolks. Note that this should be different than the login you use to access your account/stats. | Yes | No |
| password | Assigned by efolks | Yes | No |
| return_type | Format of the response from our system. See examples below. Valid values: simple, xml | Yes | No |
| redirect | URL to redirect to after processing | No | No |
| aid | Affiliate ID, provided by efolks | Yes | No |
| cid | Campaign ID, provided by efolks | Yes | No |
| wid | Wildcard ID. this is an optional way to sub-divide campaigns. It can contain alphanumeric characters, spaces, underscores(_), dashes(-), exclamation points(!), dots(.), and pipes(|). This can be useful for reporting. | No | No |
| vendor | Vendor customized identifier; Freeform (32 character) ID. This can be used as an identifier for statistics or for lead verification purposes. Typically, this might be your unique lead ID. This will be returned in the response. | No | Could be * |
| first_name | Customer's first name | Yes | Yes |
| last_name | Customer's last name | Yes | Yes |
| Customer's email | Yes | Yes | |
| address1 | Street address, line 1 | No | Yes |
| address2 | Street address, line 2 | No | Yes |
| city | If not specified, interpolated from zip | No | Yes |
| state | Two-character state code; If not specified, interpolated from zip | No | Yes |
| zip | 5-digit zipcode | Yes | Yes |
| daytime_phone | Daytime phone number, 10 digits. This field was formerly known as "phone1" which is still acceptable. | Yes | Yes |
| evening_phone | Evening phone number, 10 digits. This field was formerly known as "phone2" which is still acceptable. | No | Yes |
| cell_phone | Cell phone number, 10 digits. This field was formerly known as "phone3" which is still acceptable. | No | Yes |
| notes | Any extra info the customer would like us to know. We try to pass this along to the call center agents who will process this lead. | No | Maybe *** |
| service | The service(s) in which the client is interested. If requesting more than one, the list
should be comma-delimited. This is usually "CREDIT_REPORT_REPAIR". If you are posting leads to be called by the efolks/CreditOptions.com call center, use "OUTBOUND_CALL". Below is a complete list of possible values. Click on any of the values to see a list of additional fields required for that service. Valid values:
NOTE: Before passing any value besides "CREDIT_REPORT_REPAIR", please contact your representative to make sure you are aware of the individual requirements for each service. NOTE: This field has been renamed; it was formerly "categories". For backward-compatibility, it can still be referred to as "categories", "category", and "services" is also acceptable. |
Yes | Possibly ** |
| referrer | HTTP Referrer; Link/URI from where the lead came to your collector | No | No |
| ip_address | Customer's IP address. This field was formerly known as "remote_addr" which is still acceptable. | Yes | No |
| source_uri | URI where the lead was collected. (I.e. http://yourdomain.com/collector.html). This needs to be a full URI including the "http://" portion. | Yes | No |
| returns_url | URL where postback information will be posted (optional) | No | No |
| best_time_to_call | Anytime, Morning, Afternoon, Evening (optional) | No | Yes |
| user_agent | HTTP-USER-AGENT of customer | No | No |
| opt_in | Boolean (0 or 1); specifies if they've opted in for 3rd party information. Default is 0 (false). | Yes | Yes |
| extra_info | array of key/value pairs. Any extra information you need passed back to you. | No | Maybe *** |
* - Vendor field is a free-form identification field (up to 32 characters)
that we store with each lead and also pass back in each response. This is
typically used to send us your lead identifier. It could be a
form field, but usually is not.
** - The "service" field doesn't usually have a direct relationship to any form
field inputs. Usually some Javascript or back-end code will be needed
to build this field before sending to us unless, for example, your
form is an implicit "CREDIT_REPORT_REPAIR" collector.
*** - The notes and extra_info fields are just used for additional information
regarding a lead. The notes field will be passed on and visible to our
fulfillment partners. This can be a form field input, but does not
have to be.
| Field | Description | Required | Form Field? |
|---|---|---|---|
| confirmed_future_contact | No | Yes | |
| credit_grade | No | Yes | |
| credit_intention |
Type: string
|
No | Yes |
| goal |
Type: string
|
No | Yes |
| months_negative_items_affected |
Type: int
|
No | Yes |
| months_to_complete_goal |
Type: int
|
No | Yes |
| negative_items |
Type: string
|
No | Yes |
| positive_credit |
Type: string
|
No | Yes |
| primary_credit_issue |
Type: string
|
No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| collections_debt |
Type: int
|
No | Yes |
| creditcard_debt |
Type: int
|
No | Yes |
| credit_grade | No | Yes | |
| facing_bankruptcy |
Type: bool
|
No | Yes |
| how_late_on_payments |
Type: string
Expression: (Current|About to fall behind|[369]1\+ days behind|One year\+ behind) |
No | Yes |
| maximum_payment_amount |
Type: int
|
No | Yes |
| medical_debt |
Type: int
|
No | Yes |
| monthly_income |
Type: int
|
No | Yes |
| number_of_creditors |
Type: int
|
No | Yes |
| owns_home |
Type: bool
|
No | Yes |
| secured_debt |
Type: int
|
No | Yes |
| spoken_language |
Type: string
|
No | Yes |
| tax_debt |
Type: int
|
No | Yes |
| unsecured_debt |
Type: int
|
Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| collections_debt |
Type: int
|
No | Yes |
| creditcard_debt |
Type: int
|
No | Yes |
| has_source_of_income | No | Yes | |
| how_many_unsecured_debt_accounts |
Type: int
|
No | Yes |
| medical_debt |
Type: int
|
No | Yes |
| primary_creditor |
Type: string
|
No | Yes |
| secured_debt |
Type: int
|
No | Yes |
| tax_debt |
Type: int
|
No | Yes |
| unsecured_debt |
Type: int
|
Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| marital_status | No | Yes | |
| owns_home |
Type: bool
|
No | Yes |
| primary_tax_issue |
Type: string
|
No | Yes |
| tax_agency | Yes | Yes | |
| tax_debt |
Type: int
|
Yes | Yes |
| tax_filing_status | Yes | Yes | |
| tax_type | Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| bank_name |
Type: string
|
No | Yes |
| current_down_payment |
Type: int
|
Yes | Yes |
| date_of_birth | Yes | Yes | |
| declared_bankruptcy | Yes | Yes | |
| employer |
Type: string
|
Yes | Yes |
| employer_phone_number | Yes | Yes | |
| employment_type |
Type: string
|
No | Yes |
| facing_bankruptcy |
Type: bool
|
No | Yes |
| has_checking_account | No | Yes | |
| has_savings_account | No | Yes | |
| household_monthly_income |
Type: int
|
Yes | Yes |
| job_title |
Type: string
|
Yes | Yes |
| monthly_home_payment |
Type: int
|
Yes | Yes |
| months_at_previous_residence |
Type: int
|
No | Yes |
| months_at_residence |
Type: int
|
Yes | Yes |
| months_with_employer |
Type: int
|
Yes | Yes |
| owns_home |
Type: bool
|
Yes | Yes |
| preferred_contact_method | No | Yes | |
| residence_type |
Type: string
|
No | Yes |
| social_security_number | Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| collections_debt |
Type: int
|
No | Yes |
| creditcard_debt |
Type: int
|
Yes | Yes |
| how_late_on_payments |
Type: string
Expression: (Current|About to fall behind|[369]1\+ days behind|One year\+ behind) |
Yes | Yes |
| medical_debt |
Type: int
|
No | Yes |
| secured_debt |
Type: int
|
No | Yes |
| unsecured_debt |
Type: int
|
No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| additional_cash_requested |
Type: int
|
No | Yes |
| credit_grade | Yes | Yes | |
| declared_bankruptcy | No | Yes | |
| employer |
Type: string
|
Yes | Yes |
| estimated_home_value |
Type: int
|
Yes | Yes |
| first_mortgage_balance |
Type: int
|
Yes | Yes |
| first_mortgage_rate | Yes | Yes | |
| first_mortgage_type | Yes | Yes | |
| home_loan_purpose |
Type: string
Expression: (Change terms|Lower monthly payment|Lower interest rate|Make home improvements|Pay off debt|Take out cash) |
No | Yes |
| household_monthly_income |
Type: int
|
Yes | Yes |
| monthly_debt_payments |
Type: int
|
No | Yes |
| new_property_desc |
Type: string
Expression: (Single Family Home|Town House|Multiple Family Home|Condominium) |
No | Yes |
| new_property_state |
Type: string
Expression: (AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NC|ND|NE|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY) |
No | Yes |
| new_property_zip | No | Yes | |
| second_mortgage |
Type: bool
|
No | Yes |
| second_mortgage_balance |
Type: int
|
No | Yes |
| second_mortgage_rate | No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| additional_cash_requested |
Type: int
|
No | Yes |
| credit_grade | Yes | Yes | |
| declared_bankruptcy | No | Yes | |
| employer |
Type: string
|
No | Yes |
| estimated_home_value |
Type: int
|
Yes | Yes |
| first_mortgage_balance |
Type: int
|
Yes | Yes |
| first_mortgage_rate | Yes | Yes | |
| first_mortgage_type | Yes | Yes | |
| home_loan_purpose |
Type: string
Expression: (Change terms|Lower monthly payment|Lower interest rate|Make home improvements|Pay off debt|Take out cash) |
No | Yes |
| household_monthly_income |
Type: int
|
Yes | Yes |
| monthly_debt_payments |
Type: int
|
No | Yes |
| new_property_desc |
Type: string
Expression: (Single Family Home|Town House|Multiple Family Home|Condominium) |
No | Yes |
| new_property_state |
Type: string
Expression: (AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NC|ND|NE|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY) |
No | Yes |
| new_property_zip | No | Yes | |
| second_mortgage |
Type: bool
|
No | Yes |
| second_mortgage_balance |
Type: int
|
No | Yes |
| second_mortgage_rate | No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| collections_debt |
Type: int
|
No | Yes |
| creditcard_debt |
Type: int
|
No | Yes |
| has_source_of_income | No | Yes | |
| how_many_unsecured_debt_accounts |
Type: int
|
No | Yes |
| medical_debt |
Type: int
|
No | Yes |
| unsecured_debt |
Type: int
|
Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| date_of_birth | Yes | Yes | |
| direct_deposit | Yes | Yes | |
| gender | No | Yes | |
| has_checking_account | No | Yes | |
| social_security_number | Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| credit_grade | Yes | Yes | |
| declared_bankruptcy | No | Yes | |
| first_time_home_buyer |
Type: bool
|
No | Yes |
| found_home_already |
Type: bool
|
Yes | Yes |
| household_monthly_income |
Type: int
|
No | Yes |
| new_down_payment |
Type: int
|
Yes | Yes |
| new_mortgage_agent |
Type: bool
|
No | Yes |
| new_mortgage_time_frame | No | Yes | |
| new_mortgage_type | Yes | Yes | |
| new_mortgage_value |
Type: int
|
Yes | Yes |
| new_property_desc |
Type: string
Expression: (Single Family Home|Town House|Multiple Family Home|Condominium) |
Yes | Yes |
| new_property_state |
Type: string
Expression: (AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NC|ND|NE|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY) |
Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| bankruptcy_reason |
Type: string
|
No | Yes |
| unsecured_debt |
Type: int
|
No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| already_graduated |
Type: bool
|
Yes | Yes |
| how_many_student_loans |
Type: int
|
Yes | Yes |
| in_default_on_student_loans |
Type: bool
|
Yes | Yes |
| social_security_number | Yes | Yes | |
| student_loan_debt |
Type: int
|
Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| additional_money_toward_mortgage |
Type: int
|
No | Yes |
| can_resume_mortgage_payments |
Type: bool
|
Yes | Yes |
| credit_grade | Yes | Yes | |
| estimated_home_value |
Type: int
|
Yes | Yes |
| first_mortgage_balance |
Type: int
|
Yes | Yes |
| first_mortgage_lender |
Type: string
|
Yes | Yes |
| first_mortgage_payment |
Type: int
|
No | Yes |
| first_mortgage_rate | Yes | Yes | |
| first_mortgage_type | Yes | Yes | |
| foreclosure_date | Yes | Yes | |
| foreclosure_date_set |
Type: bool
|
Yes | Yes |
| household_monthly_income |
Type: int
|
Yes | Yes |
| monthly_home_payment |
Type: int
|
Yes | Yes |
| months_behind_on_mortgage |
Type: int
|
Yes | Yes |
| property_description |
Type: string
Expression: (Single Family Home|Town House|Condominium|Multiple Family Home|Mobile Home) |
Yes | Yes |
| received_notice_of_default |
Type: bool
|
Yes | Yes |
| second_mortgage_balance |
Type: int
|
No | Yes |
| second_mortgage_payment |
Type: int
|
No | Yes |
| second_mortgage_rate | No | Yes | |
| second_mortgage_type | No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| date_of_birth | Yes | Yes | |
| household_monthly_income |
Type: int
|
Yes | Yes |
| outstanding_payday_loans |
Type: int
|
Yes | Yes |
| payday_loan_debt |
Type: int
|
Yes | Yes |
| payday_loan_type | Yes | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| make_id |
Type: string
|
No | Yes |
| make_text |
Type: string
|
No | Yes |
| model_id |
Type: string
|
No | Yes |
| model_text |
Type: string
|
No | Yes |
| Field | Description | Required | Form Field? |
|---|---|---|---|
| make_text |
Type: string
|
Yes | Yes |
| mileage |
Type: int
|
Yes | Yes |
| model_text |
Type: string
|
Yes | Yes |
| model_year |
Type: int
|
Yes | Yes |
uid:d02ab976cc6b475fa0136580b04667c4 status:ok details: vendor:A123456 confirmation_code:c0ffc
<xml_code> <uid>b1c8de8ffc94401cbc9cde5bc099f521</uid> <status>ok</status> <details/> <vendor>A123456</vendor> <confirmation_code>c1002</confirmation_code> </xml_code>
<xml_code> <uid>b0c67c86de6d4205abc9fda166979f4b</uid> <status>dupe</status> <details>Duplicate Lead</details> <vendor>A123456</vendor> <confirmation_code>c1022</confirmation_code> </xml_code>
<xml_code> <uid>ERROR</uid> <status>rejected</status> <details>Authentication failure. Bad username/password.</details> <vendor/> <confirmation_code/> </xml_code>
uid:5561b29a7747468c840b6d35c0d6713e status:rejected details:Bad Zipcode/Areacode vendor:A123456 confirmation_code:c1029
<xml_code> <uid>19cd9a96f1d74a9a9b6a8785c0f8bd33</uid> <status>rejected</status> <details> Internal/Database Error: Cannot add or update a child row </details> <vendor/> <confirmation_code>c1073</confirmation_code> </xml_code>
When posting, your response should contain a "status" field. You should always parse this field in order to identify whether or not the submission was accepted. If the status was "rejected", there should be an additional field named "details". This field should help you identify why the lead was rejected. For more details, see the Rejection Code Descriptions.
| Response/Status | Description |
|---|---|
| ok | The lead was accepted into the system. |
| rejected | The lead was not accepted as a billable lead. |
| dupe | The lead was accepted as a duplicate. The lead has been received previously within the last 90 days. |
| Rejection Code | Description |
|---|---|
| Bad Zipcode/Areacode | The zip code provided was not a known valid civilian United States zip code. |
| Campaign status: disabled | The campaign being posted to has been disabled. |
| Data not accepted | The data was not accepted due to various reasons for appearing fraudulent or invalid. |
| Daytime phone number appears to be invalid | The daytime (phone1) number provided does not appear to have a valid area code + exchange combination. This is validated against the NANPA database. |
| Daytime phone number is on our do-not-call list | We have marked the provided daytime (phone1) number on our Do-Not-Call (DNC) list. |
| E-mail address rejected. | The provided e-mail address is from a domain we have specifically rejected for being known as fraudulent, or the e-mail address is on a specific invalid e-mail address list. |
| Evening phone number appears to be invalid | The evening (phone2) number provided does not appear to have a valid area code + exchange combination. This is validated against the NANPA database. |
| Evening phone number is on our do-not-call list | We have marked the provided evening (phone2) number on our Do-Not-Call (DNC) list. |
| Duplicate Submission | The lead information submitted (based on e-mail address) has already been submitted (and accepted) from the same Affiliate (AID) within the past 24 hours. |
| Invalid IP address: X.X.X.X | The IP address provided as where the lead was collected from is in our IP address black-list. |
| Invalid US e-mail address | E-mail address is invalid (improperly formatted), appears to be an anonymous e-mail address, or has a TLD that is not a valid gTLD or United States ccTLD. |
| First name missing | First name field was not provided. |
| Last name missing | Last name field was not provided. |
| Phone number missing | No phone numbers were provided. |
| Internal/Database Error | We experienced some sort of internal error during lead submission. This could mean an error on our side or, more likely, a misformatted/bad posting request. |
| IP address misformatted. | The IP address provided was misformatted (not a valid IP address format). |
| No IP address provided. | IP address field was not provided. |