Logocowtic
Sales & checkout

Payment Processing

Connect zahls.ch and accept payments for paid tickets

Paid tickets require a connected zahls.ch account. cowtic does not add its own platform commission on top of zahls.ch payment fees.

When you need payments

Connect zahls.ch when you sell tickets above CHF 0. Free-only events do not require payment setup.

Connect zahls.ch

  1. Create a zahls.ch account — Sign up at zahls.ch and complete their verification process.
  2. Open Payments in cowtic — In the dashboard sidebar, go to Payments.
  3. Enter your credentials — Paste your zahls.ch API Key and Instance ID, click Save, then use Test connection to verify.
  4. Configure the webhook in zahls.ch — Copy the webhook URL from the Payments page and add it in your zahls.ch dashboard (Webhooks → add URL → subscribe to transaction confirmed → save).

Without the webhook, orders can stay Pending after the customer pays. Always configure the webhook before going live.

How checkout works

When a customer buys paid tickets:

  1. They complete checkout on your event page
  2. cowtic creates an order with status Pending
  3. The customer is redirected to zahls.ch to pay
  4. zahls.ch processes the payment
  5. zahls.ch notifies cowtic via webhook
  6. The order moves to Completed and tickets are issued

Free tickets skip zahls.ch. The order completes immediately and tickets are sent by email.

Order statuses

StatusMeaning
PendingAwaiting payment or confirmation
CompletedPaid and tickets issued
CancelledCancelled by you; tickets invalidated
ExpiredPayment window ended; reserved tickets released

Pending orders expire after a reservation timeout if payment is not completed. The exact duration depends on your environment configuration.

Currency

Set the currency when you create an event. Supported values are CHF and EUR. All ticket types in one event share the same currency. You cannot change currency after sales have started.

Refunds and cancellations

To cancel a paid order and refund the customer:

  1. Go to Orders in the dashboard
  2. Open the order actions menu
  3. Click Cancel order

The order is marked Cancelled, tickets are invalidated, and the refund is processed through zahls.ch. Refund timing depends on the customer's bank.

You define your own refund policy for customers. State it clearly on your event page.

Manual payment actions

For pending orders you can also:

  • Confirm order — mark as completed when payment was received outside the normal flow
  • Mark as paid — for invoice or waiting-payment orders

See Orders for details.

Security

  • Card data is entered on zahls.ch, not on cowtic
  • cowtic never stores card numbers
  • Keep your zahls.ch API Key and Instance ID private
  • Only enter credentials on the Payments page

Troubleshooting

"Payment credentials required" when publishing

Open Payments, save valid zahls.ch credentials, and try again.

Orders stuck on Pending

  1. Confirm the webhook URL in zahls.ch matches the URL on your Payments page
  2. Run Test connection on the Payments page
  3. Place a small test order

Customer reports a failed payment

Ask them to verify card details, try another card, or contact their bank. Payment processing errors come from zahls.ch or the card issuer.

Payouts

Ticket revenue is paid out according to your zahls.ch payout schedule. Check your zahls.ch dashboard for balance, payout history, and bank details.

  • Orders — view and manage customer orders
  • Events — set event currency
  • Tickets — configure paid ticket types
  • Analytics — track revenue

On this page