---
title: "Request an endorsement"
method: POST
path: "/v1/customers/{customerId}/endorsements"
tags: ["Endorsements"]
---

# Request an endorsement

`POST /v1/customers/{customerId}/endorsements`

## Request

- Base URL: `https://api.sandbox.alfredpay.io`
- URL: `https://api.sandbox.alfredpay.io/v1/customers/{customerId}/endorsements`
- Auth: one of:
  - HTTP bearer
  - API key in header `api-key` and API key in header `api-secret`

Asks for an entitlement. The customer has to be `ACTIVE`, otherwise the endorsement parks at `INCOMPLETE`.

For `fiat_collection` this request is what triggers provisioning. Wait for `customer.endorsement.updated` to reach `APPROVED` before you call the instrument endpoint, not the other way round.

**Wait on** `customer.endorsement.updated` reaching `APPROVED`. See [Webhooks and events](/docs/webhooks-and-events).

## Headers

- `Idempotency-Key` string, uuid, required

## Request body

- object
  - `endorsement` 'stablecoin_balance' | 'stablecoin_payin' | 'fiat_collection' | 'fiat_payout.cross_border' | 'stablecoin_payout.third_party' | 'corporate_usd_account' | 'local_stablecoin.MXNa' | 'local_stablecoin.ARSa' | 'local_stablecoin.COPa' | 'local_stablecoin.BRZ', required

## Response `202`

Accepted

- Endorsement
  - `endorsement` 'stablecoin_balance' | 'stablecoin_payin' | 'fiat_collection' | 'fiat_payout.cross_border' | 'stablecoin_payout.third_party' | 'corporate_usd_account' | 'local_stablecoin.MXNa' | 'local_stablecoin.ARSa' | 'local_stablecoin.COPa' | 'local_stablecoin.BRZ'
  - `endorsement_status` 'INCOMPLETE' | 'APPROVED' | 'PAUSED' | 'REVOKED'
  - `provider_endorsements` object[]: Provider-side endorsements required for activation, a second gate Alfred does not control.
    - `provider` string
    - `name` string
    - `status` 'pending' | 'approved' | 'revoked'
  - `instrument_decision` object, nullable
    - `instrument` string
    - `channel` string
  - `reason_code` 'kyc_incomplete' | 'provider_processing' | 'null', nullable
  - `next_action` 'none' | 'provide_information'

## Other responses

- `403`: `customer_type_ineligible`, for example a `SUB_CUSTOMER` requesting `corporate_usd_account`.
- `409`: `idempotency_conflict`, or the resource is in a state that forbids this call.

## Changes

- **2026-11-03** `20fef4fd2ab3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/changes/v1/customers/:customerId/endorsements/post.md)

---

[API](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation.md) - [All operations](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/revisions/20fef4fd2ab3?raw)
