Skip to content
Logo

POST /customers

Create an individual or business customer. Every field below is accepted. Some are forwarded to verification. Some are stored verbatim and echoed on GET but don't influence onboarding decisions. Those are listed under Accepted but ignored (individual) and Accepted but ignored (business).

Request: Individual (type: "individual")

FieldTypeRequiredNotes
type"individual"yesDiscriminator.
first_namestring (2–1024)yes
middle_namestring (1–1024)no
last_namestring (2–1024)yes
transliterated_first_namestring (1–256)noLatin-script transliteration for non-Latin names.
transliterated_middle_namestring (1–256)no
transliterated_last_namestring (1–256)no
emailstring (1–1024)yes
phonestringnoE.164-ish, e.g. +12223334444.
birth_datestring (YYYY-MM-DD)yes
residential_addressAddressyes
transliterated_residential_addressAddressno
account_purposeenum (see account_purpose (individual))yesReason this customer is using the platform.
account_purpose_otherstringconditionalRequired if account_purpose === "other".
employment_statusemployed | homemaker | retired | self_employed | student | unemployedyes
expected_monthly_payments_usd0_4999 | 5000_9999 | 10000_49999 | 50000_plusyes
acting_as_intermediarybooleanno
most_recent_occupationstring (occupation code)noBridge uses their own occupational code list.
source_of_fundsenum (see source_of_funds (individual))yesWhere the money comes from.
nationalitystring (ISO 3166-1 alpha-3)no
verified_govid_atstring (ISO 8601)noCaller attests they already verified gov ID.
verified_selfie_atstring (ISO 8601)noCaller attests they already verified selfie.
completed_customer_safety_check_atstring (ISO 8601)noCaller attests they ran their own safety check.
signed_agreement_idstring (1–1024)noBridge's internal agreement id, meaningless outside Bridge.
endorsementsarray of EndorsementnoRails / features the customer wants access to. Empty = base only.
identifying_informationarray of IdentifyingInformationno
documentsarray of Documentno

account_purpose (individual)

  • charitable_donations
  • ecommerce_retail_payments
  • investment_purposes
  • operating_a_company
  • other
  • payments_to_friends_or_family_abroad
  • personal_or_living_expenses
  • protect_wealth
  • purchase_goods_and_services
  • receive_payment_for_freelancing
  • receive_salary

source_of_funds (individual)

  • company_funds
  • ecommerce_reseller
  • gambling_proceeds
  • gifts
  • government_benefits
  • inheritance
  • investments_loans
  • pension_retirement
  • salary
  • sale_of_assets_real_estate
  • savings
  • someone_elses_funds

Example: Individual

{
  "type": "individual",
  "first_name": "Alice",
  "last_name": "Zhang",
  "email": "alice@example.com",
  "phone": "+14155550100",
  "birth_date": "1990-04-01",
  "residential_address": {
    "street_line_1": "1 Market St",
    "city": "San Francisco",
    "subdivision": "US-CA",
    "postal_code": "94105",
    "country": "USA"
  },
  "account_purpose": "purchase_goods_and_services",
  "employment_status": "employed",
  "expected_monthly_payments_usd": "5000_9999",
  "source_of_funds": "salary",
  "nationality": "USA",
  "endorsements": ["base"],
  "identifying_information": [
    {
      "type": "ssn",
      "issuing_country": "USA",
      "number": "111-22-3333"
    }
  ]
}
curl -X POST "$BASE_URL/customers" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "individual",
    "first_name": "Alice",
    "last_name": "Zhang",
    "email": "alice@example.com",
    "birth_date": "1990-04-01",
    "residential_address": {
      "street_line_1": "1 Market St",
      "city": "San Francisco",
      "subdivision": "US-CA",
      "postal_code": "94105",
      "country": "USA"
    },
    "account_purpose": "purchase_goods_and_services",
    "employment_status": "employed",
    "expected_monthly_payments_usd": "5000_9999",
    "source_of_funds": "salary"
  }'

Accepted but ignored (individual)

Stored on the customer row and echoed on GET. Not forwarded to verification and not used for onboarding decisions.

FieldWhy it's ignored
transliterated_first_nameNames are submitted as given. No second transliterated identity check is run.
transliterated_middle_nameSame.
transliterated_last_nameSame.
transliterated_residential_addressSame.
acting_as_intermediaryNo intermediary flag in the verification flow.
most_recent_occupationBridge-specific occupation code list. Not consumed by verification.
verified_govid_atID verification always runs. Caller attestations do not short-circuit it.
verified_selfie_atSame.
completed_customer_safety_check_atSame.
signed_agreement_idBridge's internal agreement id has no counterpart here.

Request: Business (type: "business")

FieldTypeRequiredNotes
type"business"yesDiscriminator.
business_legal_namestring (1–1024)yesRegistered legal entity name.
transliterated_business_legal_namestringno
business_trade_namestring (1–1024)noDBA / public-facing name.
transliterated_business_trade_namestringno
business_descriptionstring (1–1024)yesWhat the business does.
emailstring (1–1024)yes
business_typecooperative | corporation | llc | other | partnership | sole_prop | trustyes
primary_websitestring (1–1024)no
other_websitesarray of stringno
registered_addressAddressyesLegal / registration address.
transliterated_registered_addressAddressno
physical_addressAddressnoOperating address if different from registered_address.
transliterated_physical_addressAddressno
is_daobooleanno
business_industryarray of string (NAICS codes)yesGET /industries lists the accepted codes.
estimated_annual_revenue_usd0_99999 | 100000_999999 | 1000000_9999999 | 10000000_49999999 | 50000000_249999999 | 250000000_plusyes
expected_monthly_payments_usdintegeryesNote: individual uses an enum. Business uses a raw integer. Bridge's choice.
expected_monthly_swift_transaction_volumeintegerno
operates_in_prohibited_countriesbooleanno
account_purposeenum (see account_purpose (business))yes
account_purpose_otherstringconditionalRequired if account_purpose === "other".
high_risk_activitiesarray of HighRiskActivity (see high_risk_activities)yesInclude none_of_the_above if none apply.
high_risk_activities_explanationstringconditionalRequired if high_risk_activities contains any non-none_of_the_above entry.
source_of_fundsenum (see source_of_funds (business))yes
source_of_funds_descriptionstringno
conducts_money_servicesbooleanno
conducts_money_services_using_bridgebooleanconditionalRequired if conducts_money_services === true.
conducts_money_services_descriptionstringconditionalRequired if conducts_money_services === true.
compliance_screening_explanationstringconditionalRequired if conducts_money_services === true.
publicly_traded_listingsarray of PubliclyTradedListingno
ownership_thresholdinteger (5–25)noDefault 25. % ownership above which beneficial owners must be listed.
has_material_intermediary_ownershipbooleanno
acting_as_intermediarybooleanno
signed_agreement_idstringno
endorsementsarray of Endorsementno
associated_personsarray of AssociatedPersonyesUBOs, controllers, signers, directors.
identifying_informationarray of IdentifyingInformationno
documentsarray of BusinessDocumentnoBusiness docs have a larger purposes enum than individual documents.
regulated_activityRegulatedActivityno

account_purpose (business)

  • charitable_donations
  • ecommerce_retail_payments
  • investment_purposes
  • other
  • payments_to_friends_or_family_abroad
  • payroll
  • personal_or_living_expenses
  • protect_wealth
  • purchase_goods_and_services
  • receive_payments_for_goods_and_services
  • tax_optimization
  • third_party_money_transmission
  • treasury_management

high_risk_activities

  • adult_entertainment
  • gambling
  • hold_client_funds
  • investment_services
  • lending_banking
  • marijuana_or_related_services
  • money_services
  • nicotine_tobacco_or_related_services
  • operate_foreign_exchange_virtual_currencies_brokerage_otc
  • pharmaceuticals
  • precious_metals_precious_stones_jewelry
  • safe_deposit_box_rentals
  • third_party_payment_processing
  • weapons_firearms_and_explosives
  • none_of_the_above

source_of_funds (business)

  • business_loans
  • grants
  • inter_company_funds
  • investment_proceeds
  • legal_settlement
  • owners_capital
  • pension_retirement
  • sale_of_assets
  • sales_of_goods_and_services
  • third_party_funds
  • treasury_reserves

Example: Business

{
  "type": "business",
  "business_legal_name": "Seismic Systems Inc.",
  "business_description": "Stablecoin payment infrastructure.",
  "email": "ops@example.com",
  "business_type": "corporation",
  "primary_website": "https://seismic.systems",
  "registered_address": {
    "street_line_1": "1 Market St",
    "city": "San Francisco",
    "subdivision": "US-CA",
    "postal_code": "94105",
    "country": "USA"
  },
  "business_industry": ["522320"],
  "estimated_annual_revenue_usd": "1000000_9999999",
  "expected_monthly_payments_usd": 500000,
  "account_purpose": "treasury_management",
  "high_risk_activities": ["none_of_the_above"],
  "source_of_funds": "owners_capital",
  "ownership_threshold": 25,
  "endorsements": ["base"],
  "associated_persons": [
    {
      "first_name": "Alice",
      "last_name": "Zhang",
      "email": "alice@example.com",
      "birth_date": "1990-04-01",
      "residential_address": {
        "street_line_1": "1 Market St",
        "city": "San Francisco",
        "subdivision": "US-CA",
        "postal_code": "94105",
        "country": "USA"
      },
      "has_ownership": true,
      "has_control": true,
      "is_signer": true,
      "title": "CEO",
      "ownership_percentage": 60
    }
  ]
}

Accepted but ignored (business)

Stored on the customer row and echoed on GET. Not forwarded to verification and not used for onboarding decisions.

FieldWhy it's ignored
transliterated_business_legal_nameNames are submitted as given.
transliterated_business_trade_nameSame.
transliterated_registered_addressSame.
transliterated_physical_addressSame.
is_daoNo DAO-disclosure field in the verification flow.
expected_monthly_swift_transaction_volumeSWIFT-specific volume projections are not part of the verification flow.
operates_in_prohibited_countriesCompliance runs its own jurisdiction screen. This flag is not fed in.
conducts_money_servicesMSB-status self-attestation is rerun. Not consumed from caller input.
conducts_money_services_using_bridgeBridge-specific.
conducts_money_services_descriptionStored only.
compliance_screening_explanationStored only.
publicly_traded_listingsNot consumed by the standard verification flow.
has_material_intermediary_ownershipFull ownership disclosure is always required via associated_persons.
acting_as_intermediarySame.
signed_agreement_idBridge-internal.
regulated_activityStored only. Regulator checks are run independently.
Per-AssociatedPerson: transliterated_*, verified_govid_at, verified_selfie_at, completed_customer_safety_check_at, attested_ownership_structure_at, relationship_established_atSee individual-level rationale above. The same holds for each associated person.

What we forward vs. store

The compat layer accepts every Bridge field and stores it. What's forwarded to verification is a narrower core: identity, address, birth_date, email, endorsements, account_purpose, source_of_funds, employment_status (individual), business_type / business_industry / estimated_annual_revenue_usd (business), identifying_information, documents, and the full associated_persons array for businesses. Everything outside that set is listed above under Accepted but ignored.

Response (201)

Returns the Customer object. The response shape is the same as GET /customers/{id}.