Create an Offramp Transaction
After you have created a customer and the customer's kyc(b) has been approved, you may then execute an offramp transaction. The exchange of cryptocurrency for fiat. Offramp from a blockchain wallet to a registered payment method. In order to register a payment method please follow the requirements by country detailed in registering payment methods. With an approved customerid, a quoteid, and a registered fiataccountid you may execute an offramp transaction. It is a requirement to have a FIAT account registered for a customerID in order to receive the fiat in the offramp transaction.
Custodial Wallet Address Management for Offramps
AlfredPayment Manager - With APM we are able to streamline digital payments for clients using custodial wallets. The solution involves managing rotating wallet addresses for each blockchain (Solana, Tron, Ethereum, Base, Arbitrum, and Matic) through smart contracts. These wallet addresses are shared with clients to enable seamless payments from their unique wallets, ensuring that USDC/USDT can be received and settled into a registered FIAT account via the Penny API.
Once the funds are received in the wallet, Alfred settles the FIAT currency into the client’s FIAT account registered in "Create Payment Method".
When APM (AlfredPayment Manager) is implemented origin address is optional and is not required to be passed in the body of the request. Event statuses are generated and sent to our ramps from the smart contracts configured per chain in order to liquidate the FIAT anywhere from 3-5 minutes.
Offramp Example
Request Body
curl --request POST \
--url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/offramp \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: ***' \
--header 'api-secret: ***' \
--data {
"customerId": "e5e408a4-b3a1-450b-b1e0-bcb6f1641a3c",
"quoteId": "7f1d6e17-a157-4c28-afba-ba364a78c470",
"fromCurrency": "USDC",
"toCurrency": "MXN",
"amount": "100",
"chain": "XLM",
"fiatAccountId": "06445594-a2e2-461a-b73c-5d0fcdf56134",
"originAddress": "GC5MS2YGIRP3GKB7K2OUZ3VS3RWIQHQPENYCMZP2E2K5NUQAMAKH6UHE",
"memo": "158607491"
}'
curl --request POST \
--url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/offramp \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: ***' \
--header 'api-secret: ***' \
--data {
"customerId": "e5e408a4-b3a1-450b-b1e0-bcb6f1641a3c",
"quoteId": "7f1d6e17-a157-4c28-afba-ba364a78c470",
"fromCurrency": "USDC",
"toCurrency": "BRL",
"amount": "100",
"chain": "XLM",
"fiatAccountId": "06445594-a2e2-461a-b73c-5d0fcdf56134",
"originAddress": "GC5MS2YGIRP3GKB7K2OUZ3VS3RWIQHQPENYCMZP2E2K5NUQAMAKH6UHE",
"memo": "158607491"
}'
curl --request POST \
--url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/offramp \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: ***' \
--header 'api-secret: ***' \
--data {
"customerId": "e5e408a4-b3a1-450b-b1e0-bcb6f1641a3c",
"quoteId": "7f1d6e17-a157-4c28-afba-ba364a78c470",
"fromCurrency": "USDC",
"toCurrency": "ARS",
"amount": "100",
"chain": "XLM",
"fiatAccountId": "06445594-a2e2-461a-b73c-5d0fcdf56134",
"originAddress": "GC5MS2YGIRP3GKB7K2OUZ3VS3RWIQHQPENYCMZP2E2K5NUQAMAKH6UHE",
"memo": "158607491"
}'
curl --request POST \
--url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/offramp \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: ***' \
--header 'api-secret: ***' \
--data {
"customerId": "e5e408a4-b3a1-450b-b1e0-bcb6f1641a3c",
"quoteId": "7f1d6e17-a157-4c28-afba-ba364a78c470",
"fromCurrency": "USDC",
"toCurrency": "COP",
"amount": "100",
"chain": "XLM",
"fiatAccountId": "06445594-a2e2-461a-b73c-5d0fcdf56134",
"originAddress": "GC5MS2YGIRP3GKB7K2OUZ3VS3RWIQHQPENYCMZP2E2K5NUQAMAKH6UHE",
"memo": "158607491"
}'
curl --request POST \
--url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/offramp
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: ***'
--header 'api-secret: ***'
--data {
"customerId": "e5e408a4-b3a1-450b-b1e0-bcb6f1641a3c",
"quoteId": "7f1d6e17-a157-4c28-afba-ba364a78c470",
"fromCurrency": "USDC",
"toCurrency": "DOP",
"amount": "100",
"chain": "XLM",
"fiatAccountId": "06445594-a2e2-461a-b73c-5d0fcdf56134",
"originAddress": "GC5MS2YGIRP3GKB7K2OUZ3VS3RWIQHQPENYCMZP2E2K5NUQAMAKH6UHE",
"memo": "158607491"
}
curl --request POST \
--url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/offramp \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: ***' \
--header 'api-secret: ***' \
--data {
"customerId": "e5e408a4-b3a1-450b-b1e0-bcb6f1641a3c",
"quoteId": "7f1d6e17-a157-4c28-afba-ba364a78c470",
"fromCurrency": "USDC",
"toCurrency": "HKD",
"amount": "100",
"fiatAccountId": "06445594-a2e2-461a-b73c-5d0fcdf56134",
"chain": "MATIC",
"originAddress": "GC5MS2YGIRP3GKB7K2OUZ3VS3RWIQHQPENYCMZP2E2K5NUQAMAKH6UHE",
}
Response Example
{
"transactionId": "add37b82-a80e-4469-89d2-7cb45e827e1f",
"customerId": "fd76f0e2-c07f-4fb7-a8e7-c3c8d6e36504",
"createdAt": "2025-08-11T20:09:54.633Z",
"updatedAt": "2025-08-11T20:09:54.633Z",
"fromCurrency": "USDC",
"toCurrency": "MXN",
"fromAmount": "100",
"toAmount": "1806.16",
"chain": "XLM",
"status": "CREATED",
"fiatAccountId": "ab311398-4f54-4a6d-a337-c156808e45a5",
"depositAddress": "GDUMTTU2R4HDAPZGTFYOMXGZRAQLPPHCFQ2NBXHYZVILLN3XDQAFOOEF",
"expiration": "2025-08-11T20:19:54.374Z",
"quote": {
"quoteId": "556b3811-2b7e-4fe6-a93b-8de57ccba0f9",
"fromCurrency": "USDC",
"toCurrency": "MXN",
"fromAmount": "100",
"toAmount": "1806.16",
"expiration": "2025-08-11T23:09:46.993Z",
"rate": "18.68",
"metadata": {},
"fees": [
{
"type": "commissionFee",
"amount": "56.04",
"currency": "MXN"
},
{
"type": "processingFee",
"amount": "5.8",
"currency": "MXN"
},
{
"type": "networkFee",
"amount": "0",
"currency": "MXN"
},
{
"type": "taxFee",
"amount": "0",
"currency": "MXN"
}
]
},
"memo": "272821812"
}
{
"transactionId": "add37b82-a80e-4469-89d2-7cb45e827e1f",
"customerId": "fd76f0e2-c07f-4fb7-a8e7-c3c8d6e36504",
"createdAt": "2025-08-11T20:09:54.633Z",
"updatedAt": "2025-08-11T20:09:54.633Z",
"fromCurrency": "USDC",
"toCurrency": "BRL",
"fromAmount": "100",
"toAmount": "1806.16",
"chain": "XLM",
"status": "CREATED",
"fiatAccountId": "ab311398-4f54-4a6d-a337-c156808e45a5",
"depositAddress": "GDUMTTU2R4HDAPZGTFYOMXGZRAQLPPHCFQ2NBXHYZVILLN3XDQAFOOEF",
"expiration": "2025-08-11T20:19:54.374Z",
"quote": {
"quoteId": "556b3811-2b7e-4fe6-a93b-8de57ccba0f9",
"fromCurrency": "USDC",
"toCurrency": "BRL",
"fromAmount": "100",
"toAmount": "1806.16",
"expiration": "2025-08-11T23:09:46.993Z",
"rate": "18.68",
"metadata": {},
"fees": [
{
"type": "commissionFee",
"amount": "56.04",
"currency": "BRL"
},
{
"type": "processingFee",
"amount": "5.8",
"currency": "BRL"
},
{
"type": "networkFee",
"amount": "0",
"currency": "BRL"
},
{
"type": "taxFee",
"amount": "1.05",
"currency": "BRL"
}
]
},
"memo": "272821812"
}
{
"transactionId": "add37b82-a80e-4469-89d2-7cb45e827e1f",
"customerId": "fd76f0e2-c07f-4fb7-a8e7-c3c8d6e36504",
"createdAt": "2025-08-11T20:09:54.633Z",
"updatedAt": "2025-08-11T20:09:54.633Z",
"fromCurrency": "USDC",
"toCurrency": "ARS",
"fromAmount": "100",
"toAmount": "1806.16",
"chain": "XLM",
"status": "CREATED",
"fiatAccountId": "ab311398-4f54-4a6d-a337-c156808e45a5",
"depositAddress": "GDUMTTU2R4HDAPZGTFYOMXGZRAQLPPHCFQ2NBXHYZVILLN3XDQAFOOEF",
"expiration": "2025-08-11T20:19:54.374Z",
"quote": {
"quoteId": "556b3811-2b7e-4fe6-a93b-8de57ccba0f9",
"fromCurrency": "USDC",
"toCurrency": "ARS",
"fromAmount": "100",
"toAmount": "1806.16",
"expiration": "2025-08-11T23:09:46.993Z",
"rate": "18.68",
"metadata": {},
"fees": [
{
"type": "commissionFee",
"amount": "56.04",
"currency": "ARS"
},
{
"type": "processingFee",
"amount": "5.8",
"currency": "ARS"
},
{
"type": "networkFee",
"amount": "0",
"currency": "ARS"
},
{
"type": "taxFee",
"amount": "0",
"currency": "ARS"
}
]
},
"memo": "272821812"
}
{
"transactionId": "add37b82-a80e-4469-89d2-7cb45e827e1f",
"customerId": "fd76f0e2-c07f-4fb7-a8e7-c3c8d6e36504",
"createdAt": "2025-08-11T20:09:54.633Z",
"updatedAt": "2025-08-11T20:09:54.633Z",
"fromCurrency": "USDC",
"toCurrency": "COP",
"fromAmount": "100",
"toAmount": "1806.16",
"chain": "XLM",
"status": "CREATED",
"fiatAccountId": "ab311398-4f54-4a6d-a337-c156808e45a5",
"depositAddress": "GDUMTTU2R4HDAPZGTFYOMXGZRAQLPPHCFQ2NBXHYZVILLN3XDQAFOOEF",
"expiration": "2025-08-11T20:19:54.374Z",
"quote": {
"quoteId": "556b3811-2b7e-4fe6-a93b-8de57ccba0f9",
"fromCurrency": "USDC",
"toCurrency": "COP",
"fromAmount": "100",
"toAmount": "1806.16",
"expiration": "2025-08-11T23:09:46.993Z",
"rate": "18.68",
"metadata": {},
"fees": [
{
"type": "commissionFee",
"amount": "56.04",
"currency": "MXN"
},
{
"type": "processingFee",
"amount": "5.8",
"currency": "COP"
},
{
"type": "networkFee",
"amount": "0",
"currency": "COP"
},
{
"type": "taxFee",
"amount": "0",
"currency": "COP"
}
]
},
"memo": "272821812"
}
{
"transactionId": "add37b82-a80e-4469-89d2-7cb45e827e1f",
"customerId": "fd76f0e2-c07f-4fb7-a8e7-c3c8d6e36504",
"createdAt": "2025-08-11T20:09:54.633Z",
"updatedAt": "2025-08-11T20:09:54.633Z",
"fromCurrency": "USDC",
"toCurrency": "DOP",
"fromAmount": "100",
"toAmount": "1806.16",
"chain": "XLM",
"status": "CREATED",
"fiatAccountId": "ab311398-4f54-4a6d-a337-c156808e45a5",
"depositAddress": "GDUMTTU2R4HDAPZGTFYOMXGZRAQLPPHCFQ2NBXHYZVILLN3XDQAFOOEF",
"expiration": "2025-08-11T20:19:54.374Z",
"quote": {
"quoteId": "556b3811-2b7e-4fe6-a93b-8de57ccba0f9",
"fromCurrency": "USDC",
"toCurrency": "DOP",
"fromAmount": "100",
"toAmount": "1806.16",
"expiration": "2025-08-11T23:09:46.993Z",
"rate": "18.68",
"metadata": {},
"fees": [
{
"type": "commissionFee",
"amount": "56.04",
"currency": "DOP"
},
{
"type": "processingFee",
"amount": "5.8",
"currency": "DOP"
},
{
"type": "networkFee",
"amount": "0",
"currency": "DOP"
},
{
"type": "taxFee",
"amount": "0",
"currency": "DOP"
}
]
},
"memo": "272821812"
}
{
"transactionId": "add37b82-a80e-4469-89d2-7cb45e827e1f",
"customerId": "fd76f0e2-c07f-4fb7-a8e7-c3c8d6e36504",
"createdAt": "2025-08-11T20:09:54.633Z",
"updatedAt": "2025-08-11T20:09:54.633Z",
"fromCurrency": "USDC",
"toCurrency": "HKD",
"fromAmount": "100",
"toAmount": "1806.16",
"chain": "XLM",
"status": "CREATED",
"fiatAccountId": "ab311398-4f54-4a6d-a337-c156808e45a5",
"depositAddress": "GDUMTTU2R4HDAPZGTFYOMXGZRAQLPPHCFQ2NBXHYZVILLN3XDQAFOOEF",
"expiration": "2025-08-11T20:19:54.374Z",
"quote": {
"quoteId": "556b3811-2b7e-4fe6-a93b-8de57ccba0f9",
"fromCurrency": "USDC",
"toCurrency": "HKD",
"fromAmount": "100",
"toAmount": "1806.16",
"expiration": "2025-08-11T23:09:46.993Z",
"rate": "18.68",
"metadata": {},
"fees": [
{
"type": "commissionFee",
"amount": "56.04",
"currency": "HKD"
},
{
"type": "processingFee",
"amount": "5.8",
"currency": "HKD"
},
{
"type": "networkFee",
"amount": "0",
"currency": "HKD"
},
{
"type": "taxFee",
"amount": "0",
"currency": "HKD"
}
]
},
"memo": "272821812"
}
Webhook status updates
To receive transaction status updates, please provide the Alfred onboarding team with the URL where you would like webhooks to be delivered. The following webhooks will be sent for Onramp transactions.
Offramp event type statuses
status | Description | Metadata |
---|---|---|
ON_CHAIN_DEPOSIT_RECEIVED | Partner acknowledges on chain receive of funds at their USDT wallet | {"txHash": string} |
TRADE_COMPLETED | Trade of USDT to local fiat currency has been completed | null |
FIAT_TRANSFER_INITIATED | Partner initiated fiat transfer to customer bank account | null |
FIAT_TRANSFER_COMPLETED | Partner fiat transfer to customer bank account settled | null |
FAILED | Offramp failed for a partner specific reason. Partner to provide set of failure reasons | {"failureReason":string} |
Updated 1 day ago