# Yamm ## API Docs - Partner API > 1. Authentication [Issue Access Token](https://docs.yammrefund.com/issue-access-token-45631909e0.md): Issues an access token. Authenticated by `client_id` + `client_secret` — no bearer token. - Partner API > 2. Catalog [List Products](https://docs.yammrefund.com/list-products-45631910e0.md): Paginated products for the token's store, with variants. Prices are in minor units. Scope: `products:read`. - Partner API > 2. Catalog [Get Product](https://docs.yammrefund.com/get-product-45631911e0.md): One of the store's products with its variants. Returns `404` for another store's product. Scope: `products:read`. - Partner API > 3. Returns [List Return Reasons](https://docs.yammrefund.com/list-return-reasons-45631912e0.md): Reasons the store accepts — the same set the customer portal shows — with the return types each one can be used for in this store. Filter with `type`; use an `id` from `?type=return` as `products[].reason_id` when creating a return. - Partner API > 3. Returns [Create Return Reason](https://docs.yammrefund.com/create-return-reason-45631913e0.md): Adds a return reason for the store. It is active and enabled right away, so it shows in **List Return Reasons** and can be used as `products[].reason_id` on returns of the given types. `return_types` defaults to all types; include `return` to use it on POS returns. - Partner API > 3. Returns [Upload Return Attachment](https://docs.yammrefund.com/upload-return-attachment-45631914e0.md): Uploads one evidence file (image or mp4) for a return. The file stays pending until `POST /returns` names its `id` in `attachment_ids` (max 10 per return). - Partner API > 3. Returns [Create Return](https://docs.yammrefund.com/create-return-45631915e0.md): Records a POS return and submits it for review. The order is recorded from `products`, so send **every line** of the original sale; lines with `return_quantity > 0` are the ones returned. - Partner API > 3. Returns [List Returns](https://docs.yammrefund.com/list-returns-45631916e0.md): The store's returns, newest first. Scope: `refunds:read`. - Partner API > 3. Returns [Get Return](https://docs.yammrefund.com/get-return-45631917e0.md): One return with its items and refund allocations. Scope: `refunds:read`. - Partner API > 3. Returns [Approve Return](https://docs.yammrefund.com/approve-return-45631918e0.md): Approves a submitted return. In-store returns need no shipping, so the return **completes immediately** and the refund is queued. - Partner API > 3. Returns [Reject Return](https://docs.yammrefund.com/reject-return-45631919e0.md): Rejects a submitted return. `reason` is **required** and shown to the customer. Returns `409` if the return is not awaiting review. - Partner API > 3. Returns [List Resolution Methods](https://docs.yammrefund.com/list-resolution-methods-45631920e0.md): Refund methods this store accepts on partner returns — use one as `resolution.method` on `POST /returns`. - Partner API > 3. Returns [Inspect Return](https://docs.yammrefund.com/inspect-return-45631921e0.md): Approves a submitted return with an accept/reject verdict per returned item and completes it in one call; only accepted items are refunded. Send exactly one verdict per item `id` from the return's `items`. `reject_reason` is **required** when `decision` is `reject`. Returns `400` if a verdict is missing or invalid, `409` if the return is not awaiting review. - Partner API > 3. Returns [Cancel Return](https://docs.yammrefund.com/cancel-return-45631922e0.md): Withdraws a return from any non-terminal state. `reason` is **required**. Returns `409` if the return is already completed, rejected or cancelled and `400` if the reason is missing. Responds with the full return, same shape as Get Return. - Partner API > 3. Returns [Get Return Timeline](https://docs.yammrefund.com/get-return-timeline-45631923e0.md): Resolution events of a return (refund attempts, payouts, task changes), newest first, cursor-paginated. Returns `400` for an invalid cursor. Scope: `refunds:read`. - Partner API > 4. Webhooks [Webhook Meta](https://docs.yammrefund.com/webhook-meta-45631924e0.md): Subscribable event types, supported API versions and delivery settings. - Partner API > 4. Webhooks [List Webhooks](https://docs.yammrefund.com/list-webhooks-45631925e0.md): Paginated webhook endpoints of the store. Secrets are masked. - Partner API > 4. Webhooks [Create Webhook](https://docs.yammrefund.com/create-webhook-45631926e0.md): Register an endpoint. The signing secret is returned in full only here. Requires the webhooks plan feature. - Partner API > 4. Webhooks [Get Webhook](https://docs.yammrefund.com/get-webhook-45631927e0.md): One webhook endpoint (secret masked). - Partner API > 4. Webhooks [Update Webhook](https://docs.yammrefund.com/update-webhook-45631928e0.md): Full-object update: send every field, not just the changed ones. - Partner API > 4. Webhooks [Delete Webhook](https://docs.yammrefund.com/delete-webhook-45631929e0.md): Delete a webhook endpoint. - Partner API > 4. Webhooks [Rotate Webhook Secret](https://docs.yammrefund.com/rotate-webhook-secret-45631930e0.md): Issue a new signing secret. The old secret keeps signing for 24 hours. - Partner API > 4. Webhooks [Send Test Webhook](https://docs.yammrefund.com/send-test-webhook-45631931e0.md): Send a sample event to the endpoint and report the delivery result. Body is optional. - Partner API > 4. Webhooks [List Webhook Deliveries](https://docs.yammrefund.com/list-webhook-deliveries-45631932e0.md): Paginated delivery attempts of a webhook endpoint, newest first. Returns `404` for another store's endpoint. Scope: `webhooks:manage`. - Partner API > 4. Webhooks [Get Webhook Delivery](https://docs.yammrefund.com/get-webhook-delivery-45631933e0.md): One delivery attempt with the request and response captured. Returns `404` if the delivery does not belong to the endpoint. Scope: `webhooks:manage`. - Partner API > 4. Webhooks [Retry Webhook Delivery](https://docs.yammrefund.com/retry-webhook-delivery-45631934e0.md): Schedules a failed delivery for an immediate retry instead of waiting for its backoff. Returns `409` when the delivery succeeded, was skipped, is pending or processing, or has used all its attempts. Scope: `webhooks:manage`. - Partner API > 5. Store & Orders [Get Store](https://docs.yammrefund.com/get-store-45631935e0.md): The store the token is scoped to, with the refund methods partner returns can use there. Any valid token may call it (no scope required). - Partner API > 5. Store & Orders [List Orders](https://docs.yammrefund.com/list-orders-45631936e0.md): Paginated orders of the store, read from Yamm's copy (never calls the e-commerce platform). Scope: `orders:read`. - Partner API > 5. Store & Orders [Get Order](https://docs.yammrefund.com/get-order-45631937e0.md): One order by its external (platform or POS) id, with each line's returned, in-progress and still-returnable quantities. Scope: `orders:read`.