Skip to main content

API & Webhooks FAQ: Building Automated Integrations

Frequently asked questions about integrating with Double Nickel - webhook payload contents, event types, status values, document URL expiration, retry behavior, OAuth 2.0 configuration, read scopes, and automating new-hire file reviews.

What integration surfaces does Double Nickel offer?

For authentication, environments, scopes, and error codes shared by all endpoints, see Double Nickel API: Getting Started.

Does the status webhook payload include application data or document URLs?

No. The webhook payload contains the applicantId, companyId, and the status change (previous and current stage with sub-status). It does not carry application data or document links. The intended pattern is to use those identifiers to call GET /applicant for profile data and GET /documents for document download URLs.

What webhook event types are available?

Currently exactly one: Applicant Status Changed (eventType: "applicant.status_changed"). There is no separate hire-specific event — filter the payload for the transitions you care about. Deliveries fire on every stage change and on sub-status changes (for example, an applicant moving into the ONBOARDING hiring stage while remaining a PROSPECT).

What values can the status fields take? How do I detect hires?

applicantStage is one of PROSPECT, HIRED, DISQUALIFIED, NOT_INTERESTED, TERMINATED. Each stage except HIRED carries a stage-specific sub-status key: PROSPECThiringStage (LEAD, APPLICATION, QUALIFICATION, ONBOARDING), DISQUALIFIEDdisqualifiedReason, NOT_INTERESTEDnotInterestedReason, TERMINATEDterminatedReason.

  • Hires: act when data.change.current.applicantStage === "HIRED".

  • Moved to onboarding: act when current.applicantStage === "PROSPECT" and current.hiringStage === "ONBOARDING" — onboarding is a sub-status within PROSPECT, not a top-level stage.

Are document download URLs authenticated? How long do they stay valid?

downloadUrl values returned by the Documents API are signed CloudFront URLs. They require no additional authentication to download, and they expire 5 minutes after the API response is generated. Download promptly, don't store the URLs, and re-fetch the document list when you need fresh ones.

What is the webhook retry behavior if my endpoint is slow or errors?

Each delivery attempt times out after 5 seconds by default. A timeout or any non-2xx response triggers up to 3 automatic retries with exponential backoff (4 attempts total). After the final failure the event is marked failed and logged. Every attempt — including response status, body, and timing — is logged, so support can pull the delivery history for your endpoint if something doesn't arrive. Best practice: return 2xx immediately and process asynchronously.

What do I need to configure for OAuth 2.0 webhook authentication?

Provide a token endpoint (token_url) implementing the OAuth 2.0 client credentials grant, plus the client_id and client_secret Double Nickel should use. Additional token-request parameters (such as audience or scope) can also be configured. Before each delivery attempt, Double Nickel POSTs a JSON body (Content-Type: application/json) to your token endpoint and expects a JSON response containing access_token; the delivery then carries Authorization: Bearer <access_token>. A fresh token is requested per delivery attempt. Note that your token endpoint must accept JSON request bodies. See Applicant Status Webhooks for full details.

Are there read endpoints, or only POST /applicants?

Read endpoints are available: GET /applicant returns the applicant's full profile (stage history dates, contact info, hiring-step progress, license, addresses, custom questions/fields, and more), and GET /documents returns the applicant's documents with download URLs. If your API documentation only covers POST /applicants (the v1.0 document dated 02/01/2024), it predates these endpoints — the articles in this Help Center are the current reference.

Do I need a new credential to use the read endpoints?

No. Endpoint access is controlled by scopes on your existing credential: create:applicants, read:applicants, and read:documents. A single credential can hold all of them. If a read call returns 403 forbidden, contact [email protected] and we will add the needed scopes — your client_id and token request stay the same.

Is there a scheduled export, SFTP drop, or bulk document download?

Not currently. The supported way to get applicant data and documents out on an automated basis is the webhook + API pattern described below. For no-code automation, the Zapier integration can move applicant/lead data between Double Nickel and other tools, but it does not download documents. If your use case truly requires a bulk or scheduled export, contact support to discuss options.

How do I automate a new-hire file review?

A common pattern — for example, running a compliance check (FMCSA Part 391 and internal hiring standards) as soon as a driver is moved to onboarding or hired:

  1. Configure a webhook under Settings → Integrations → Webhooks pointing at your endpoint.

  2. Filter incoming events for the trigger you care about — e.g. current.applicantStage === "PROSPECT" && current.hiringStage === "ONBOARDING", or current.applicantStage === "HIRED".

  3. Call GET /applicant with the applicantId and companyId from the payload to pull the profile — including the steps array, which shows the status of each hiring step (background check, MVR, PSP, Clearinghouse, VOE, drug & alcohol testing, and so on).

  4. Call GET /documents and select the files you need by category — e.g. BACKGROUND_CHECK, MVR, PSP, CLEARING_HOUSE, VERIFICATION_OF_EMPLOYMENT, and DOT_APP (the completed, signed application PDF).

  5. Download each file promptly via its signed URL (valid ~5 minutes) and run your internal review.

Questions or need help?

Contact the Double Nickel support team at [email protected].

Did this answer your question?