The source object
A source is a system that sends Summerbase data: a billing provider such as
Stripe, which Summerbase fetches from itself, or your own backend, which
writes through the API. Every customer, subscription and plan is identified
within a source, as stripe:cus_123, and everything an API key writes is
attributed to the key’s source.
Attributes
idstring (UUID)The source’s unique identifier. Records are identified by its
slug.objectstringThe object’s type, always
source.Always
sourceconnected_attimestampWhen a provider source was given its credential, or empty: a provider source that has not been connected yet or has been disconnected, and every source that is not a provider’s.
created_attimestampWhen the source was added.
import_failed_attimestampWhen the last import gave up, or empty when none has since the last one succeeded. The source’s log says why.
import_progressdecimal stringHow far the running import has got, from 0 to 1, or empty while it does not know yet.
import_started_attimestampWhen the import now running began, or empty when none is. Every metric that reads this source’s records is incomplete until it ends.
import_stepstringWhat the running import is doing, in a sentence:
Importing customers, 1,240 of 8,100.imported_attimestampWhen the last import finished, or empty when none has.
namestringWhat the source is called, for people reading a screen.
priorityintegerWhere this source sits when resolving
nameandemail. Lower wins, and the project’s own source starts at the top so a manual correction outranks a provider sync. It orders nothing else — every other property is namespaced by source and never arbitrated.project_idstring (UUID)The project the source belongs to.
provider_account_idstringThe provider’s own id for the account the source is connected to:
acct_…for Stripe. Kept through a disconnect, so that connecting again is checked against it.provider_codeenumThe code of the system the source pulls from.
customis a source you write to yourself, and the only one that accepts writes;stripeis connected withconnect_stripeand fetches for itself.One of
custom,stripe,summerbasesandboxbooleanWhether the connection is to the provider’s test mode rather than a live account; empty while nothing is connected.
slugstringHow this source’s records are identified — the
stripeinstripe:cus_123. Lowercase letters, digits, hyphens and underscores; unique within the project and fixed once the source exists, because integrations hard-code it. A reference shaped like an id is read as one, so a slug may not look like a UUID.webhook_installed_attimestampWhen the provider’s webhook was installed for this source — by the connection, or by hand and registered with
register_stripe_webhook— or empty: nothing is connected, or the source is connected without a webhook and its changes arrive with the hourly reconcile.webhook_urlstringWhere the provider posts this source’s events: the address of the endpoint a connection installs, and of one to install by hand. Empty for a source whose provider posts no webhooks.
Example
{ "connected_at": "2025-09-08T14:10:05Z", "created_at": "2025-09-08T14:09:47Z", "id": "0198f1a3-0b7c-7e25-9f41-6a2d8c3e5b19", "import_failed_at": null, "import_progress": null, "import_started_at": null, "import_step": null, "imported_at": "2025-09-08T14:26:51Z", "name": "Stripe", "object": "source", "priority": 2, "project_id": "0198f1a2-6c52-7b18-8e3f-2a9c4d6b1e07", "provider_account_id": "acct_1QfR3sT8uVw2XyZa", "provider_code": "stripe", "sandbox": false, "slug": "stripe", "webhook_installed_at": "2025-09-08T14:10:06Z", "webhook_url": "https://api.summerbase.com/webhooks/stripe/0198f1a3-0b7c-7e25-9f41-6a2d8c3e5b19?c=us1"}