First-Party and Third-Party Payments
Alfred supports both first-party and third-party payment flows. These models determine whether funds are being moved for the same verified customer or for an external beneficiary.
Understanding this distinction is important when registering payment methods and initiating transactions.
First-Party Payments
A first-party payment occurs when funds are moved on behalf of the same individual or business that completed KYC or KYB verification.
In this model, the payment method belongs directly to the verified customer.
Examples
- A business converting USD to USDC for its own treasury operations.
- An individual converting USDC into ARS and withdrawing funds to their personal bank account.
In these cases, the bank account or wallet used for the transaction belongs to the same customer identity that was verified during onboarding.
Third-Party Payments
A third-party payment occurs when funds are sent to or received on behalf of another individual or business.
This model is commonly used by platforms that facilitate payments between parties.
Examples
- A platform paying wages to a worker
- A marketplace sending payouts to merchants
- A platform collecting payments from consumers on behalf of vendors
In these scenarios, the destination bank account belongs to a beneficiary who is different from the verified platform customer.
Depending on jurisdiction and transaction type, Alfred may require additional information or documentation to support third-party payment flows.
Registering a Fiat Account
To initiate fiat transactions, a payment method (bank account) must be registered using the Create Payment Method endpoint.
Create Payment Method https://alfredpay.readme.io/v1.1/reference/post_fiataccounts-1
The same endpoint is used for both first-party and third-party payment methods.
The distinction between them is determined by the isExternal field.
| Field | Description |
|---|---|
| isExternal | Indicates whether the account belongs to an external beneficiary |
- If
isExternalis omitted or set to false, the account is treated as first-party. - If
isExternalis set to true, the account is treated as a third-party beneficiary account.
Register a First-Party Account
To register a bank account that belongs to the verified customer, omit the isExternal field or set it to false.
curl --location 'https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts' \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: xxxxxxx' \
--header 'api-secret: xxxxxxx' \
--data '{
"customerId": "00a8c563-8e11-48f8-8a81-5fe79af779fb",
"type": "SPEI",
"fiatAccountFields": {
"accountNumber": "012180187240503253",
"accountType": "CLABE"
}
}'Register a Third-Party Account
To register a beneficiary bank account belonging to an external party, set isExternal to true.
curl --location 'https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts' \
--header 'Content-Type: application/json' \
--header 'accept: */*' \
--header 'api-key: xxxxxxx' \
--header 'api-secret: xxxxxxx' \
--data '{
"customerId": "00a8c563-8e11-48f8-8a81-5fe79af779fb",
"type": "SPEI",
"fiatAccountFields": {
"accountNumber": "012180187240503253",
"accountType": "CLABE"
},
"isExternal": true
}'Summary
The only difference between first-party and third-party payment methods is the presence of the isExternal field.
| Payment Type | isExternal |
|---|---|
| First-Party | false (or omitted) |
| Third-Party | true |
This allows Alfred to determine whether the bank account belongs to the verified customer or to an external beneficiary.
Supported Use Cases
Using Alfred's payment infrastructure, platforms can:
- Pay vendors in fiat even when the original funds are in stablecoins
- Collect fiat payments from merchants and settle in stablecoins
- Enable peer-to-peer (P2P) transfers between individuals, subject to applicable limits
Depending on the transaction type and regulatory requirements, Alfred may request additional verification or documentation for third-party payments.
Updated 5 days ago
