---
title: "Queue a MembershipCharges export"
method: GET
path: "/customers/membership-charges/queue"
tags: ["MembershipCharges"]
---

# Queue a MembershipCharges export

`GET /customers/membership-charges/queue`

Kicks off an asynchronous CSV export of `MembershipCharge`s
matching the supplied filters. Returns immediately with a
`QueuedJob` envelope; poll
[`getCustomerQueuedJob`](#operation/getCustomerQueuedJob) until the
job transitions to `complete` or `failed`. On success, the job's
`output` contains a signed download URL for the generated CSV.

Use this in preference to the synchronous
[`listCustomerMembershipCharges`](#operation/listCustomerMembershipCharges)
endpoint when the result set is large (more than a few thousand
rows) or when the export is intended to be emailed to the
requesting user — pass `email=true` to have the finished CSV
delivered as an email attachment instead of (or alongside) the
pollable download URL.

Requires the `reports.download` permission on every site whose
charges fall in scope.

Note: an earlier docs revision exposed this operation under
`/shop/membership-charges/queue`. The Laravel controller has
always lived in customer-api, so `/customers/membership-charges/queue`
is the correct and canonical path.

## Query parameters

- `site_id` string
- `organisation_id` string, uuid
- `membership_id` string
- `status` string
- `billing_period_from_start` string, date
- `billing_period_from_end` string, date
- `created_at_start` string, date
- `created_at_end` string, date
- `amount_from` number
- `amount_to` number
- `processor` string
- `email` boolean

## Response `200`

The job was successfully queued

- object
  - `data` QueuedJob, required
    - `id` string, uuid, required — The ID of the queued job.
    - `status` 'pending' | 'complete' | 'failed', required — The status of the queued job.
    - `output` object, required — The output of the queued job.
    - `created_at` string, date-time, required — The date and time the queued job was created.
    - `updated_at` string, date-time, required — The date and time the queued job was last updated.

## Other responses

- `400` — The request failed.
- `401` — The user is unauthenticated

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
