North Georgia News

Connection Status

Square Integration: Not Configured

API Credentials

Square Developer Dashboard → Applications
Leave blank to keep existing token.
Square Developer Dashboard → Webhooks. Leave blank to keep existing.
Auto-fetched from Square API on first payment link if left blank.
Production mode processes real payments. Only enter production credentials when you're ready to go live.

Webhook Configuration

Configure this URL in your Square Developer Dashboard under Webhooks:

https://app.northgeorgia.news/api/v1/square-webhook
Subscribe to these events: payment.created, payment.updated, order.updated
Copy the Webhook Signature Key from Square and paste it into the credentials above.

How Classified Payments Work

  1. Customer submits ad via classified.northgeorgia.news
  2. Staff reviews inquiry in Classifieds → detail page
  3. Generate Payment Link button creates a Square checkout link
  4. Send link to customer (email or copy/paste)
  5. Customer pays → Square processes securely
  6. Webhook fires → status auto-advances to "Approved"

Classified Form API Key

This key authenticates the PHP classified form when it sends new submissions to this app. Both the PHP form (flask-bridge.php) and this app must have the same key.

Used in X-API-Key header. Keep this secret.

PHP Form Connection

The classified booking form at classified.northgeorgia.news sends submissions to this endpoint:

POST https://app.northgeorgia.news/api/v1/classified-inquiry
PHP setup: The file includes/flask-bridge.php in the PHP app needs:
1. The API endpoint URL above
2. The API key from above (set in the $api_key variable)
3. Called from submit-form.php after spam checks pass

All Webhook / API URLs

Classified Inquiry API POST https://app.northgeorgia.news/api/v1/classified-inquiry
Square Webhook POST https://app.northgeorgia.news/api/v1/square-webhook
App URL https://app.northgeorgia.news

Run Database Migrations

Run migration SQL files directly from the browser. This is needed after uploading new code that includes database changes. Each migration is safe to run multiple times (they use CREATE TABLE IF NOT EXISTS and ALTER TABLE ... ADD COLUMN).

Back up your database before running migrations. Download a backup from the Export page first.
  • migration_ad_extra_fields.sql
  • migration_ad_section.sql
  • migration_advertiser_company_contact.sql
  • migration_advertiser_default_custom_price.sql
  • migration_advertiser_notes.sql
  • migration_advertiser_quotes.sql
  • migration_advertiser_rate_overrides.sql
  • migration_advertiser_sales_house.sql
  • migration_apply_consecutive_discount.sql
  • migration_classifieds.sql
  • migration_fix_custom_price_zero.sql
  • migration_is_no_charge.sql
  • migration_manifest_customizations.sql
  • migration_manifest_sections.sql
  • migration_no_consecutive_discount.sql
  • migration_quote_color_charge.sql
  • migration_quote_custom_rate_and_discounts.sql
  • migration_quote_line_items.sql
  • migration_sales_persons.sql
  • migration_sales_prospects.sql
  • migration_sales_tasks.sql
  • migration_section_run_dates.sql
  • migration_seed_manifest_sections.sql
  • migration_seed_outreach_templates.sql
  • migration_seed_section_taxonomy.sql

Database Info

Database File database/advertising.db
Backup / Export Go to Export page
Import Specials Go to Import page