You receive an intentId for each intent in the batch, in the same order.
Today, this loops createIntent calls for each contributor. An atomic batch-submission path is planned so the whole batch lands in one on-chain transaction.
Each intent settles independently. Some recipients may receive their payment seconds before others, payouts are not coordinated as an all-or-nothing batch.
There is no on-chain “stream” object in Confidential Payroll. Schedule the batch from your own backend (cron, scheduler, etc.) on whatever cadence you need. Each cycle is an independent batch, which keeps confidentiality maximal because cycle N reveals nothing about cycle N+1.
You can grant a finance team or auditor scoped viewing access to the entire batch (or to selected intents) at submission time. See viewing permissions.