Developers

Apps and credentials

The sandbox apps you create yourself, the production app ColiSwift creates for you at go-live, and what each credential is.

SandboxProduction
Who creates itYou, signed in as your test sellerColiSwift, after reviewing your integration
HowIntégrations → « Applications développeur » — see Sandbox and testingContact ColiSwift — see Go-live
How manyUp to 5 active apps per seller accountOne per integration
Who can connect itOnly the seller account that created itAny seller who approves it
Redirect URIsYours (https: or http://localhost)Your own HTTPS callbacks
WebhooksDelivered to your URLDelivered to your URL
COD Drop catalogue synchronisationNeverOnly if ColiSwift enables it for the app
orders:details (internal order details)Never (SCOPE_NOT_SELF_SERVICE)Only if ColiSwift enables it for the app
products:details (internal product details)Never (SCOPE_NOT_SELF_SERVICE)Only if ColiSwift enables it for the app

App settings

The same fields, whether you fill them in on the sandbox or ColiSwift registers them for your production app, with the same rules:

namestring, 1–80required

Shown to the seller on the consent page and in their « Connected apps » list.

descriptionstring, ≤ 280

Internal description of the app.

logoUrlURL

Logo shown on the consent page (displayed contain, any aspect ratio).

redirectUrisstring[], 1–10required

Every callback URL you will use, exactly as you will send it. https: only, except http://localhost, http://127.0.0.1 and http://[::1] (any port). No #fragment, no * wildcard, no user:password.

allowedScopesstring[]required

The most your app may ever ask a seller for. orders:details (internal order details) and products:details (internal product details) are restricted: set by ColiSwift only, on request, never on a sandbox app. See Scopes.

  • profile:read
  • catalogue:read
  • products:write
  • orders:write
  • orders:read
  • cod_drop:write
  • orders:details
  • products:details
webhookUrlURL

One HTTPS URL per app that receives the events of every connected seller. Must not point at a private or loopback address.

webhookEventsstring[]

Optional filter. Empty = every event your scopes entitle you to. Otherwise only the listed types. See Webhooks.

COD Drop catalogue synchronisationon / off

Set by ColiSwift only, off by default, never on for a sandbox app. Off: GET /cod-drop/catalog and GET /cod-drop/catalog/{productId} answer 403 COD_DROP_CATALOG_NOT_ENABLED and cod_drop.catalog_changed is not delivered. Adoptions and their events do not depend on it.

Credentials

CredentialFormatUse
Client idcs_client_ + 32 hexPublic identifier, goes in the authorize URL.
Client secretcs_secret_…Server-side only. Authenticates /oauth/token and /oauth/revoke.
Webhook secretwhsec_…Verifies the X-Coliswift-Signature of every delivery.

Secrets are displayed once, when the app is created (and when one is rotated). ColiSwift keeps only a hash of the client secret and an encrypted copy of the webhook secret; nobody can read them back. If you lose one, rotate it — yourself on the sandbox, by asking ColiSwift in production.

Changes, rotation and deactivation

  • Client secret rotation: the old secret stops working immediately — there is no overlap window. Deploy the new one at once.
  • Webhook secret rotation: every delivery attempt after the rotation is signed with the new secret, including retries of events queued before it.
  • Scope removed from the app: every live connection and every live token loses it immediately — calls it allowed answer 403 INSUFFICIENT_SCOPE, its events stop. The other scopes keep working. A connection left with no scope at all is revoked.
  • Scope added to the app: nothing changes for existing connections; the seller must approve again (a new consent) to grant it.
  • Redirect URIs, webhook URL and event filter can be changed at any time and apply from then on.
  • Deactivation (a « Delete » on the sandbox): every seller connection of the app is revoked, all tokens die, and pending deliveries are marked dead. Re-activating a production app does not restore the connections: each seller must connect again. A deleted sandbox app stays deleted.