Skip to main content

Payment methods

Payment methods let customers save how they pay and reuse it on later orders. Use this API to save a method, retrieve it, update its owner or metadata, and control whether it can be used again.

Each payment method belongs to one customer. When charging a saved method, use it with that same customer. For end-to-end payment flows, see Accept a mobile money payment and Charge repeat customers.

Operations

The payment method object

The API returns a payment_method envelope for tokenization, lookup, update, and lifecycle operations. Optional properties are omitted when they do not apply or have no value.

Properties

  • Name
    active
    Type
    boolean
    Description

    Whether the method is enabled for reuse. An archived or ephemeral method is not reusable even if this field is true.

  • Name
    app_customer_local_fingerprint
    Type
    string
    Description

    Stable comparison value for matching the same instrument for this customer within your Inttegro account, when available.

  • Name
    app_local_fingerprint
    Type
    string
    Description

    Stable comparison value for matching the same instrument within your Inttegro account, when available.

  • Name
    archived_at
    Type
    timestamp
    Description

    When the method was archived. Omitted while the method is unarchived.

  • bank_accountobjectBank-account details when the saved method has a bank-account representation. Treat these fields as sensitive.Click or tap to expand
    • Name
      ghana_bank_account
      Type
      object
      View ghana_bank_account attributesClick or tap to expand
      Ghana bank-account details when present.
      • Name
        account_number
        Type
        string
        Description
        Account number returned for the saved bank account.
      • Name
        branch
        Type
        string
        Description
        Bank branch when available.
      • Name
        name
        Type
        string
        Description
        Account name when available.
      • Name
        sort_code
        Type
        string
        Description
        Bank sort code when available.
      • Name
        swift_code
        Type
        string
        Description
        SWIFT code when available.
    • Name
      type
      Type
      string
      Description
      Bank-account subtype.
  • Name
    created_at
    Type
    timestamp
    Description

    When the method was saved.

  • Name
    customer_id
    Type
    string
    Description

    Customer who owns the method.

  • custom_dataobjectClick or tap to expand

    Your metadata. Values are returned as strings.

  • Name
    ephemeral
    Type
    boolean
    Description

    Present and true for a limited-use method that cannot be reused as a saved method.

  • Name
    expires_on
    Type
    timestamp
    Description

    Expiry time when the underlying payment method has one.

  • Name
    id
    Type
    string
    Description

    Unique payment method identifier with the pm_ prefix.

  • mobile_moneyobjectMasked mobile money details.Click or tap to expand
    • Name
      account_number
      Type
      string
      Description
      Masked wallet number in the form ****1234.
    • Name
      last4
      Type
      string
      Description
      Final four digits of the normalized wallet number.
    • Name
      network
      Type
      enum
      Description
      Wallet network: airtel, mtn, telecel, or vodafone.
  • ownerobjectOwner details captured with the method.Click or tap to expand
    • Name
      address
      Type
      object
      View address attributesClick or tap to expand
      Owner postal address.
      • Name
        city
        Type
        string
        Description
        City or locality.
      • Name
        country
        Type
        string
        Description
        Country code supplied when the address was saved.
      • Name
        line_1
        Type
        string
        Description
        First address line. Requests use line1; responses use line_1.
      • Name
        line_2
        Type
        string
        Description
        Second address line. Requests use line2; responses use line_2.
      • Name
        name
        Type
        string
        Description
        Recipient name for the address.
      • Name
        phone_number
        Type
        string
        Description
        Address contact number.
      • Name
        post_code
        Type
        string
        Description
        Postal or ZIP code.
      • Name
        region
        Type
        string
        Description
        Region, state, or province.
    • Name
      name
      Type
      string
      Description
      Payment-method owner name.
  • suppliedobjectHow and when the payment method was added to the customer's account.Click or tap to expand
    • Name
      attempt_id
      Type
      string
      Description
      Collection attempt that supplied the method, when applicable.
    • Name
      by
      Type
      string
      Required
      required
      Description
      Who supplied the method: customer or merchant.
    • Name
      channel
      Type
      string
      Description
      Where the method was collected, such as api, buy_link, ego, hosted_collection, or hosted_invoice.
    • Name
      resource_id
      Type
      string
      Description
      Source resource that collected the method, when applicable.
    • Name
      resource_type
      Type
      string
      Description
      Type of source resource that collected the method.
    • Name
      supplied_at
      Type
      timestamp
      Required
      required
      Description
      When the method was supplied.
  • Name
    type
    Type
    enum
    Description

    Payment method type: bank_account, card, or mobile_money.

  • Name
    universal_fingerprint
    Type
    string
    Description

    Stable comparison value for matching the same instrument across supported contexts, when available.

  • verificationobjectVerification evidence when the method has entered a verification flow.Click or tap to expand
    • Name
      completed_at
      Type
      timestamp
      Description
      When verification completed. Omitted while incomplete.
    • Name
      initiated_at
      Type
      timestamp
      Description
      When verification began.
    • Name
      mechanism
      Type
      string
      Description
      Verification mechanism when available.
    • Name
      request_id
      Type
      string
      Description
      Identifier for the verification request.
    • Name
      type
      Type
      string
      Description
      Verification type.
  • Name
    verified_at
    Type
    timestamp
    Description

    When verification completed. Omitted until completion.

POST/payment_methods/tokenize

Tokenize a payment method

Save a customer's mobile money wallet so they can select it on later orders. This operation does not create an order or charge the wallet. The response returns a pm_... ID for future payments.

Request attributes

  • Name
    customer_id
    Type
    string
    Required
    required
    Description

    Customer who will own the saved payment method.

  • custom_dataobjectClick or tap to expand

    Optional metadata. The serialized object must not exceed 25 KB and each key must not exceed 256 characters. Non-string values are stored as JSON strings.

  • mobile_moneyobjectrequiredMobile money wallet to save.Click or tap to expand
    • Name
      account_number
      Type
      string
      Required
      required
      Description
      Valid local or international wallet phone number.
    • Name
      network
      Type
      enum
      Required
      required
      Description
      One of airtel, mtn, telecel, or vodafone.
  • ownerobjectrequiredOwner identity for the wallet.Click or tap to expand
    • Name
      address
      Type
      object
      Required
      required
      View address attributesClick or tap to expand
      Postal address associated with the owner.
      • Name
        city
        Type
        string
        Description
        City or locality.
      • Name
        country
        Type
        string
        Required
        required
        Description
        Country associated with the owner address.
      • Name
        line1
        Type
        string
        Description
        First address line.
      • Name
        line2
        Type
        string
        Description
        Second address line.
      • Name
        name
        Type
        string
        Description
        Recipient name for the address.
      • Name
        phone_number
        Type
        string
        Description
        Contact number for the address.
      • Name
        post_code
        Type
        string
        Description
        Postal or ZIP code.
      • Name
        region
        Type
        string
        Description
        Region, state, or province.
    • Name
      name
      Type
      string
      Required
      required
      Description
      Payment method owner name.
  • Name
    type
    Type
    enum
    Required
    required
    Description

    Set to mobile_money for the supported direct-tokenization flow.

The account number must be valid for the selected mobile money network. Use an idempotency key when retrying so the same wallet is not saved twice.

Request

POST/payment_methods/tokenize
curl https://api.inttegro.com/payment_methods/tokenize \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: save-wallet-cu-a1b2-001" \
-d '{
"customer_id": "cu_a1b2c3d4e5",
"custom_data": {
"checkout_source": "account"
},
"mobile_money": {
"account_number": "0242057831",
"network": "mtn"
},
"owner": {
"address": {
"country": "GH"
},
"name": "Jane Mensah"
},
"type": "mobile_money"
}'

Response

SDK versionv8.2.0
PaymentMethodResponse {
paymentMethod: {},
}
POST/payment_methods/lookup

Lookup a payment method

Retrieve a saved payment method by ID. Lookup also returns inactive, archived, and ephemeral methods, so check active, archived_at, and ephemeral before offering it as a payment choice.

Request attributes

  • Name
    payment_method_id
    Type
    string
    Required
    required
    Description

    Payment method to fetch.

Request

POST/payment_methods/lookup
curl https://api.inttegro.com/payment_methods/lookup \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
}'

Response

SDK versionv8.2.0
PaymentMethodResponse {
paymentMethod: {},
}
POST/payment_methods/update

Update a payment method

Patch mutable metadata or state without replacing the underlying payment instrument. Omitted fields remain unchanged.

Request attributes

  • Name
    active
    Type
    boolean
    Description

    Set the active state. Do not send this together with archived.

  • Name
    archived
    Type
    boolean
    Description

    Set the archived state. Do not send this together with active.

  • custom_dataobjectClick or tap to expand

    Metadata to merge. New keys are added, existing keys are replaced, null deletes a key, and omitted keys remain unchanged.

  • ownerobjectOwner patch. Include at least one of address or name; values cannot be empty.Click or tap to expand
    • Name
      address
      Type
      object
      View address attributesClick or tap to expand
      Address patch. Include at least one field. When adding the first address to a method, country is required.
      • Name
        city
        Type
        string
        Description
        City or locality.
      • Name
        country
        Type
        string
        Description
        Country code.
      • Name
        line1
        Type
        string
        Description
        First address line.
      • Name
        line2
        Type
        string
        Description
        Second address line.
      • Name
        name
        Type
        string
        Description
        Recipient name for the address.
      • Name
        phone_number
        Type
        string
        Description
        Address contact number.
      • Name
        post_code
        Type
        string
        Description
        Postal or ZIP code.
      • Name
        region
        Type
        string
        Description
        Region, state, or province.
    • Name
      name
      Type
      string
      Description
      Payment-method owner name.
  • Name
    payment_method_id
    Type
    string
    Required
    required
    Description

    Payment method to update.

Provide at least one change in addition to payment_method_id. An archived method must be unarchived before you can change anything else. Unarchiving does not reactivate it.

Prefer the dedicated lifecycle operations below when you are changing only state. They make intent clearer and reduce accidental combinations.

Request

POST/payment_methods/update
curl https://api.inttegro.com/payment_methods/update \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: update-wallet-owner-001" \
-d '{
"custom_data": {
"legacy_note": null,
"segment": "vip"
},
"owner": {
"address": {
"line1": "1 High Street",
"region": "Greater Accra"
},
"name": "Jane Mensah"
},
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
}'

Response

SDK versionv8.2.0
PaymentMethodResponse {
paymentMethod: {},
}
POST/payment_methods/activate

Activate a payment method

Make an inactive payment method available for reuse. An archived method must be unarchived first; a method that is already active cannot be activated again.

Request attributes

  • Name
    payment_method_id
    Type
    string
    Required
    required
    Description

    Payment method to activate.

Response

The response is a payment_method envelope with active: true and no archived_at.

Request

POST/payment_methods/activate
curl https://api.inttegro.com/payment_methods/activate \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: activate-wallet-001" \
-d '{
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
}'
POST/payment_methods/disactivate

Deactivate a payment method

Temporarily prevent a payment method from being reused without archiving it. The method can still be retrieved and updated, then activated again when the customer wants to use it. A method that is already inactive cannot be deactivated again.

Request attributes

  • Name
    payment_method_id
    Type
    string
    Required
    required
    Description

    Payment method to deactivate.

Response

The response is a payment_method envelope with active: false.

Request

POST/payment_methods/disactivate
curl https://api.inttegro.com/payment_methods/disactivate \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: deactivate-wallet-001" \
-d '{
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
}'
POST/payment_methods/archive

Archive a payment method

Archive a payment method when the customer no longer wants it offered. Archiving sets active to false and records archived_at. An archived method cannot be archived again.

Request attributes

  • Name
    payment_method_id
    Type
    string
    Required
    required
    Description

    Payment method to archive.

Response

The response is a payment_method envelope with active: false and a populated archived_at timestamp.

Request

POST/payment_methods/archive
curl https://api.inttegro.com/payment_methods/archive \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: archive-wallet-001" \
-d '{
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
}'
POST/payment_methods/unarchive

Unarchive a payment method

Restore an archived payment method so it can be updated again. Unarchiving clears archived_at but leaves active: false; call Activate a payment method separately before offering it to the customer. A method that is not archived cannot be unarchived.

Request attributes

  • Name
    payment_method_id
    Type
    string
    Required
    required
    Description

    Payment method to unarchive.

Response

The response is a payment_method envelope with active: false and no archived_at.

Request

POST/payment_methods/unarchive
curl https://api.inttegro.com/payment_methods/unarchive \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: unarchive-wallet-001" \
-d '{
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
}'
POST/payment_methods/page

Page through payment methods

Browse saved payment methods, optionally limiting the results to one customer. The API does not guarantee newest-first ordering.

Available through MCP

AI clients can use prepare_order_payment or pay_order for this operation. Confirmed MCP actions still require explicit form confirmation before Inttegro changes state.

Request attributes

  • Name
    customer_id
    Type
    string
    Description

    Customer whose saved payment methods you want to list.

  • Name
    page_number
    Type
    integer
    Description

    1-based page number to retrieve. Omit it to use page 1. Supported pages are 1 through 10.

  • Name
    page_size
    Type
    integer
    Description

    Maximum number of payment methods to return, from 1 through 256. Defaults to 256.

The response contains page.number, page.payment_methods, and page.size. size is the number of payment methods returned. Increase page_number to request the next page, up to page 10.

Request

POST/payment_methods/page
curl https://api.inttegro.com/payment_methods/page \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cu_a1b2c3d4e5",
"page_number": 1,
"page_size": 50
}'

Response

SDK versionv8.2.0
PageResponse {
page: {},
}
POST/payment_methods/settings

Payment method settings

See which payment methods your account accepts and whether each one requires customer confirmation. Send an empty JSON object. The response can contain bank_account, card, and mobile_money entries.

Each entry has required confirms_use and enabled booleans. type, name, and description are included when configured. confirms_use: true means the payment flow should require customer confirmation before completing use of that payment type; it is not the same as the method's verification state.

New accounts enable recognized payment types and require confirmation by default, unless their configuration has been changed. See Understand payment method settings for how these settings affect checkout.

Available through MCP

AI clients can use get_payment_method_settings for this operation. MCP read tools return minimized business data and do not change Inttegro state.

Request

POST/payment_methods/settings
curl https://api.inttegro.com/payment_methods/settings \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'

Response

SDK versionv8.2.0
SettingsResponse {
settings: {},
}