2 operations. Every schema and example on this page is generated from the platform contract.
Internal-admin. Requests a buyer made to a Drops shop and the shop passed on, newest first: what they asked for, the shop, the name and address on their account, when it is due and whether the support inbox was told. A request for someone since erased is gone: the erasure takes it with them.
open (the default), closed or all.
openclosedallNewest first, 200 at most.
What the shop was shown, e.g. DR-1A2B3C4D.
copy: a copy of their details. remove: to be removed.
copyremoveheldcompletedrejectedcancelledThe day the buyer asked the shop, as the shop gave it.
YYYY-MM-DD: one month from the day they asked (or it was forwarded).
Still held after its answer-by day.
The name and address on their Membber account when it was forwarded.
Whether the support inbox was told.
How many are held, whatever the view.
curl -G "https://www.membber.com/api/v1/admin-data-requests" \
-H "Authorization: Bearer $MEMBBER_TOKEN"import { createMembberClient } from "@membber/sdk-ts";
const membber = createMembberClient({
getAccessToken: () => process.env.MEMBBER_TOKEN,
});
const { data, error } = await membber.raw.GET("/api/v1/admin-data-requests");
if (error) {
// Typed error envelope: { error: { code, message, requestId } }
throw new Error(`${error.error.code}: ${error.error.message}`);
}
console.log(data);import MembberSwift
let client = MembberClient(
serverURL: MembberClient.productionServerURL,
tokenProvider: { session.accessToken }
)
let response = try await client.api.adminDataRequestsList().ok.body.json
print(response){
"requests": [
{
"id": "00000d1b-0000-4000-8000-d0c500000000",
"reference": "<reference>",
"kind": "copy",
"status": "held",
"forwarded_at": "<forwarded_at>",
"asked_on": "<asked_on>",
"answer_by": "<answer_by>",
"overdue": true,
"store": {
"id": "00000d1b-0000-4000-8000-d0c500000000",
"name": "Example name"
},
"customer_id": "96607d1c-0000-4000-8000-d0c500000096",
"person": {
"name": "Example name",
"email": "alex@example.com"
},
"emailed": true,
"closed_at": "<closed_at>",
"review_note": "Added at the front desk"
}
],
"open_count": 1
}Internal-admin. Records the outcome of a held request once a person has worked it. It runs nothing: the export or the erasure is done by hand first. Closing a request that is already closed answers it as it is. Audited.
completed: answered (the copy was sent, or they were erased). rejected: it could not be verified.
completedrejectedWhat was done, for the record.
What the shop was shown, e.g. DR-1A2B3C4D.
copy: a copy of their details. remove: to be removed.
copyremoveheldcompletedrejectedcancelledThe day the buyer asked the shop, as the shop gave it.
YYYY-MM-DD: one month from the day they asked (or it was forwarded).
Still held after its answer-by day.
The name and address on their Membber account when it was forwarded.
Whether the support inbox was told.
curl -X POST "https://www.membber.com/api/v1/admin-data-requests/295c940a-0000-4000-8000-d0c500000029/close" \
-H "Authorization: Bearer $MEMBBER_TOKEN" \
-H "Idempotency-Key: 1f0e2d3c-4b5a-4678-9abc-def012345678" \
-H "Content-Type: application/json" \
-d '{
"outcome": "completed"
}'import { createMembberClient } from "@membber/sdk-ts";
const membber = createMembberClient({
getAccessToken: () => process.env.MEMBBER_TOKEN,
});
const { data, error } = await membber.raw.POST("/api/v1/admin-data-requests/{requestId}/close", {
params: { path: { requestId: "295c940a-0000-4000-8000-d0c500000029" } },
body: {
outcome: "completed"
},
headers: { "Idempotency-Key": crypto.randomUUID() },
});
if (error) {
// Typed error envelope: { error: { code, message, requestId } }
throw new Error(`${error.error.code}: ${error.error.message}`);
}
console.log(data);import MembberSwift
let client = MembberClient(
serverURL: MembberClient.productionServerURL,
tokenProvider: { session.accessToken }
)
let response = try await client.api.adminDataRequestClose(
path: .init(requestId: "295c940a-0000-4000-8000-d0c500000029"),
body: .json(.init(
outcome: .completed
))
).ok.body.json
print(response){
"request": {
"id": "00000d1b-0000-4000-8000-d0c500000000",
"reference": "<reference>",
"kind": "copy",
"status": "held",
"forwarded_at": "<forwarded_at>",
"asked_on": "<asked_on>",
"answer_by": "<answer_by>",
"overdue": true,
"store": {
"id": "00000d1b-0000-4000-8000-d0c500000000",
"name": "Example name"
},
"customer_id": "96607d1c-0000-4000-8000-d0c500000096",
"person": {
"name": "Example name",
"email": "alex@example.com"
},
"emailed": true,
"closed_at": "<closed_at>",
"review_note": "Added at the front desk"
}
}