Customers

Create a sub-customer

Changed on

Creates a customer underneath the partner making the call. There's no parentId to pass, because the API key identifies the parent.

Only type is required. It decides whether the customer runs KYC or KYB, and it can't be changed later. Everything else that classifies the customer is set afterwards with PUT /v1/customers/{customerId}.

post/v1/customers

Request

  • Base URL
    https://api.sandbox.alfredpay.io
  • URL
    https://api.sandbox.alfredpay.io/v1/customers
  • Auth
    • HTTP bearer
    • or API key in header api-key and API key in header api-secret

Headers

Idempotency-Keystring uuid required

Required on every state-changing POST, simulators included; the only exempt POST is …/verifications/preflight. Replay (same key, same body) returns the original response with Idempotent-Replayed: true; same key with a different body → 409 idempotency_conflict. Keys are UUIDs, scoped to the API key, retained for 24 hours.

Request body

type'INDIVIDUAL' | 'BUSINESS' required
namestring
emailstring email

Response

Created

customerType'CUSTOMER' | 'THIRD_PARTY_CUSTOMER' | 'SUB_CUSTOMER'
accountType'PARTNER' | 'DIRECT_CUSTOMER'
customerArchetypesCustomerArchetype[]
useCasesUseCase[]
kycRelianceModel'FULL_RELIANCE' | 'SEMI_RELIANCE' | 'NON_RELIANCE'
legalNamestring
tradeNameDbastring
businessTypestring
businessDescriptionstring
incorporationCountry'MEX' | 'ARG' | 'BRA' | 'COL' | 'CHL' | 'PER' | 'DOM' | 'USA' | 'CHN' | 'HKG' | 'BOL' | 'PRY'

ISO 3166-1 alpha-3, the only form Alfred stores, filters on, reports or emits. Compatibility rule for integrations that can only send alpha-2: any inbound country value in alpha-2 (path, query or body) is normalized to alpha-3 at the boundary before validation, storage or routing. Unrecognized in either form → 422 validation_error.

incorporationDatestring date
businessRegistrationNumberstring
residencyCountry'MEX' | 'ARG' | 'BRA' | 'COL' | 'CHL' | 'PER' | 'DOM' | 'USA' | 'CHN' | 'HKG' | 'BOL' | 'PRY'

ISO 3166-1 alpha-3, the only form Alfred stores, filters on, reports or emits. Compatibility rule for integrations that can only send alpha-2: any inbound country value in alpha-2 (path, query or body) is normalized to alpha-3 at the boundary before validation, storage or routing. Unrecognized in either form → 422 validation_error.

industryCodesstring[]
websiteUrlsstring[]
emailstring email
phonestring
accountPurposesAccountPurpose[]
accountPurposeOtherstring
sourceOfFundsstring
sourceOfFundsDescriptionstring
sourceOfWealthstring
expectedMonthlyVolumeUsdstring
expectedTransactionCountinteger
operatingCountriesCountryCode[]
destinationOfFundsstring
counterpartyRelationshipstring
ownFundsVsClientFunds'OWN_FUNDS' | 'CLIENT_FUNDS' | 'BOTH'
actsOnOwnBehalfboolean
regulatedActivityboolean
highRiskActivitiesstring[]
highRiskActivitiesExplanationstring
prohibitedJurisdictionExposureboolean
controlPersonRequiredboolean
declaredFinancialsCurrency'USD' | 'HKD' | 'CNY' | 'MXN' | 'DOP' | 'COP' | 'BRL' | 'ARS' | 'CLP' | 'PEN' | 'BOB' | 'PYG' | 'USDC' | 'USDT'

Fourteen members, reconciled to the countries a customer can be onboarded in. USDC and USDT are stablecoins and require chain.

acceptTosboolean
idstring required
type'INDIVIDUAL' | 'BUSINESS' required
status'NOT_STARTED' | 'INCOMPLETE' | 'AWAITING_UBO' | 'AWAITING_QUESTIONNAIRE' | 'UNDER_REVIEW' | 'ACTIVE' | 'PAUSED' | 'REJECTED' | 'OFFBOARDED' required
namestring
pauseReasonstring nullable

Why the customer is paused. Null unless status is PAUSED.

createdAtstring date-time required
updatedAtstring date-time

Changes