ParasendDocs
Sign in Start free

Batches

First-class container of deliveries sharing files and policies, with an aggregated monotonic funnel. Lifecycle draft → send out (/finalize) → sending → completed.

Endpoints

The Batch object

  • idstring

    The batch's ID, starting bat_.

  • objectstring

    Always batch.

  • namestring · nullable

    The batch's name, for your own reference. A batch created without one is named Batch and the creation date (UTC), e.g. Batch 2026-11-06; null if it was set to null.

  • statusstring

    draft, then scheduled (optional), sending, following_up and completed; or cancelled. Paused follow-ups are a flag, not a status.

    One of draft scheduled sending following_up completed cancelled
  • on_finalize: deliveries added to the draft wait and go out together when you send the batch out (POST /batches/{id}/finalize), or at scheduled_at. rolling: the batch is sending from the start and each delivery goes out as soon as it is added, until you close the batch with POST /batches/{id}/finalize.

    One of on_finalize rolling
  • funnelobject

    Counts that only go up: notified ≥ opened ≥ authenticated ≥ confirmed_direct, and delivered_total = confirmed_direct + rescued_by_followups.

    15 fields of funnel
    • Deliveries counted.

    • Deliveries whose first notice has gone out.

    • Notified deliveries whose recipient opened the link, or got further.

    • Notified deliveries whose recipient identified themselves, or got further (every delivered one included).

    • Deliveries whose recipient confirmed receipt after the first notice, with no follow-up.

    • Deliveries whose recipient confirmed receipt only after a follow-up.

    • All delivered deliveries: confirmed_direct plus rescued_by_followups.

    • Deliveries that expired before the recipient confirmed receipt.

    • Deliveries that were revoked.

    • Deliveries whose status is now auth_failed: the recipient's last attempt to identify themselves failed.

    • Deliveries that ended bounced: the recipient could not be reached.

    • Deliveries in a paper-mail step (paper_pending_approval or paper_dispatched).

    • Deliveries waiting for a postal address. Currently always 0.

    • bounced as a fraction of notified, from 0 to 1, rounded to four decimals; 0 when none have been notified.

    • ISO 8601 duration.

  • createdstring · date-time

    When it was created, in ISO 8601 (UTC).

  • follow_up_policy_idstring · nullable

    The follow-up policy (rpol_…) the batch's deliveries follow, unless a delivery follows its own. null: no follow-up policy (never your organisation's default policy).

  • Whether a delivery in the batch may follow a different follow-up policy, named in its options.reminder_policy. When false, such a delivery is refused with policy_override_not_allowed.

  • Whether the batch's follow-ups are paused (POST /batches/{id}/pause). Reminders that come due while paused wait, and go in the next send window after POST /batches/{id}/resume.

  • scheduled_atstring · date-time · nullable

    When the batch is to be sent out, in ISO 8601 (UTC), if you gave it a send time; null otherwise. Sending out a batch with a future scheduled_at makes it scheduled until that time.

  • 3 fields of send_window
    • send_window.startstringrequired

      Local time HH:MM, inclusive.

    • send_window.endstringrequired

      Local time HH:MM, exclusive; after start, same day.

    • The time zone of start and end: always Atlantic/Reykjavik, which is UTC all year.

  • defaultsobject
    6 fields of defaults
    • 8 fields of options
      • How the recipient is told — the invitation and every reminder go to each channel listed; each needs its contact (recipient.email, recipient.phone). Default — e-mail when there is an address, else SMS. Told on both, a failure on one channel bounces the delivery only once the other cannot arrive either.

        One of email sms
      • Which ways of identifying the recipient to offer within recipient.verification_level, in your order of preference. The recipient may always use a way at least as strong as the weakest one you list. Left out: every way the level allows (an SMS code only when the recipient has a phone).

        One of audkenni smart_id sms_otp passkey videoid password link_only
      • The follow-up policy's ID (rpol_…): the reminders this delivery sends while it waits.

      • The brand profile's ID (bp_…). One set on the delivery wins over the batch's, and the batch's over the account's default.

      • How many days the recipient has to confirm receipt before the delivery expires: a whole number from 1 to 365. Default 30. For a delivery in a batch, the days count from when the batch is sent out.

      • What the recipient and the evidence show as the sender. legal_person (your organisation's default) shows the organisation, with an opaque reference to the person who sent it; that person's name, personal code and e-mail are not shown. individual names the person who sent it as well. Your choice per delivery or template; a personal account is always individual.

        One of legal_person individual
      • Which saved wording the first notice uses, per channel: a wording ID, null for Parasend's own, or left out for your organisation's default.

        2 fields of notice_wording
    • csv_personal_code: a delivery added with a recipient.personal_code, and no recipient.conditional_authentication of its own, gets conditional_authentication: true, so only that person can open it. null or left out: no such rule.

      One of csv_personal_code
    • The language (is or en) for deliveries added to the batch that do not set their own.

    • The message for deliveries added to the batch that do not set their own: the plain-text note the recipient sees before signing in.

    • The title for deliveries added to the batch that do not set their own: the subject the recipient sees in the notice and on their page.

    • The recipient.verification_level (high, substantial, medium or low) for deliveries added to the batch that do not set their own.

  • filesarray of string

    IDs of the files (fil_…) shared by every delivery in the batch. Each delivery added gets these first, then its own files.

  • Whether you can add deliveries to the batch now: true for a draft, and for a rolling batch that is sending and has not been closed.

  • countsobject

    The batch's deliveries by where they stand now. Each delivery is in exactly one of delivered, in_progress and ended, so the three add up to total.

    4 fields of counts
  • Who created the batch: user_id, the member or the API key's holder (null for a key with no holder), and via, portal or api_key.

    2 fields of created_by
  • livemodeboolean

    true in live mode, false in test mode.

  • sent_out_atstring · date-time · nullable

    When the batch was sent out, in ISO 8601 (UTC); for a rolling batch, when it was closed to new deliveries. null until then; a batch cancelled first gets the time it was cancelled.

  • following_up_atstring · date-time · nullable

    When the batch moved to following_up, in ISO 8601 (UTC): it had been sent out and every delivery in it had had its first notice. null until then.

  • completed_atstring · date-time · nullable

    When the batch became completed, in ISO 8601 (UTC): every delivery in it had reached an end state. null until then.

  • cancelled_atstring · date-time · nullable

    When the batch was cancelled with POST /batches/{id}/cancel, in ISO 8601 (UTC); null if it has not been.

  • Only on GET /batches/{id}.

    10 fields of follow_up_funnel
  • kpisobject

    Only on GET /batches/{id}.

    8 fields of kpis
    • Deliveries in the batch that were delivered, on the first notice or after follow-ups.

    • delivered as a percentage of the batch's deliveries, rounded to one decimal (e.g. 87.5); 0 for an empty batch.

    • Deliveries still under way: not yet delivered and not ended.

    • ISO 8601 duration.

    • The share of notified deliveries that could not be reached (bounced), as a fraction from 0 to 1 rounded to four decimals; 0 when none have been notified.

    • Delivered deliveries whose recipient confirmed only after a follow-up, not on the first notice.

    • An estimate of the batch's spend so far: the SMS messages sent for it (sms_messages), priced at today's prices, excluding VAT (amount, in the minor unit of currency). lookups is 0, and estimated is always true: your invoice is what counts.

      5 fields of spend
    • kpis.vs_previousobject · nullable

      How this batch compares with the previous batch your organisation sent out in the same mode (cancelled batches left out): that batch's ID and the difference in delivered percentage, in percentage points. null until this batch is sent out, or when there is no earlier batch.

      2 fields of vs_previous