Registering Payment Methods

How to register FIAT accounts by Country

Registering a Fiat Account

This endpoint allows the creation of fiat accounts. Find more information contextual to each country in our Registering payment methods section. To distinguish between first-party (owned by the customer) and third-party (beneficiary) accounts, use the isExternal field:

In order to register a FIAT account for a third party, simply call the Create Payment Method endpoint.

Register a First-Party Account

To create a first-party account (owned by the customer), you may omit the isExternal field or set it to false.

Request Body

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": "21ef567b-d4c5-4bad-b4ce-ce975cc1ac57",
  "type": "SPEI",
  "fiatAccountFields": {
    "accountNumber": "012020477538404708",
    "accountType": "CLABE"
  }
}
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": "1a9f7cea-34e4-4f6d-bbbc-02cf4e253105",
  "type": "PIX",
  "fiatAccountFields": {
    "accountNumber": "[email protected]",
    "accountType": "EMAIL"
  }
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": "2fdb5f9a-351f-40e1-b0b4-6a671ca0cbae",
  "type": "COELSA",
  "fiatAccountFields": {
    "accountNumber": "xxxxxxxxxxxxxxxxxxxxxx",
    "accountType": "CBU"
  }
}
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": "3e2b09c3-8f83-4396-b121-3ca25f8a2f65",
  "type": "ACH",
  "fiatAccountFields": {
    "accountNumber": "03052833711",
    "accountType": "AHORRO",
		"accountName": "BANCAMIA"
  }
}
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": "6e3dd476-1ea0-458d-9394-e4e99d16d51c",
  "type": "ACH_DOM",
  "fiatAccountFields": {
    "accountNumber": "9608006792",
    "accountType": "CORRIENTE",
    "accountName": "BANCO DE RESERVAS DE LA R.D"
  }
}
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 {
curl --location 'https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts' \
--header 'Content-Type: application/json' \
--header 'Content-Type: application/json' \
--header 'api-key: --' \
--header 'api-secret: --' \
--data '{
  "customerId": "fa4a4b2c-935a-4728-aa24-79ff03633027",
  "type": "ACH_BOL",
  "fiatAccountFields": {
    "accountNumber": "2502466367",
    "accountBankCode": "BNB0"
  },
  "isExternal": false
}'
curl --location 'https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts' \
--header 'Content-Type: application/json' \
--header 'Content-Type: application/json' \
--header 'api-key: alfredpay./MZC/_3fpFzjK7vMGrw0mdjdJhtDWs~C' \
--header 'api-secret: bjXv~V5~yzzic.IX6qLUAr7BmSoZVZY4' \
--data '{
  "customerId": "fa4a4b2c-935a-4728-aa24-79ff03633027",
  "type": "ACH_CHL",
  "fiatAccountFields": {
    "accountNumber": "12312312326",
    "accountType": "CHECKING", 
    "accountBankCode": "0001"
  },
  "isExternal": false
}'
'https://pennyapi-service.alfredpay.app/api/v1/third-party-service/penny/fiatAccounts' \
--header 'Content-Type: application/json' \
--header 'api-key: -' \
--header 'api-secret: -' \
--data '{
  "customerId": "51679014-8a2b-44a5-b92f-401a7e0c94b1",
  "type": "B89",
  "fiatAccountFields": {
    "accountNumber": "215268129205",
    "accountType": "AHORRO",
    "accountName": "CITIBANK"
  },
  "isExternal": false
}'
curl --request POST \
  --url https://pennyapi-service.alfredpay.app/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: */*' \
  --header 'api-key: */*' \
  --header 'api-secret: zZ/' \
  --data '{
  "customerId": "167eee39-9d57-4a2c-bcd2-a5480c12e420",
  "type": "BANK_CN",
  "fiatAccountFields": {
    "accountNumber": "2098769830",
    "accountName": "Sample Customer",
    "metadata": {
      "accountHolderName": "Business example name",
      "networkIdentifier": "HADDSFHXXX",
      "typeCustomer": "BUSINESS",
      "bankStreet": "SAMPLE address name street 1",
      "bankCity": "Hong Kong",
      "bankState": "Hong Kong",
      "bankCountry": "HK",
      "bankPostalCode": "000000",
      "beneficiaryAddress": {
        "street": "RECIPIENT_STREET_ADDRESS",
        "city": "RECIPIENT_CITY",
        "country": "HK",
        "stateProvince": "RECIPIENT_PROVINCE",
        "postalCode": "RECIPIENT_POSTAL_CODE"
      }
    }
  }
}'

Response Example

{
    "fiatAccountId": "797466c0-9774-4875-acfd-06adcc16596c",
    "type": "SPEI",
    "accountNumber": "012020477538404708",
    "accountType": "CLABE",
    "bankName": "BBVA MEXICO",
    "createdAt": "2024-12-03T15:48:54.557Z"
}
{
    "fiatAccountId": "9da71221-b063-416b-bf17-9253def968d6",
    "type": "PIX",
    "accountNumber": "[email protected]",
    "accountType": "EMAIL",
    "createdAt": "2024-12-03T18:14:04.835Z"
}
{
    "fiatAccountId": "9da71221-b063-416b-bf17-9253def968d6",
    "type": "COELSA",
    "accountNumber": "1234567890123456789012",
    "accountType": "CBU",
    "createdAt": "2024-12-03T18:14:04.835Z"
}
{
	"fiatAccountId": "64922400-a5c2-4d52-b0fe-c72f5ae99e57",
	"type": "ACH",
	"accountNumber": "3128588509",
	"accountType": "AHORRO",
	"accountName": "BANCAMIA",
	"bankName": "BANCAMIA",
	"createdAt": "2025-02-18T21:41:19.564Z"
}
{
	"fiatAccountId": "2046e7c4-06b1-4669-b1df-1960f64059f7",
	"type": "ACH_DOM",
	"accountNumber": "9608006792",
	"accountType": "CORRIENTE",
	"accountName": "BANCO DE RESERVAS DE LA R.D.",
	"bankName": "BANCO DE RESERVAS DE LA R.D.",
	"createdAt": "2025-06-23T19:58:34.758Z"
}
{
  "customerId": "{{customerId}}",
  "type": "ACH_BOL",
  "fiatAccountFields": {
    "accountNumber": "2502466301",
    "accountBankCode": "BNB0"
  },
  "isExternal": false
 
{
  "fiatAccountId": "d0028764-cffc-448a-8fb5-7d742174be64",
  "type": "ACH_CHL",
  "accountNumber": "12312312301",
  "accountType": "CHECKING",
  "createdAt": "2025-10-29T18:54:24.336Z",
  "isExternal": false
}
{
    "fiatAccountId": "f5b90577-e88c-4f6d-b4be-7a808bd5ecc8",
    "type": "B89",
    "accountNumber": "215268129205",
    "accountType": "CORRIENTE",
    "accountName": "CITIBANK",
    "bankName": "CITIBANK",
    "createdAt": "2025-10-29T18:37:53.983Z"
}
{
	"fiatAccountId": "84b6a09b-d4c8-45c9-a48c-as97das965",
	"type": "BANK_CN",
	"accountNumber": "98790837459734875",
	"accountName": "China Bank Example",
	"bankName": "China Bank Example",
	"createdAt": "2026-03-16T14:13:47.263Z",
	"isExternal": false
}

Register a Third-Party Account

To create a third-party account (used to send funds to an external beneficiary), set isExternal to true.

Request Body

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": "21ef567b-d4c5-4bad-b4ce-ce975cc1ac57",
  "type": "SPEI",
  "fiatAccountFields": {
    "accountNumber": "012020477538404708",
    "accountType": "CLABE"
  },
  "isExternal": true
}'

Response Example

{
    "fiatAccountId": "797466c0-9774-4875-acfd-06adcc16596c",
    "type": "SPEI",
    "accountNumber": "012020477538404708",
    "accountType": "CLABE",
    "bankName": "BBVA MEXICO",
    "createdAt": "2024-12-03T15:48:54.557Z"
}
📘

The only difference between a first-party and a third-party account is the presence of the isExternal: true field. If isExternal is not provided, the account will be treated as first-party by default.

alfred allows you to:

  • Pay a vendor in fiat, even if the original funds are in stablecoins.
  • Collect fiat from a merchant and deliver stablecoins to a consumer.
  • Peer-to-peer (P2P) transfers between individuals are supported, subject to applicable limits.

alfred may, at its discretion, request additional information or documentation to support a third-party payment.


🇦🇷 Argentina (AR): COELSA

Type: COELSA

AccountType Variants:

1. CBU (Clave Bancaria Uniforme)

Identifier: CBU (22 digits, e.g. 0290013110000576749489)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "COELSA",
  "fiatAccountFields": {
    "accountNumber": "0290013110000576749489",
    "accountType": "CBU"
  },
  "isExternal": true
}'

2. CVU (Clave Virtual Uniforme)

Identifier: CVU (22 digits, e.g. 0000003100054854230351)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "COELSA",
  "fiatAccountFields": {
    "accountNumber": "0000003100054854230351",
    "accountType": "CVU"
  },
  "isExternal": true
}'

3. ALIAS

Identifier: ALIAS (6-20 alphanumeric characters, e.g. alias.test123)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "COELSA",
  "fiatAccountFields": {
    "accountNumber": "alias.test123",
    "accountType": "ALIAS"
  },
  "isExternal": true
}'

Note: For Argentina, isExternal is automatically determined by comparing the customer's DNI with the bank's DNI. If they are different, it is marked as isExternal: true. No additional fields are required in metadata.


🇧🇷 Brazil (BR): PIX

Type: PIX

AccountType Variants:

1. EMAIL

Identifier: EMAIL (e.g. [email protected]) Required Metadata: documentNumber, accountHolderName

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "PIX",
  "fiatAccountFields": {
    "accountNumber": "[email protected]",
    "accountType": "EMAIL",
    "metadata": {
      "documentNumber": "12312312",
      "accountHolderName": "Da Silva"
    }
  },
  "isExternal": true
}'

2. PHONE

Identifier: PHONE (Brazilian phone number, e.g. +5511999999999) Required Metadata: documentNumber, accountHolderName

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "PIX",
  "fiatAccountFields": {
    "accountNumber": "+5511999999999",
    "accountType": "PHONE",
    "metadata": {
      "documentNumber": "12345678901",
      "accountHolderName": "João Silva"
    }
  },
  "isExternal": true
}'

3. CPF

Identifier: CPF (11 digits, e.g. 12345678901) Required Metadata: documentNumber, accountHolderName

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "PIX",
  "fiatAccountFields": {
    "accountNumber": "12345678901",
    "accountType": "CPF",
    "metadata": {
      "documentNumber": "12345678901",
      "accountHolderName": "Maria Santos"
    }
  },
  "isExternal": true
}'

4. EVP (Chave Aleatória)

Identifier: EVP (UUID, e.g. 550e8400-e29b-41d4-a716-446655440000) Required Metadata: documentNumber, accountHolderName

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "PIX",
  "fiatAccountFields": {
    "accountNumber": "550e8400-e29b-41d4-a716-446655440000",
    "accountType": "EVP",
    "metadata": {
      "documentNumber": "12345678901",
      "accountHolderName": "Carlos Oliveira"
    }
  },
  "isExternal": true
}'

🇧🇴 Bolivia (BOL): ACH_BOL

Type: ACH_BOL

AccountType Variants:

1. ACCOUNT_NUMBER

Identifier: Account Number (e.g. 2502466368) Required Metadata: accountHolderName, documentNumber, accountHolderLastName, email Additional Fields: accountBankCode (e.g. BNB0)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
   "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
   "type": "ACH_BOL",
   "fiatAccountFields": {
      "accountNumber": "2502466368",
      "accountBankCode": "BANCO_GANADERO",
      "accountType": "CHECKING",
      "metadata": {
        "accountHolderName": "Luis",
        "accountHolderLastName": "Morales",
        "documentNumber": "12312312",
        "email": "[email protected]"
      }
   },
   "isExternal": true
}'

Note: Bolivia does not specifically validate accountType in the code, but uses ACCOUNT_NUMBER as the standard type.


🇨🇴 Colombia (CO): ACH

Type: ACH

AccountType Variants:

1. CORRIENTE

Identifier: Checking Account Number (e.g. 51600008149) Required Metadata: accountHolderName, documentType, documentNumber Additional Fields: accountName (bank name, e.g. Bancolombia)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH",
  "fiatAccountFields": {
    "accountNumber": "51600008149",
    "accountType": "CORRIENTE",
    "accountName": "Bancolombia",
    "metadata": {
      "accountHolderName": "Test",
      "documentType": "CC",
      "documentNumber": "1234567890"
    }
  },
  "isExternal": true
}'

2. AHORRO

Identifier: Savings Account Number (e.g. 51600008149) Required Metadata: accountHolderName, documentType, documentNumber Additional Fields: accountName (bank name, e.g. Bancolombia)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH",
  "fiatAccountFields": {
    "accountNumber": "51600008149",
    "accountType": "AHORRO",
    "accountName": "Bancolombia",
    "metadata": {
      "accountHolderName": "Test",
      "documentType": "CC",
      "documentNumber": "1234567890"
    }
  },
  "isExternal": true
}'

3. NEQUI

Identifier: Nequi Number (10-11 digits, e.g. 3001234567) Required Metadata: accountHolderName, documentType, documentNumber

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH",
  "fiatAccountFields": {
    "accountNumber": "3001234567",
    "accountType": "NEQUI",
    "metadata": {
      "accountHolderName": "Juan Pérez",
      "documentType": "CC",
      "documentNumber": "1234567890"
    }
  },
  "isExternal": true
}'

Note: For CORRIENTE and AHORRO, the accountName field is mandatory and must exactly match the name of a supported bank.


🇩🇴 Dominican Republic (DO): ACH_DOM

Type: ACH_DOM

AccountType Variants:

1. CORRIENTE

Identifier: Checking Account Number (e.g. 9608006794) Required Metadata: accountHolderName, documentType, documentNumber, email Additional Fields: accountName (bank name, e.g. BANCO DE RESERVAS DE LA R.D)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH_DOM",
  "fiatAccountFields": {
    "accountNumber": "9608006794",
    "accountType": "CORRIENTE",
    "accountName": "BANCO DE RESERVAS DE LA R.D",
    "metadata": {
      "accountHolderName": "Rafael Trujillo",
      "documentType": "National ID",
      "documentNumber": "12312312",
      "email": "[email protected]"
    }
  },
  "isExternal": true
}'

2. AHORRO

Identifier: Savings Account Number (e.g. 9608006794) Required Metadata: accountHolderName, documentType, documentNumber, email Additional Fields: accountName (bank name, e.g. BANCO DE RESERVAS DE LA R.D)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH_DOM",
  "fiatAccountFields": {
    "accountNumber": "9608006794",
    "accountType": "AHORRO",
    "accountName": "BANCO DE RESERVAS DE LA R.D",
    "metadata": {
      "accountHolderName": "Rafael Trujillo",
      "documentType": "National ID",
      "documentNumber": "12312312",
      "email": "[email protected]"
    }
  },
  "isExternal": true
}'

🇲🇽 Mexico (MX): SPEI

Type: SPEI

AccountType Variants:

1. CLABE

Identifier: CLABE (18 digits, e.g. 072180465644370317) Required Metadata: accountHolderName

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "SPEI",
  "fiatAccountFields": {
    "accountNumber": "072180465644370317",
    "accountType": "CLABE",
    "metadata": {
      "accountHolderName": "Porfirio Díaz"
    }
  },
  "isExternal": true
}'

🇨🇱 Chile (CL): ACH_CHL

Type: ACH_CHL

AccountType Variants:

1. CHECKING

Identifier: Checking Account Number (e.g. 12312312335) Required Metadata: accountHolderName, email, documentNumber (RUT), accountHolderLastName Additional Fields: accountBankCode (bank code, e.g. 0001)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH_CHL",
  "fiatAccountFields": {
    "accountNumber": "12312312335",
    "accountType": "CHECKING",
    "accountBankCode": "BANCODELESTADODECHILE",
    "metadata": {
      "accountHolderName": "Augusto",
      "accountHolderLastName": "Monasterios",
      "email": "[email protected]",
      "documentNumber": "12.345.678-9"
    }
  },
  "isExternal": true
}'

2. SAVING

Identifier: Savings Account Number (e.g. 12312312335) Required Metadata: accountHolderName, email, documentNumber (RUT) Additional Fields: accountBankCode (bank code, e.g. 0001)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH_CHL",
  "fiatAccountFields": {
    "accountNumber": "12312312335",
    "accountType": "SAVING",
    "accountBankCode": "0001",
    "metadata": {
      "accountHolderName": "Augusto Monasterios",
      "email": "[email protected]",
      "documentNumber": "12.345.678-9"
    }
  },
  "isExternal": true
}'

🇵🇪 Peru (PE): ACH_PER

Type: ACH_PER

AccountType Variants:

1. CORRIENTE

Identifier: Checking Account Number (7-17 digits, e.g. 51600008149) Required Metadata: accountHolderName, accountHolderLastName, documentNumber, phoneNumber, bankCity, documentType, bankAddress, email
Additional Fields: accountName (bank code, must match type_id of supported banks)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH_PER",
  "fiatAccountFields": {
    "accountNumber": "51600008149",
    "accountType": "CORRIENTE",
    "accountName": "001",
    "metadata": {
      "accountHolderName": "Juan",
      "accountHolderLastName": "Pérez",
      "documentNumber": "12345678",
      "phoneNumber": "+51987654321",
      "bankCity": "Lima",
      "documentType": "DNI",
      "bankAddress": "Av. Principal 123",
      "email": "[email protected]"
    }
  },
  "isExternal": true
}'

2. AHORRO

Identifier: Savings Account Number (7-14 digits, e.g. 51600008149) Required Metadata: accountHolderName, accountHolderLastName, documentNumber, phoneNumber, bankCity, documentType, bankAddress Additional Fields: accountName (bank code, must match type_id of supported banks)

curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "ACH_PER",
  "fiatAccountFields": {
    "accountNumber": "51600008149",
    "accountType": "AHORRO",
    "accountName": "001",
    "metadata": {
      "accountHolderName": "Juan",
      "accountHolderLastName": "Pérez",
      "documentNumber": "12345678",
      "phoneNumber": "+51987654321",
      "bankCity": "Lima",
      "documentType": "DNI",
      "bankAddress": "Av. Principal 123"
    }
  },
  "isExternal": true
}'

Note: Valid values for documentType in Peru are: DNI, PASAPORTE, CE, RUC, SOCIAL SEC.


🇺🇸 United States (US): BANK_USA

Type: BANK_USA

AccountType Variants:

1. CHECKING

Identifier: Checking Account Number (8-34 digits, e.g. 123456789012) Required Metadata: None (uses direct fields from payload) Additional Required Fields:

  • accountName (bank name)
  • routingNumber (routing number)
  • bankStreet, bankCity, bankState, bankPostalCode, bankCountry (bank address)
  • currency (optional)
curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "BANK_USA",
  "fiatAccountFields": {
    "accountNumber": "123456789012",
    "accountType": "CHECKING",
    "accountName": "Chase Bank",
    "routingNumber": "021000021",
    "bankStreet": "123 Main St",
    "bankCity": "New York",
    "bankState": "NY",
    "bankPostalCode": "10001",
    "bankCountry": "USA",
    "currency": "USD"
  },
  "isExternal": true
}'

2. SAVING

Identifier: Savings Account Number (8-34 digits, e.g. 123456789012) Required Metadata: None (uses direct fields from payload) Additional Required Fields:

  • accountName (bank name)
  • routingNumber (routing number)
  • bankStreet, bankCity, bankState, bankPostalCode, bankCountry (bank address)
  • currency (optional)
curl --request POST \
  --url https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts \
  --header 'Content-Type: application/json' \
  --header 'accept: /' \
  --header 'api-key: alfredpay' \
  --header 'api-secret: hLacEq' \
  --data '{
  "customerId": "042cc6b4-6774-45b4-a686-95a0e7b1b8be",
  "type": "BANK_USA",
  "fiatAccountFields": {
    "accountNumber": "123456789012",
    "accountType": "SAVING",
    "accountName": "Chase Bank",
    "routingNumber": "021000021",
    "bankStreet": "123 Main St",
    "bankCity": "New York",
    "bankState": "NY",
    "bankPostalCode": "10001",
    "bankCountry": "USA",
    "currency": "USD"
  },
  "isExternal": true
}'

Account Type Summary by Country

CountryTypeValid accountTypes
🇦🇷 ArgentinaCOELSACBU, CVU, ALIAS
🇧🇷 BrazilPIXEMAIL, PHONE, CPF, EVP
🇧🇴 BoliviaACH_BOLACCOUNT_NUMBER
🇨🇴 ColombiaACHCORRIENTE, AHORRO, NEQUI
🇩🇴 Dominican RepublicACH_DOMCORRIENTE, AHORRO
🇲🇽 MexicoSPEICLABE
🇨🇱 ChileACH_CHLCHECKING, SAVING
🇵🇪 PeruACH_PERCORRIENTE, AHORRO
🇺🇸 United StatesBANK_USACHECKING, SAVING

Important Notes

  1. Argentina (COELSA): The isExternal field is automatically determined by comparing the customer's DNI with the bank's DNI. No additional fields are required in metadata.

  2. Brazil (PIX): All types require documentNumber and accountHolderName in metadata.

  3. Colombia (ACH): For CORRIENTE and AHORRO, the accountName field is mandatory and must exactly match the name of a supported bank.

  4. Dominican Republic (ACH_DOM): Requires email in metadata in addition to other fields.

  5. Chile (ACH_CHL): Requires email and documentNumber (RUT) in metadata.

  6. Peru (ACH_PER): Requires multiple fields in metadata including accountHolderLastName, phoneNumber, bankCity, documentType, bankAddress, and email (for CORRIENTE only).

  7. United States (BANK_USA): Does not use metadata, all fields are passed directly in fiatAccountFields.

  8. Bolivia (ACH_BOL): Requires accountBankCode in addition to metadata. Does not require accountType field.


Endpoint

POST https://penny-api-restricted-dev.alfredpay.io/api/v1/third-party-service/penny/fiatAccounts

Headers

Content-Type: application/json
accept: /
api-key: alfredpay
api-secret: hLacEq