---
title: "Manage customers"
description: "Create customer records, attach them to orders, and use customer data to personalize and track the payment experience."
canonical: "https://studio.inttegro.com/guides/manage-customers"
format: inttegro-machine-docs/v1
language: "Go"
sdk_version: "v11.0.1"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/go/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 667
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: ["get_integration_guide","check_integration_readiness","list_customers"]
estimated_tokens: 2133
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Create customer records, attach them to orders, and use customer data to personalize and track the payment experience. This Go representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. When should the reader use Manage customers?

Use this guide when implementing the complete business outcome rather than an isolated request.

#### Q2. What is authoritative on this page?

The guide owns the business sequence and verification logic. Its linked API references own the exact request, response, state, and error contracts.

#### Q3. What page-specific constraint matters most?

Keep the documented ordering, trust boundary, idempotency behavior, and authoritative read-after-write verification intact.

#### Q4. Can Inttegro MCP materially help with this task?

Yes, when the reader has an authenticated MCP connection and the task needs live context, guided planning, or a supported operation. The strongest matches are `get_integration_guide`, `check_integration_readiness`, `list_customers`; their exact roles and boundaries are listed below.

#### Q5. How should the reader verify the answer and continue?

Use the guide’s explicit completion condition and verify the final resource through the documented lookup or lifecycle state; a successful redirect or accepted request may be intermediate. Continue with [Accept a payment](https://studio.inttegro.com/machine/go/guides/accept-a-payment.md) and [Customers API](https://studio.inttegro.com/machine/go/api/customers.md) when those concerns enter scope.

### Recommended MCP assistance

Use these through an authenticated Inttegro MCP connection. This document remains the contract source.

- [`get_integration_guide`](https://studio.inttegro.com/machine/go/inttegro-mcp/tools.md#get_integration_guide) — read-only integration guidance. Returns a focused implementation sequence and canonical Studio links for authentication, checkout, orders, catalog, messaging, idempotency, or testing.
- [`check_integration_readiness`](https://studio.inttegro.com/machine/go/inttegro-mcp/tools.md#check_integration_readiness) — read-only integration guidance. Audits platform secret storage, server-runtime compatibility, idempotency, errors, state verification, checkout returns, and messaging consent without receiving source code or credentials.
- [`list_customers`](https://studio.inttegro.com/machine/go/inttegro-mcp/tools.md#list_customers) — read; no mutation confirmation. Lists a bounded page of customers with channel availability, countries, and balance summaries. Raw contact and address fields are excluded.

## Document content

# Manage customers

A customer record ties a person's identity—name, email, phone number—to their order history and saved payment methods. Attaching customers to orders gives you a reliable identity anchor for repeat purchases, fraud signals, customer service lookups, and personalized checkout experiences. This guide shows you how to create customers, look them up, and use customer IDs in orders.

> Mcp Guide Callout is interactive content. Use the canonical page to view it.

## Prerequisites

- Understanding of [orders](https://studio.inttegro.com/machine/go/api/orders.md) and how [`CustomerData`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/order#CreateParams.CustomerData) works in order creation

## Create a customer

Create a customer record with the required [`Name`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/customer#CreateParams.Name) field. Email, phone, billing address, and shipping address are optional; include the contact data your own checkout flow needs.

**Create customer — POST /customers/create**

```go
package main

import (
  "context"
  "log"
  "os"

  inttegro "github.com/inttegro/inttegro-sdk-go/v11"
  "github.com/inttegro/inttegro-sdk-go/v11/customer"
)

func main() {
  ctx := context.Background()
  client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))

  params := customer.CreateParams{
    Name: "Gloria Kesewaa",
    Email: "gloria@kesewaa.co",
    PhoneNumber: "+233544998605",
  }
  result, err := client.Customers.Create(ctx, params)
  if err != nil {
    log.Fatal(err)
  }
  _ = result
}
```

Store the returned [`Customer.ID`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/customer#Customer) (`cu_…`) in your own database, associated with your user record. You'll pass it in future orders to link purchases to this customer.

## Look up a customer

Retrieve a customer record by ID to verify their details, display order history context, or check which payment methods they have saved.

**Lookup customer — POST /customers/lookup**

```go
package main

import (
  "context"
  "log"
  "os"

  inttegro "github.com/inttegro/inttegro-sdk-go/v11"
)

func main() {
  ctx := context.Background()
  client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))

  result, err := client.Customers.Lookup(ctx, "cu_ewoa27qe7aO4GZouasUSmVXILsmxjR0Hc6lCMBkn")
  if err != nil {
    log.Fatal(err)
  }
  _ = result
}
```

## Attach customers to orders

Pass the customer ID in [`CustomerID`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/order#CreateParams.CustomerID) when creating an order. Inttegro links the order to that customer record and populates the order's [`Customer`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/customer#Customer) object with their name, email, and phone—which appears on invoices, in the dashboard, and in order list responses.

**Order with customer**

```go
order.CreateParams{
  CustomerID: "cu_ewoa27qe7aO4GZouasUSmVXILsmxjR0Hc6lCMBkn",
  LineItems: []order.LineItemParams{
    {},
  },
}
```

Attaching a customer to an order is how repeat-purchase flows work. The customer's saved payment methods become available for selection at checkout—so returning customers don't need to re-enter their mobile money number or card details each time.

See [Charge repeat customers](https://studio.inttegro.com/machine/go/guides/charge-repeat-customers.md) for the complete saved-payment-method flow.

## Page through customers

Retrieve paginated customer records for reporting, syncing, or building an admin view of your customer base.

[`PageNumber`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/customer#PageParams.PageNumber) is
required, uses a 1-based index, and must be between 1 and 10.
[`PageSize`](https://pkg.go.dev/github.com/inttegro/inttegro-sdk-go/v11@v11.0.1/customer#PageParams.PageSize) is
optional, accepts 1–256, and defaults to 256.

**Page customers — POST /customers/page**

```go
package main

import (
  "context"
  "log"
  "os"

  inttegro "github.com/inttegro/inttegro-sdk-go/v11"
  "github.com/inttegro/inttegro-sdk-go/v11/customer"
)

func main() {
  ctx := context.Background()
  client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))

  params := customer.PageParams{
    PageNumber: 1,
    PageSize: 50,
  }
  result, err := client.Customers.Page(ctx, params)
  if err != nil {
    log.Fatal(err)
  }
  _ = result
}
```

## Related resources

- [Customers API](https://studio.inttegro.com/machine/go/api/customers.md) — Full reference for create, lookup, and page endpoints
- [Charge repeat customers](https://studio.inttegro.com/machine/go/guides/charge-repeat-customers.md) — Tokenize payment methods and charge customers without re-entering details
- [Accept a payment](https://studio.inttegro.com/machine/go/guides/accept-a-payment.md) — Full order creation flow with customer data
