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.

FieldDescription
isExternalIndicates whether the account belongs to an external beneficiary
  • If isExternal is omitted or set to false, the account is treated as first-party.
  • If isExternal is 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 TypeisExternal
First-Partyfalse (or omitted)
Third-Partytrue

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.