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
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
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
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.tokenize({
customerId: "cu_a1b2c3d4e5",
customData: {
checkout_source: "account",
},
mobileMoney: {
accountNumber: "0242057831",
network: Inttegro.MobileMoneyNetworks.MTN,
},
owner: {
address: {
country: "GH",
},
name: "Jane Mensah",
},
type: Inttegro.PaymentMethodTypes.MobileMoney,
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := inttegro.TokenizePaymentMethodParams{
CustomerID: "cu_a1b2c3d4e5",
}
result, err := client.PaymentMethods.Tokenize(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.tokenize(inttegro.payment_methods.TokenizeMobileMoneyRequest(
customer_id="cu_a1b2c3d4e5",
custom_data={
"checkout_source": "account",
},
mobile_money=inttegro.payment_methods.MobileMoney(
account_number="0242057831",
network=inttegro.MobileMoneyNetwork.MTN,
),
owner=inttegro.payment_methods.Owner(
address=inttegro.payment_methods.OwnerAddress(
country="GH",
),
name="Jane Mensah",
),
type=inttegro.PaymentMethodType.MOBILE_MONEY,
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->tokenize([
'customer_id' => 'cu_a1b2c3d4e5',
'custom_data' => [
'checkout_source' => 'account',
],
'mobile_money' => [
'account_number' => '0242057831',
'network' => \Inttegro\MobileMoneyNetwork::MTN,
],
'owner' => [
'address' => [
'country' => 'GH',
],
'name' => 'Jane Mensah',
],
'type' => \Inttegro\PaymentMethodType::MobileMoney,
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.tokenize(
customer_id: "cu_a1b2c3d4e5",
custom_data: {
checkout_source: "account",
},
mobile_money: {
account_number: "0242057831",
network: Inttegro::MobileMoneyNetwork::MTN,
},
owner: {
address: {
country: "GH",
},
name: "Jane Mensah",
},
type: Inttegro::PaymentMethodType::MOBILE_MONEY
)
import com.inttegro.Client;
import com.inttegro.paymentmethods.TokenizePaymentMethodParams;
import com.inttegro.RequestOptions;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = TokenizePaymentMethodParams.builder()
.customerId("cu_a1b2c3d4e5")
.build();
var result = client.paymentMethods().tokenize(params, RequestOptions.withIdempotencyKey("save-wallet-cu-a1b2-001"));
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.TokenizeAsync(new {
customer_id = "cu_a1b2c3d4e5",
custom_data = new {
checkout_source = "account",
},
mobile_money = new {
account_number = "0242057831",
network = Inttegro.MobileMoneyNetwork.MTN,
},
owner = new {
address = new {
country = "GH",
},
name = "Jane Mensah",
},
type = Inttegro.PaymentMethodType.MobileMoney,
});
Response
- Object
- JSON
PaymentMethodResponse {
paymentMethod: { … },
}
{
"payment_method": {
"active": true,
"created_at": "2026-08-30T13:00:00Z",
"customer_id": "cu_a1b2c3d4e5",
"custom_data": { … },
"id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
"mobile_money": { … },
"owner": { … },
"type": "mobile_money"
}
}
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
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.lookup({
paymentMethodId: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.PaymentMethods.Lookup(ctx, "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.lookup("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->lookup("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.lookup(payment_method_id: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.paymentMethods().lookup("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.LookupAsync("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
Update a payment method
Patch mutable metadata or state without replacing the underlying payment instrument. Omitted fields remain unchanged.
Request attributes
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
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.update({
customData: {
legacy_note: null,
segment: "vip",
},
owner: {
address: {
line1: "1 High Street",
region: "Greater Accra",
},
name: "Jane Mensah",
},
paymentMethodId: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := map[string]any{
"custom_data": map[string]any{
"legacy_note": nil,
"segment": "vip",
},
"owner": map[string]any{
"address": map[string]any{
"line1": "1 High Street",
"region": "Greater Accra",
},
"name": "Jane Mensah",
},
"payment_method_id": "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
}
result, err := client.PaymentMethods.Update(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.update(inttegro.payment_methods.UpdateRequest(
custom_data={
"legacy_note": None,
"segment": "vip",
},
owner=inttegro.payment_methods.UpdateOwner(
address=inttegro.payment_methods.UpdateOwnerAddress(
line1="1 High Street",
region="Greater Accra",
),
name="Jane Mensah",
),
payment_method_id="pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->update([
'custom_data' => [
'legacy_note' => null,
'segment' => 'vip',
],
'owner' => [
'address' => [
'line1' => '1 High Street',
'region' => 'Greater Accra',
],
'name' => 'Jane Mensah',
],
'payment_method_id' => 'pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D',
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.update(
custom_data: {
legacy_note: nil,
segment: "vip",
},
owner: {
address: {
line1: "1 High Street",
region: "Greater Accra",
},
name: "Jane Mensah",
},
payment_method_id: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D"
)
import com.inttegro.Client;
import com.inttegro.paymentmethods.UpdatePaymentMethodParams;
import java.util.Map;
import com.inttegro.paymentmethods.PaymentMethodOwner;
import com.inttegro.paymentmethods.PaymentMethodOwnerAddress;
import com.inttegro.RequestOptions;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = UpdatePaymentMethodParams.builder()
.customData(Map.<String, String>ofEntries(
Map.entry("legacy_note", null),
Map.entry("segment", "vip")
))
.owner(PaymentMethodOwner.builder()
.address(PaymentMethodOwnerAddress.builder()
.line1("1 High Street")
.region("Greater Accra")
.build())
.name("Jane Mensah")
.build())
.paymentMethodId("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
.build();
var result = client.paymentMethods().update(params, RequestOptions.withIdempotencyKey("update-wallet-owner-001"));
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.UpdateAsync(new {
custom_data = new {
legacy_note = (object?)null,
segment = "vip",
},
owner = new {
address = new {
line1 = "1 High Street",
region = "Greater Accra",
},
name = "Jane Mensah",
},
payment_method_id = "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
});
Response
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
Response
The response is a payment_method envelope with active: true and no archived_at.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.activate({
paymentMethodId: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.PaymentMethods.Activate(ctx, "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.activate("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->activate("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.activate(payment_method_id: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.paymentMethods().activate("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.ActivateAsync("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
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
Response
The response is a payment_method envelope with active: false.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.disactivate({
paymentMethodId: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.PaymentMethods.Disactivate(ctx, "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.disactivate("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->disactivate("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.disactivate(payment_method_id: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.paymentMethods().disactivate("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.DisactivateAsync("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
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
Response
The response is a payment_method envelope with active: false and a populated archived_at timestamp.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.archive({
paymentMethodId: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.PaymentMethods.Archive(ctx, "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.archive("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->archive("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.archive(payment_method_id: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.paymentMethods().archive("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.ArchiveAsync("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
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
Response
The response is a payment_method envelope with active: false and no archived_at.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.unarchive({
paymentMethodId: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.PaymentMethods.Unarchive(ctx, "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.unarchive("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->unarchive("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.unarchive(payment_method_id: "pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.paymentMethods().unarchive("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.UnarchiveAsync("pm_z7Qx4Lm9Pc2Vb8Nt6Ks1Ha3D");
Page through payment methods
Browse saved payment methods, optionally limiting the results to one customer. The API does not guarantee newest-first ordering.
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
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
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
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
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.page({
customerId: "cu_a1b2c3d4e5",
pageNumber: 1,
pageSize: 50,
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := inttegro.PaymentMethodPageParams{
CustomerID: "cu_a1b2c3d4e5",
PageNumber: 1,
PageSize: 50,
}
result, err := client.PaymentMethods.Page(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.page(inttegro.payment_methods.PageRequest(
customer_id="cu_a1b2c3d4e5",
page_number=1,
page_size=50,
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->page([
'customer_id' => 'cu_a1b2c3d4e5',
'page_number' => 1,
'page_size' => 50,
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.page(
customer_id: "cu_a1b2c3d4e5",
page_number: 1,
page_size: 50
)
import com.inttegro.Client;
import com.inttegro.paymentmethods.PagePaymentMethodsParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = PagePaymentMethodsParams.builder()
.customerId("cu_a1b2c3d4e5")
.pageNumber(1)
.pageSize(50)
.build();
var result = client.paymentMethods().page(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.PageAsync(new {
customer_id = "cu_a1b2c3d4e5",
page_number = 1,
page_size = 50,
});
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.
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
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/payment_methods/settings \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.paymentMethods.settings()
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.PaymentMethods.Settings(ctx)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.payment_methods.settings()
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->paymentMethods->settings();
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.payment_methods.settings
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.paymentMethods().settings();
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.PaymentMethods.SettingsAsync();
Related resources
- Create customer - Create the owner before tokenizing a method.
- Create an order - Use a saved method with its owning customer.
- Pay an order - Attach a saved method when collecting payment after order creation.
- Confirm a payment - Complete required customer confirmation.