> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blips.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a customer for your authenticated platform.

> Create a customer record for your authenticated platform. This public customer-create contract creates the customer only; PPV/payment-address issuance remains a later explicit action.



## OpenAPI

````yaml /openapi/blips-public-reference.yaml post /customers
openapi: 3.1.0
info:
  title: BLIPS Public Reference API
  version: '2026-04-08'
  description: >-
    Public OpenAPI 3.1 subset for the first BLIPS Mintlify API Reference and
    Playground release. This document is bound to the confirmed Public Test
    Backend at https://public-test.blips.network, includes only the approved
    first-release public endpoints, uses only internal `$ref` values, and
    excludes callback-only webhook documentation and operator-only surfaces.
servers:
  - url: https://public-test.blips.network
    description: >-
      Confirmed Public Test Backend ingress target for public BLIPS API
      Reference, Playground, and internet-testable Try It flows.
security:
  - BasicAuth: []
tags:
  - name: Platform Setup
    description: >-
      Bootstrap and platform configuration surfaces for establishing the public
      BLIPS integration context.
  - name: Sandbox API
    description: >-
      Sandbox-only externally displayed helper surfaces. These routes either
      adjust quote inputs or create incoming-payment review cases, but they
      always feed the existing quote or transaction families and never become
      second outward API families.
  - name: Tokens
    description: >-
      Platform-scoped API credential create, list, detail, and revoke
      operations.
  - name: Customers
    description: >-
      Customer onboarding, profile lifecycle, and PPV payment-address issuance
      surfaces.
  - name: Accounts
    description: >-
      Customer-bound internal-account and external-account surfaces kept in the
      first-layer public contract.
  - name: Same-Currency Transfers
    description: >-
      Same-currency receiver lookup plus incoming and outgoing transfer
      primitives.
  - name: Cross-Currency Transfers
    description: >-
      PPV-first receiver lookup, quote creation/readback, and quote execution
      for cross-currency flows.
  - name: Transactions
    description: Transaction readback plus bounded incoming-review decision operations.
  - name: Webhooks
    description: >-
      Webhook connectivity verification surface for the public BLIPS
      integration.
paths:
  /customers:
    post:
      tags:
        - Customers
      summary: Create a customer for your authenticated platform.
      description: >-
        Create a customer record for your authenticated platform. This public
        customer-create contract creates the customer only; PPV/payment-address
        issuance remains a later explicit action.
      operationId: createCustomer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerCreateMvpRequest'
            examples:
              individualCustomer:
                summary: Individual customer
                value:
                  platformCustomerId: partner_cust_9f8b2c7d
                  customerType: INDIVIDUAL
                  fullName: Pat Rivera
                  birthDate: '1992-05-06'
                  nationality: PH
                  kycStatus: PENDING
                  address:
                    line1: 100 Demo Street
                    line2: Suite 5A
                    city: Manila
                    state: NCR
                    postalCode: '1000'
                    country: PH
              businessCustomer:
                summary: Business customer
                value:
                  platformCustomerId: partner_business_4ab91d2e
                  customerType: ENTITY
                  fullName: Rivera Trading LLC
                  kycStatus: PENDING
                  address:
                    line1: 100 Demo Street
                    city: Manila
                    state: NCR
                    postalCode: '1000'
                    country: PH
      responses:
        '201':
          description: Customer created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCreateMvpResponse'
              examples:
                created:
                  value:
                    id: cust_123
                    platformId: plat_demo_001
                    platformCustomerId: partner_cust_9f8b2c7d
                    customerType: INDIVIDUAL
                    fullName: Pat Rivera
                    birthDate: '1992-05-06'
                    nationality: PH
                    address:
                      line1: 100 Demo Street
                      city: Manila
                      state: NCR
                      postalCode: '1000'
                      country: PH
                    kycStatus: PENDING
                    createdAt: '2026-04-05T12:00:00Z'
                    updatedAt: '2026-04-05T12:00:00Z'
        '400':
          description: Missing or invalid customer create fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCreateMvpErrorResponse'
              examples:
                invalidRequest:
                  value:
                    status: 400
                    code: INVALID_REQUEST
                    message: Invalid customer create request.
                    details:
                      platformCustomerId: Required
                      customerType: Required
                      fullName: Required
                      birthDate: Must use YYYY-MM-DD format
        '401':
          description: Invalid or missing API credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCreateMvpErrorResponse'
              examples:
                unauthorized:
                  value:
                    status: 401
                    code: UNAUTHORIZED
                    message: Unauthorized
                    details: null
        '409':
          description: platformCustomerId already exists for this platform.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCreateMvpErrorResponse'
              examples:
                platformCustomerIdConflict:
                  value:
                    status: 409
                    code: PLATFORM_CUSTOMER_ID_CONFLICT
                    message: A customer already exists for this platformCustomerId.
                    details:
                      platformCustomerId: partner_cust_9f8b2c7d
        '500':
          description: Internal service error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCreateMvpErrorResponse'
              examples:
                internalError:
                  value:
                    status: 500
                    code: INTERNAL_ERROR
                    message: Internal service error.
                    details: null
      security:
        - BasicAuth: []
components:
  schemas:
    CustomerCreateMvpRequest:
      type: object
      description: >-
        Create a customer record for your authenticated platform. Use fullName
        as the public name field for both INDIVIDUAL and ENTITY customers.
      properties:
        platformCustomerId:
          type: string
          description: >-
            Stable platform-side customer identifier used to create and later
            look up this customer.
        customerType:
          type: string
          enum:
            - INDIVIDUAL
            - ENTITY
          description: >-
            Customer type for the new customer. Use INDIVIDUAL for a person or
            ENTITY for a business.
        fullName:
          type: string
          description: >-
            Public customer name. Use the legal person name for INDIVIDUAL or
            the legal business name for ENTITY.
        kycStatus:
          type: string
          enum:
            - PENDING
            - APPROVED
            - REJECTED
          description: >-
            Optional initial KYC status when your platform already has that
            state.
        birthDate:
          type: string
          format: date
          description: Birth date in YYYY-MM-DD format when collected.
        nationality:
          type: string
          description: Customer nationality or citizenship code when collected.
        address:
          $ref: '#/components/schemas/CustomerCreateMvpAddressInput'
          description: Optional customer address object.
      required:
        - platformCustomerId
        - customerType
        - fullName
      additionalProperties: false
    CustomerCreateMvpResponse:
      type: object
      description: >-
        Public customer-create response. POST /customers creates the customer
        record only and does not issue a PPV/payment address.
      properties:
        id:
          type: string
          description: Stable customer identifier.
        platformId:
          type: string
          description: Platform identifier that owns this customer.
        platformCustomerId:
          type: string
          description: Platform-provided customer identifier stored for this customer.
        customerType:
          type: string
          enum:
            - INDIVIDUAL
            - ENTITY
          description: Customer type for this customer.
        fullName:
          type: string
          description: Public customer name stored for the created customer.
        birthDate:
          type: string
          format: date
          nullable: true
          description: Customer birth date in YYYY-MM-DD format when available.
        nationality:
          type: string
          nullable: true
          description: Customer nationality or citizenship code when available.
        address:
          $ref: '#/components/schemas/CustomerAddress'
          nullable: true
          description: Customer address when available.
        kycStatus:
          type: string
          enum:
            - PENDING
            - APPROVED
            - REJECTED
          description: Current KYC status for the created customer.
        createdAt:
          type: string
          format: date-time
          description: Creation timestamp.
        updatedAt:
          type: string
          format: date-time
          description: Last update timestamp.
      required:
        - id
        - platformId
        - platformCustomerId
        - customerType
        - fullName
        - birthDate
        - nationality
        - address
        - kycStatus
        - createdAt
        - updatedAt
      additionalProperties: false
    CustomerCreateMvpErrorResponse:
      type: object
      additionalProperties: false
      required:
        - status
        - code
        - message
        - details
      properties:
        status:
          type: integer
          description: HTTP status code returned for the failed customer-create request.
        code:
          type: string
          description: Stable public error code for the failed customer-create request.
        message:
          type: string
          description: Human-readable summary of the customer-create failure.
        details:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional structured error context when the request exposes one.
    CustomerCreateMvpAddressInput:
      type: object
      additionalProperties: false
      properties:
        line1:
          type: string
          description: Street address line 1.
        line2:
          type: string
          description: Street address line 2 when used by your platform.
        city:
          type: string
          description: City for the customer address.
        state:
          type: string
          description: State, province, or region for the customer address.
        postalCode:
          type: string
          description: Postal or ZIP code for the customer address.
        country:
          type: string
          description: Two-letter country code or equivalent supported country value.
      required:
        - line1
        - city
        - state
        - postalCode
        - country
    CustomerAddress:
      type: object
      description: Customer address object.
      properties:
        line1:
          type: string
          description: Street address line for the customer.
        line2:
          type: string
          description: Street address line 2 when present on the customer record.
        city:
          type: string
          description: City for the customer address.
        state:
          type: string
          description: State, province, or region for the customer address.
        postalCode:
          type: string
          description: Postal or ZIP code for the customer address.
        country:
          type: string
          description: Two-letter country code or equivalent supported country value.
      additionalProperties: false
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        Integration-key Basic Auth (`clientId:clientSecret`) as documented in
        docs/public/AUTHENTICATION.md.

````