Stripe
Connect an approved account, sync captured payments and keep refunds and test data separate.
Connect the right Stripe account
Open Website settings → Revenue. Owners and admins can choose the configured development sandbox or connect an approved restricted merchant key. Give that key Read access to Accounts, Charges, Refunds, Payment Intents, Subscriptions and Invoices. Zijra verifies each required read before saving the connection. Merchant keys and signing secrets are encrypted; the key is never shown in a report.
A sandbox contains test records. Your live merchant needs its own approved account and credential. One account/environment maps to one website; disconnect before replacing it. Connecting revenue does not set up billing for Zijra.
Some subscriptions use item-level trial offers. These also need trial-offer and expanded-price read access. If that read fails, Zijra reports the resource and leaves the sync incomplete. Use the failed request in Stripe’s API request logs to check its required permissions. Keep payment, refund and payout writes disabled for this reporting key.
Fix an Account read access error
In Stripe Developers → API keys, edit your restricted key. Under Connect, set Accounts to Read. Set Charges and Refunds, Payment Intents, Subscriptions and Invoices to Read as well, with Write disabled. Save the changes in Stripe, return here and choose Verify and connect.
If the account check still fails, confirm the merchant, live or sandbox environment, key expiry and access policies. Stripe Workbench Logs shows the denied GET /v1/account request. Use rk_live_ for real sales and rk_test_ for sandbox records; a publishable key cannot read this data.
Sync captured payments and refunds
Sync reads bounded charge pages from the connected account. Only paid, finally captured amounts and succeeded refunds enter the ledger; provisional authorizations stay out. Repeated imports retain stable provider IDs, and every refund links to its original receipt. Currencies and test/live revenue remain separate.
Receive signed updates
Configure the displayed HTTPS webhook destination and Stripe signing secret. Zijra verifies the signature and account/environment, then re-reads the charge through Stripe before recording it. A copied webhook URL alone does not establish delivery.
Attach consented checkout context
Your server may carry zijra_site_id (the public website ID) and zijra_visitor_id (an approved consented visitor UUID), and zijra_consent: 'true' in charge or PaymentIntent metadata. A matching stored consented visitor is required; otherwise the payment remains unassigned. Browser success pages do not create receipts.
The visitor UUID must come from the current accepted consent context, after identification if used. Stripe metadata does not use a consent epoch field. After withdrawal, stop sending the old UUID and consent flag; after fresh consent, use the new resolved UUID. Zijra preserves valid payment amounts while leaving withdrawn or unmatched identities unassigned. Payment references can still identify a customer through your merchant account. See the privacy notice and data processing information.
Open Stripe connection