### Create Auth Token API Request Examples - JSON Source: https://docs.campaignverify.org/models/create-token Illustrates various JSON payload examples for creating an authentication token, demonstrating different combinations of 'service' and 'channel' parameters for TCR, Short Code, and Toll-Free services. ```JSON // 10DLC {"service": "tcr", "channel": "10dlc"} // Short Code {"service": "mno", "channel": "short"} // Toll-Free {"service": "mno", "channel": "tfree"} ``` -------------------------------- ### GET /api/v1/verifications/{id} Source: https://docs.campaignverify.org/models/get-request Retrieves information about a specific verification request using its unique ID. Supports both production and testing environments. ```APIDOC ## GET /api/v1/verifications/{id} ### Description Retrieves detailed information about a specific verification request using its unique ID. This endpoint is available in both production and testing environments. ### Method GET ### Endpoint `/api/v1/verifications/` ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the verification request. ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **id** (string) - Unique identifier for the verification request. - **created** (timestamp) - Timestamp when the request was created. - **modified** (timestamp) - Timestamp when the request was last modified. - **user** (string) - Email of the user who initiated the request. - **team** (string) - Name of the team associated with the request. - **name** (string) - Name associated with the request. - **general_campaign_email** (string) - General campaign email address. - **filing_url** (string) - URL for filing related to the request. - **filing_url_instructions** (string) - Instructions for the filing URL. - **locality** (string) - The type of locality (state, local, tribal). - **status** (string) - Current status of the verification request (e.g., REQUESTED, IN_REVIEW, APPROVED, REJECTED, WITHDRAWN). - **campaign_locale** (string) - The locale of the campaign (e.g., state). - **state** (string) - The state for the verification. - **city_county** (string) - The city or county for the verification. - **tribal_location** (string) - The tribal location for the verification. - **committee_ein** (string) - The Employer Identification Number (EIN) of the committee. - **committee_type** (string) - The type of committee. - **campaign_website** (string) - The campaign's website URL. - **election_date** (YYYY-MM-DD) - The date of the election. - **filing_phone_number** (string) - The phone number for filing. - **filing_email** (string) - The email address for filing. - **filing_street_address_1** (string) - The first line of the filing street address. - **filing_street_address_2** (string) - The second line of the filing street address. - **filing_city** (string) - The city for filing. - **filing_state** (string) - The state for filing. - **filing_zip** (string) - The zip code for filing. - **verification_method** (string) - The method used for verification (email, postal, call, text). - **contact_schedule** (object) - The preferred contact schedule. - **day** (string) - Preferred day for contact (immediate, weekday, any). - **time_start** (HH:MM A) - Preferred start time for contact. - **time_end** (HH:MM A) - Preferred end time for contact. - **timezone** (string) - Timezone for the contact schedule (ET, CT, MT, PT, AK, HI). - **is_expired** (boolean) - Indicates if the request has expired. *Note: The exact fields returned may differ slightly between State/Local/Tribal and Federal responses.* ``` -------------------------------- ### Retrieve a Verification Request by ID (API) Source: https://docs.campaignverify.org/models/get-request Use the provided GET endpoints to retrieve details of a specific verification request using its ID. This applies to both production and testing environments. ```HTTP # Production GET https://app.campaignverify.org/api/v1/verifications/ # Testing GET https://test.campaignverify.org/api/v1/verifications/ ``` -------------------------------- ### Webhook Configuration Source: https://docs.campaignverify.org/models/webhooks Webhooks can be configured by navigating to the team page while logged in as the owner and clicking 'Manage API Keys'. Notifications are sent to the first team associated with a verification if it belongs to multiple teams. ```APIDOC ## Webhook Configuration ### Description Webhooks allow you to receive real-time notifications about events related to your verifications. You can manage your team's Webhook URL by navigating to the team page (while logged in as the owner) and clicking "Manage API Keys" in the top right of the page. > **Note:** If a verification belongs to multiple teams, webhook notifications will only be sent to the first team associated with that verification (determined by the earliest team association). ### Method GET (to navigate to configuration page) ### Endpoint `/websites/campaignverify/team/manage-api-keys` (Conceptual endpoint for accessing configuration) ``` -------------------------------- ### GET /api/health-check Source: https://docs.campaignverify.org/models/health-check This endpoint can be used to check the general health of the CampaignVerify API. It also helps in validating your API key by including it in the request. ```APIDOC ## GET /api/health-check ### Description This endpoint allows you to check the health status of the CampaignVerify API. You can optionally include your API key to validate its correctness. ### Method GET ### Endpoint `/api/health-check` ### Query Parameters - **api_key** (string) - Optional - Your CampaignVerify API key. ### Request Example ``` GET https://app.campaignverify.org/api/health-check # Or with API Key: GET https://app.campaignverify.org/api/health-check?api_key=YOUR_API_KEY ``` ### Response #### Success Response (200) - **message** (string) - Indicates the status: 'Authorized' if the API key is valid, 'Unauthorized' otherwise. #### Response Example ```json { "message": "Authorized" } ``` #### Error Response - **message** (string) - 'Unauthorized' if no API key is provided or if it's invalid. #### Error Response Example ```json { "message": "Unauthorized" } ``` ``` -------------------------------- ### Create Auth Token API Request - HTTP Source: https://docs.campaignverify.org/models/create-token This snippet shows the HTTP POST request structure for creating an authentication token. It specifies the endpoint and the required JSON payload, including 'service' and 'channel' parameters. ```HTTP POST /api/v1/verifications/{id}/create_token { "service": "string", // "tcr" or "mno" "channel": "string" // "10dlc", "short", or "tfree" } ``` -------------------------------- ### Create State/Local Request Source: https://docs.campaignverify.org/models/state-request Submits a new request for state, local, or tribal campaign verification. Requires detailed information about the campaign, filing details, and preferred verification method. ```APIDOC ## POST /api/v1/verifications/state_local ### Description Creates a new state, local, or tribal campaign verification request. This endpoint requires comprehensive information about the campaign, including contact details, filing information, and verification preferences. ### Method POST ### Endpoint `/api/v1/verifications/state_local` ### Parameters #### Query Parameters None #### Request Body - **name** (string) - Required, Max 500 characters - **general_campaign_email** (string) - Required, Format: Valid Email - **locality** (string) - Required (`state`, `local`, `tribal`) - **state** (string) - Required, Format: Two letter abbreviation - **city_county** (string) - Conditionally Required - **tribal_location** (string) - Conditionally Required - **campaign_website** (string) - Required, Format: URL - **filing_url** (string) - Required, Format: URL - **filing_url_instructions** (string) - Optional - **filing_address_line1** (string) - Required - **filing_address_line2** (string) - Optional - **filing_city** (string) - Required - **filing_state** (string) - Required, Format: Two letter abbreviation - **filing_zip** (string) - Required, Format: 5 digits or 5+4 digits - **filing_email** (string) - Optional, Format: Valid Email - **filing_phone_number** (string) - Optional, Format: Valid Phone Number - **filing_phone_type** (string) - Conditionally Required (`cell`, `landline`) - **committee_type** (string) - Required - **committee_ein** (string) - Required, Format: 12-3456789 or 123456789 - **election_date** (timestamp) - Conditionally Required for CA and BA, Format: ISO8601 - **verification_method** (string) - Required (`email`, `postal`, `call`, `text`) - **reference_id** (string) - Optional - **contact_schedule** (object) - Conditionally Required - **day** (string) - `immediate`, `weekday`, `any` - **time_start** (string) - Conditionally Required, Format: HH:MM AM/PM - **time_end** (string) - Conditionally Required, Format: HH:MM AM/PM - **timezone** (string) - Conditionally Required (`ET`, `CT`, `MT`, `PT`, `AK`, `HI`) ### Request Example ```json { "name": "Sample Campaign", "general_campaign_email": "info@samplecampaign.org", "locality": "state", "state": "CA", "campaign_website": "https://samplecampaign.org", "filing_url": "https://fec.gov/samplefiling", "filing_address_line1": "123 Campaign St", "filing_city": "Los Angeles", "filing_state": "CA", "filing_zip": "90001", "committee_type": "Presidential", "committee_ein": "12-3456789", "verification_method": "email", "contact_schedule": { "day": "weekday", "time_start": "09:00 AM", "time_end": "05:00 PM", "timezone": "PT" } } ``` ### Response #### Success Response (200) - **verification_id** (string) - Unique identifier for the created verification request. - **status** (string) - Current status of the verification request. #### Response Example ```json { "verification_id": "a1b2c3d4e5f6", "status": "pending" } ``` ``` -------------------------------- ### PATCH /api/v1/verifications/{id}/verify Source: https://docs.campaignverify.org/phase-2-proposal Submits the PIN code and verifies a submission. ```APIDOC ## PATCH /api/v1/verifications/{id}/verify ### Description This endpoint provides a way to submit the PIN code and verify a submission. ### Method PATCH ### Endpoint /api/v1/verifications/{id}/verify ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the submission to verify. #### Request Body - **code** (string) - Required - The PIN code to submit for verification. ### Request Example ```json { "code": "string" } ``` ### Response #### Success Response (200) - **status** (string) - The verification status (e.g., 'VERIFIED'). - **message** (string) - A confirmation message. ``` -------------------------------- ### Perform API Health Check (HTTP) Source: https://docs.campaignverify.org/models/health-check Use these GET endpoints to check the status of the CampaignVerify API. The production URL is for live environments, and the testing URL is for staging or development. No specific dependencies are required, only an HTTP client. ```HTTP GET https://app.campaignverify.org/api/health-check GET https://test.campaignverify.org/api/health-check ``` -------------------------------- ### Verification Request API Source: https://docs.campaignverify.org/models/state-request Submit a new verification request for a political campaign, providing all necessary details for verification. ```APIDOC ## Create Verification Request ### Description Initiates a new verification process for a campaign by submitting required details. ### Method POST ### Endpoint /websites/campaignverify ### Parameters #### Request Body - **name** (string) - Required - Maximum 500 characters. Legal name of the political entity. - **general_campaign_email** (string) - Required - Valid Email format. Email address associated with the campaign. - **locality** (string) - Required - Options: `state`, `local`, `tribal`. Type of local authority. - **state** (string) - Required - Two-letter state abbreviation. State where the committee filed. - **city_county** (string) - Required when `locality` is 'local'. City or county of focus. - **tribal_location** (string) - Required when `locality` is 'tribal'. Tribal government of focus. - **campaign_website** (string) - Required - Valid URL format. Campaign's website URL. - **filing_url** (string) - Required - Valid URL format. Link to the official election authority filing. - **filing_url_instructions** (string) - Optional - Instructions for the filing URL. - **committee_ein** (string) - Optional - Employer Identification Number of the committee. - **committee_type** (string) - Optional - Type of committee. - **election_date** (string) - Optional - YYYY-MM-DD format date of the election. - **filing_phone_number** (string) - Optional - Phone number associated with the filing. - **filing_email** (string) - Optional - Email address associated with the filing. - **filing_address_line1** (string) - Optional - First line of the filing address. - **filing_address_line2** (string) - Optional - Second line of the filing address. - **filing_city** (string) - Optional - City of the filing address. - **filing_state** (string) - Optional - State of the filing address. - **filing_zip** (string) - Optional - ZIP code of the filing address. - **verification_method** (string) - Optional - Method for verification ('email', 'postal', 'call', 'text'). - **contact_schedule** (object) - Optional - Preferred contact schedule. - **day** (string) - Preferred day ('immediate', 'weekday', 'any'). - **time_start** (string) - Start time (HH:MM A). - **time_end** (string) - End time (HH:MM A). - **timezone** (string) - Timezone ('ET', 'CT', 'MT', 'PT', 'AK', 'HI'). ### Request Example ```json { "name": "Citizens for Better Governance", "general_campaign_email": "info@citizensbg.org", "locality": "state", "state": "NY", "campaign_website": "http://citizensbg.org", "filing_url": "https://www.elections.ny.gov/filings/pac/2023/cbgoct.pdf", "filing_email": "filings@citizensbg.org", "filing_phone_number": "212-555-1212", "verification_method": "email", "contact_schedule": { "day": "weekday", "time_start": "10:00 AM", "time_end": "04:00 PM", "timezone": "ET" } } ``` ### Response #### Success Response (201) - **message** (string) - Confirmation message indicating the verification request was created. - **verification_id** (string) - The unique identifier for the newly created verification request. #### Response Example ```json { "message": "Verification request submitted successfully.", "verification_id": "ver_new456uvw" } ``` ``` -------------------------------- ### POST /api/v1/verifications/{id}/create_token Source: https://docs.campaignverify.org/models/create-token Creates an authentication token for a specific verification ID. Requires specifying the service and optionally the channel. ```APIDOC ## POST /api/v1/verifications/{id}/create_token ### Description Creates an authentication token for a specific verification ID. Requires specifying the service and optionally the channel. ### Method POST ### Endpoint /api/v1/verifications/{id}/create_token ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the verification. #### Query Parameters None #### Request Body - **service** (string) - Required - The service type, either "tcr" or "mno". - **channel** (string) - Optional - The channel type, "10dlc", "short", or "tfree". Required for service="mno". Defaults to "10dlc" for service="tcr". ### Request Example ```json { "service": "string", "channel": "string" } ``` ### Response #### Success Response (200) - **token** (object) - Contains details about the created token. - **created** (datetime) - The creation timestamp of the token. - **version** (string) - The version of the token. - **expiration_time** (datetime) - The expiration timestamp of the token. - **service** (object) - Information about the service. - **id** (integer) - The ID of the service. - **name** (string) - The name of the service. - **formatted_auth_token** (string) - The formatted authentication token. - **revocation_time** (datetime) - The revocation timestamp of the token. - **secret** (string) - The secret associated with the token. #### Response Example ```json { "token": { "created": "datetime", "version": "1.0", "expiration_time": "datetime", "service": { "id": 1, "name": "string" }, "formatted_auth_token": "string", "revocation_time": "datetime", "secret": "string" } } ``` ``` -------------------------------- ### Campaign Verify Field Documentation: Campaign Website Source: https://docs.campaignverify.org/models/state-request Documents the 'campaign_website' field. This required string must be a valid URL format, representing the campaign's official website. This site will not be used for verification PIN delivery. ```markdown ### Campaign Website Field: `campaign_website` Type: `String` Required: `Yes` Validation: Valid URL format Campaign Verify may visit the campaign’s website, but we will not reference the site for verification PIN code delivery. ``` -------------------------------- ### Campaign Verification Methods Source: https://docs.campaignverify.org/models/federal-request This section outlines the different methods for campaign verification and the associated requirements for each method. ```APIDOC ## Verification Methods Campaign Verify offers multiple methods to send a PIN for verification: ### Email Verification - **Description**: The PIN is sent via email. - **Requirements**: The email address on the Campaign Verify submission must match an email address on the FEC Filing URL. Requires a valid `filing_email`. ### Postal Mail Verification - **Description**: The PIN is sent via postal mail. This is the only option if only a physical address is listed on the filing record. - **Requirements**: Requires a valid `filing_address_1`, `filing_state`, and `filing_zip`. USPS delivery can take approximately 5-10 days. ### Call Verification - **Description**: The PIN is delivered via a phone call. The user can select an immediate call or a scheduled time. A voicemail with the PIN will be left if the call is unanswered. Cannot be used with automated phone systems. - **Requirements**: Requires a valid `committee_phone_number` (cell or landline) and `contact_schedule` object. ### Text Verification - **Description**: The PIN is delivered via a text message. The user can select an immediate text or a scheduled time. - **Requirements**: Requires a valid `committee_phone_number` (cell) and `contact_schedule` object. ### Contact Schedule Object - **Description**: This object specifies the preferred time for receiving a call or text message with the PIN. - **Type**: `Object` - **Required**: `Conditionally` (Required for Call and Text verification methods if a specific time is preferred over immediate delivery). - **Properties**: - **day** (String) - Required: Yes (within the object). Options: `immediate`, `weekday`, `any`. Determines when the contact will be made. `immediate` sends upon approval. `weekday` schedules for weekdays. `any` schedules for any day. - **time_start** (String) - Required: Conditionally (if `day` is not `immediate`). Format: `"HH:MM A"`. The preferred start time for the contact. - **time_end** (String) - Required: Conditionally (if `day` is not `immediate`). Format: `"HH:MM A"`. The preferred end time for the contact. - **timezone** (String) - Required: Conditionally (if `day` is not `immediate`). Options: `ET`, `CT`, `MT`, `PT`, `AK`, `HI`. The preferred timezone for the contact. ``` -------------------------------- ### Create Auth Token API Response - JSON Source: https://docs.campaignverify.org/models/create-token Defines the structure of the JSON response received after successfully creating an authentication token. It includes details about the token's creation, expiration, service information, and the formatted secret. ```JSON { "token": { "created": "datetime", "version": "1.0", "expiration_time": "datetime", "service": { "id": 1, "name": "string" }, "formatted_auth_token": "string", "revocation_time": "datetime", "secret": "string" } } ``` -------------------------------- ### PATCH /api/v1/verifications/state_local Source: https://docs.campaignverify.org/phase-2-proposal Updates state and local verification request details. ```APIDOC ## PATCH /api/v1/verifications/state_local ### Description Updates the details of a state and local verification request. ### Method PATCH ### Endpoint /api/v1/verifications/state_local ### Parameters #### Request Body - **id** (string) - Required - **name** (string) - Required - **general_campaign_email** (string) - Required, Format: Valid Email - **filing_url** (string) - Required, Format: URL matching /https?://(.+.)?fec.gov(.+)?/ - **fec_committee_id** (string) - Required - **filing_email** (string) - Required, Format: Valid Email - **filing_address_line1** (string) - Required - **filing_address_line2** (string) - Optional - **filing_city** (string) - Required - **filing_state** (string) - Required, Format: Two-letter state abbreviation - **filing_zip** (string) - Required, Format: 5 digits or 5+4 digits - **filing_phone_number** (string) - Conditionally Required, Format: Valid Phone Number - **filing_phone_type** (string) - Conditionally Required, Enum: "cell", "landline" - **committee_type** (string) - Required - **committee_ein** (string) - Required, Format: 9 digits (12-3456789 or 123456789) - **election_date** (timestamp) - Conditionally Required, Format: ISO8601 - **verification_method** (string) - Required, Enum: "email", "postal", "call", "text" - **reference_id** (string) - Optional - **contact_schedule** (object) - Conditionally Required - **day** (string) - Enum: "immediate", "weekday", "any" - **time_start** (string) - Conditionally Required, Format: HH:MM AM/PM - **time_end** (string) - Conditionally Required, Format: HH:MM AM/PM - **timezone** (string) - Conditionally Required, Enum: "ET", "CT", "MT", "PT", "AK", "HI" ### Request Example ```json { "id": "string", "name": "string", "general_campaign_email": "string", "filing_url": "string", "fec_committee_id": "string", "filing_email": "string", "filing_address_line1": "string", "filing_address_line2": "string", "filing_city": "string", "filing_state": "string", "filing_zip": "string", "filing_phone_number": "string", "filing_phone_type": "cell", "committee_type": "string", "committee_ein": "string", "election_date": "timestamp (ISO8601)", "verification_method": "email", "reference_id": "string", "contact_schedule": { "day": "immediate", "time_start": "HH:MM A", "time_end": "HH:MM A", "timezone": "ET" } } ``` ### Response #### Success Response (200) - **status** (string) - The updated status of the verification request. - **message** (string) - A confirmation message. ``` -------------------------------- ### Verification Method Options Source: https://docs.campaignverify.org/models/federal-request Lists the available options for the verification method. These include 'email', 'postal', 'call', and 'text'. The system prioritizes these methods if the primary contact information matches. ```string "email" | "postal" | "call" | "text" ``` -------------------------------- ### POST /api/v1/verifications/federal Source: https://docs.campaignverify.org/models/federal-request Creates a new federal verification request. This endpoint requires detailed information about the campaign, filing, and contact person, along with proof of FEC filing. ```APIDOC ## POST /api/v1/verifications/federal ### Description Creates a new federal verification request. This endpoint requires detailed information about the campaign, filing, and contact person, along with proof of FEC filing. ### Method POST ### Endpoint `/api/v1/verifications/federal` ### Parameters #### Request Body - **name** (string) - Required - Official name of committee as it appears on FEC filing - **general_campaign_email** (string) - Required - Format: Valid Email - **filing_url** (string) - Required - Format: URL matching /https?:\/\/(.+\.)?fec\.gov(.+)?/ - **fec_committee_id** (string) - Required - **filing_email** (string) - Required - Format: Valid Email - **filing_address_line1** (string) - Required - **filing_address_line2** (string) - Optional - **filing_city** (string) - Required - **filing_state** (string) - Required - Format: Two-letter state abbreviation - **filing_zip** (string) - Required - Format: 5 digits or 5+4 digits - **filing_phone_number** (string) - Conditionally Required - Format: Valid Phone Number - **filing_phone_type** (string) - Conditionally Required - Allowed values: "cell", "landline" - **committee_type** (string) - Required - **committee_ein** (string) - Required - Format: 9 digits (12-3456789 or 123456789) - **election_date** (timestamp (ISO8601)) - Conditionally Required - **verification_method** (string) - Required - Allowed values: "email", "postal", "call", "text" - **reference_id** (string) - Optional - **contact_schedule** (object) - Conditionally Required - **day** (string) - Allowed values: "immediate", "weekday", "any" - **time_start** (string) - Conditionally Required - Format: HH:MM AM/PM - **time_end** (string) - Conditionally Required - Format: HH:MM AM/PM - **timezone** (string) - Conditionally Required - Allowed values: "ET", "CT", "MT", "PT", "AK", "HI" ### Request Example ```json { "name": "string", "general_campaign_email": "string", "filing_url": "string", "fec_committee_id": "string", "filing_email": "string", "filing_address_line1": "string", "filing_address_line2": "string", "filing_city": "string", "filing_state": "string", "filing_zip": "string", "filing_phone_number": "string", "filing_phone_type": "cell", "committee_type": "string", "committee_ein": "string", "election_date": "2023-10-27T10:00:00Z", "verification_method": "email", "reference_id": "string", "contact_schedule": { "day": "weekday", "time_start": "09:00 AM", "time_end": "05:00 PM", "timezone": "ET" } } ``` ### Response #### Success Response (200) - **message** (string) - A confirmation message. - **verification** (object) - Details of the created verification request. - **id** (string) - Unique identifier for the verification. - **created** (timestamp) - Timestamp of creation. - **modified** (timestamp) - Timestamp of last modification. - **user** (string) - Email of the user who created the request. - **team** (string) - Name of the team associated with the user. - **name** (string) - Official name of the committee. - **general_campaign_email** (string) - General email for the campaign. - **campaign_locale** (string) - Locale of the campaign (e.g., "national"). - **filing_url** (string) - URL of the FEC filing. - **filing_email** (string) - Email address from the FEC filing. - **filing_address_line1** (string) - First line of the filing address. - **filing_address_line2** (string) - Second line of the filing address (optional). - **filing_city** (string) - City of the filing address. - **filing_state** (string) - State of the filing address. - **filing_zip** (string) - Zip code of the filing address. - **committee_phone_number** (string) - Committee's phone number. - **committee_type** (string) - Type of committee. - **fec_committee_id** (string) - FEC Committee ID. - **committee_ein** (string) - Committee EIN. - **election_date** (timestamp (ISO8601)) - Date of the election. - **verification_method** (array of strings) - Methods available for verification. - **stripe_id** (string) - Stripe customer ID. - **reference_id** (string) - User-provided reference ID (optional). - **contact_schedule** (object) - Preferred contact schedule. - **day** (string) - Preferred day for contact. - **time_start** (string) - Preferred start time for contact. - **time_end** (string) - Preferred end time for contact. - **timezone** (string) - Timezone for the contact schedule. - **is_expired** (boolean) - Indicates if the verification is expired. - **status** (string) - Current status of the verification. - **receipt** (object) - Information about the payment receipt. - **message** (string) - Message related to the charge. - **charge_id** (string) - Identifier for the charge. - **amount_charged** (int) - The amount charged. #### Response Example ```json { "message": "Verification request created successfully.", "verification": { "id": "ver_12345", "created": "2023-10-27T10:00:00Z", "modified": "2023-10-27T10:00:00Z", "user": "user@example.com", "team": "Campaign Team A", "name": "Example Campaign Committee", "general_campaign_email": "info@examplecampaign.com", "campaign_locale": "national", "filing_url": "https://www.fec.gov/...". "filing_email": "filing@example.com", "filing_address_line1": "123 Campaign Way", "filing_address_line2": "Suite 100", "filing_city": "Washington", "filing_state": "DC", "filing_zip": "20001", "committee_phone_number": "555-123-4567", "committee_type": "P", "fec_committee_id": "C12345678", "committee_ein": "123456789", "election_date": "2024-11-05T00:00:00Z", "verification_method": ["email", "postal"], "stripe_id": "cus_abc123", "reference_id": "REF001", "contact_schedule": { "day": "weekday", "time_start": "09:00 AM", "time_end": "05:00 PM", "timezone": "ET" }, "is_expired": false, "status": "pending" }, "receipt": { "message": "Payment processed successfully.", "charge_id": "ch_xyz789", "amount_charged": 5000 } } ``` ``` -------------------------------- ### Webhooks - Request Rejected Source: https://docs.campaignverify.org/phase-2-proposal Webhook event triggered when a request is rejected. ```APIDOC ## POST /webhooks/request_rejected ### Description This webhook event is triggered when a request is rejected. ### Method POST ### Endpoint (Provided URL) ### Request Body - **id** (string) - The ID of the request. - **type** (string) - The event type, set to "REJECTED". - **reference_id** (string) - The reference ID associated with the request. ### Request Example ```json { "id": "string", "type": "REJECTED", "reference_id": "string" } ``` ### Response #### Success Response (200) - **status** (string) - Confirmation of webhook reception (e.g., "success"). ``` -------------------------------- ### PATCH /api/v1/verifications/federal Source: https://docs.campaignverify.org/phase-2-proposal Updates federal verification request details. ```APIDOC ## PATCH /api/v1/verifications/federal ### Description Updates the details of a federal verification request. ### Method PATCH ### Endpoint /api/v1/verifications/federal ### Parameters #### Request Body - **id** (string) - Required - **name** (string) - Required - **general_campaign_email** (string) - Required, Format: Valid Email - **filing_url** (string) - Required, Format: URL matching /https?://(.+.)?fec.gov(.+)?/ - **fec_committee_id** (string) - Required - **filing_email** (string) - Required, Format: Valid Email - **filing_address_line1** (string) - Required - **filing_address_line2** (string) - Optional - **filing_city** (string) - Required - **filing_state** (string) - Required, Format: Two-letter state abbreviation - **filing_zip** (string) - Required, Format: 5 digits or 5+4 digits - **filing_phone_number** (string) - Conditionally Required, Format: Valid Phone Number - **filing_phone_type** (string) - Conditionally Required, Enum: "cell", "landline" - **committee_type** (string) - Required - **committee_ein** (string) - Required, Format: 9 digits (12-3456789 or 123456789) - **election_date** (timestamp) - Conditionally Required, Format: ISO8601 - **verification_method** (string) - Required, Enum: "email", "postal", "call", "text" - **reference_id** (string) - Optional - **contact_schedule** (object) - Conditionally Required - **day** (string) - Enum: "immediate", "weekday", "any" - **time_start** (string) - Conditionally Required, Format: HH:MM AM/PM - **time_end** (string) - Conditionally Required, Format: HH:MM AM/PM - **timezone** (string) - Conditionally Required, Enum: "ET", "CT", "MT", "PT", "AK", "HI" ### Request Example ```json { "id": "string", "name": "string", "general_campaign_email": "string", "filing_url": "string", "fec_committee_id": "string", "filing_email": "string", "filing_address_line1": "string", "filing_address_line2": "string", "filing_city": "string", "filing_state": "string", "filing_zip": "string", "filing_phone_number": "string", "filing_phone_type": "cell", "committee_type": "string", "committee_ein": "string", "election_date": "timestamp (ISO8601)", "verification_method": "email", "reference_id": "string", "contact_schedule": { "day": "immediate", "time_start": "HH:MM A", "time_end": "HH:MM A", "timezone": "ET" } } ``` ### Response #### Success Response (200) - **status** (string) - The updated status of the verification request. - **message** (string) - A confirmation message. ``` -------------------------------- ### Campaign Verification Submission API Source: https://docs.campaignverify.org/models/state-request This API endpoint is used to submit a new campaign verification request. It requires detailed information about the committee, filing details, and the preferred method for receiving a verification PIN. ```APIDOC ## POST /websites/campaignverify ### Description Submits a new campaign verification request with committee and filing details. ### Method POST ### Endpoint /websites/campaignverify ### Parameters #### Request Body - **filing_url_instructions** (String) - Optional - Instructions or notes on how to navigate to the filing information on the provided URL. - **filing_address_line1** (String) - Required - Street Address 1 on Filing Record. - **filing_address_line2** (String) - Optional - Street Address 2 on Filing Record (Suite, Apt, etc.). - **filing_city** (String) - Required - The city listed in the local filing. - **filing_state** (String) - Required - Two-letter state abbreviation for the local filing. - **filing_zip** (String) - Required - 5 digits or 5+4 digits ZIP code for the local filing. - **filing_phone_number** (String) - Optional - Valid Phone Number format for verification. - **filing_email** (String) - Optional - Valid Email format for verification. - **committee_type** (String) - Required - Code representing the committee type (e.g., CA, PA, OT, BA, PT). - **committee_ein** (String) - Required - 9-digit Employer Identification Number (EIN) issued by the IRS. - **verification_method** (String) - Required - The preferred method of verification for the Campaign (`email`, `postal`, `call`, `text`). ### Request Example ```json { "filing_url_instructions": "Search for Committee ID 12345 and click the Oct 2023 filing link.", "filing_address_line1": "123 Main St", "filing_city": "Anytown", "filing_state": "CA", "filing_zip": "90210", "filing_email": "test@example.com", "committee_type": "CA", "committee_ein": "123-456789", "verification_method": "email" } ``` ### Response #### Success Response (200) - **message** (String) - Confirmation message indicating successful submission. #### Response Example ```json { "message": "Campaign verification request submitted successfully." } ``` #### Error Handling - **400 Bad Request**: Invalid input data or missing required fields. - **500 Internal Server Error**: Server-side error during processing. ```