List Card Template Pairs
Only available for enterprise customers - allows you to retrieve a paginated list of Card Template Pairs. Card Template Pairs link iOS and Android card templates together for unified pass issuance.
page
nullable integer
per_page
nullable integer
Request
# Build the JSON payload (server only verifies SIG against sig_payload;
# filter params like page/per_page travel as ordinary query params)
PAYLOAD="{}"
# Sign the payload
PAYLOAD_B64=$(printf '%s' "$PAYLOAD" | openssl base64 -A)
SIG=$(printf '%s' "$PAYLOAD_B64" | openssl dgst -sha256 -hmac "$SECRET_KEY" -hex | awk '{print $NF}')
curl -v -G \
-H "X-ACCT-ID: $ACCOUNT_ID" \
-H "X-PAYLOAD-SIG: $SIG" \
--data-urlencode "page=1" \
--data-urlencode "per_page=50" \
--data-urlencode "sig_payload=$PAYLOAD" \
"https://api.accessgrid.com/v1/console/card-template-pairs"
require 'accessgrid'
acct_id = ENV['ACCOUNT_ID']
secret_key = ENV['SECRET_KEY']
client = AccessGrid.new(acct_id, secret_key)
response = client.console.list_pass_template_pairs(
page: 1,
per_page: 50
)
response['pass_template_pairs'].each do |pair|
puts "Pair: #{pair.name} (ID: #{pair.id})"
puts " Android: #{pair.android_template&.name}"
puts " iOS: #{pair.ios_template&.name}"
end
puts "Total: #{response['pagination']['total_count']} pairs"
import AccessGrid from 'accessgrid';
const accountId = process.env.ACCOUNT_ID;
const secretKey = process.env.SECRET_KEY;
const client = new AccessGrid(accountId, secretKey);
const listPairs = async () => {
try {
const result = await client.console.listPassTemplatePairs({
page: 1,
perPage: 50
});
result.passTemplatePairs.forEach(pair => {
console.log(`Pair: ${pair.name} (ID: ${pair.id})`);
console.log(` Android: ${pair.androidTemplate?.name}`);
console.log(` iOS: ${pair.iosTemplate?.name}`);
});
console.log(`Total: ${result.pagination.total_count} pairs`);
} catch (error) {
console.error('Error listing pairs:', error);
}
};
listPairs();
import os
from accessgrid import AccessGrid
acct_id = os.environ.get('ACCOUNT_ID')
secret_key = os.environ.get('SECRET_KEY')
client = AccessGrid(acct_id, secret_key)
result = client.console.list_pass_template_pairs(
page=1,
per_page=50
)
for pair in result['pass_template_pairs']:
print(f"Pair: {pair.name} (ID: {pair.id})")
if pair.android_template:
print(f" Android: {pair.android_template.name}")
if pair.ios_template:
print(f" iOS: {pair.ios_template.name}")
print(f"Total: {result['pagination']['total_count']} pairs")
<?php
require 'vendor/autoload.php';
use AccessGrid\AccessGridClient;
$acctId = getenv('ACCOUNT_ID');
$secretKey = getenv('SECRET_KEY');
$client = new AccessGridClient($acctId, $secretKey);
$result = $client->console->listPassTemplatePairs([
'page' => 1,
'per_page' => 50
]);
foreach ($result['pass_template_pairs'] as $pair) {
echo "Pair: {$pair->name} (ID: {$pair->id})\n";
if ($pair->androidTemplate) {
echo " Android: {$pair->androidTemplate->name}\n";
}
if ($pair->iosTemplate) {
echo " iOS: {$pair->iosTemplate->name}\n";
}
}
echo "Total: {$result['pagination']['total_count']} pairs\n";
package main
import (
"context"
"fmt"
"os"
"github.com/Access-Grid/accessgrid-go"
"github.com/Access-Grid/accessgrid-go/models"
)
func main() {
accountID := os.Getenv("ACCOUNT_ID")
secretKey := os.Getenv("SECRET_KEY")
client, err := accessgrid.NewClient(accountID, secretKey)
if err != nil {
fmt.Printf("Error creating client: %v\n", err)
return
}
ctx := context.Background()
result, err := client.Console.ListPassTemplatePairs(ctx, models.ListPassTemplatePairsParams{
Page: 1,
PerPage: 50,
})
if err != nil {
fmt.Printf("Error listing pairs: %v\n", err)
return
}
for _, pair := range result.PassTemplatePairs {
fmt.Printf("Pair: %s (ID: %s)\n", pair.Name, pair.ID)
if pair.IOSTemplate != nil {
fmt.Printf(" iOS: %s\n", pair.IOSTemplate.Name)
}
if pair.AndroidTemplate != nil {
fmt.Printf(" Android: %s\n", pair.AndroidTemplate.Name)
}
}
fmt.Printf("Total: %d pairs\n", result.Pagination.TotalCount)
}
using AccessGrid;
using System;
using System.Threading.Tasks;
public async Task ListPassTemplatePairsAsync()
{
var accountId = Environment.GetEnvironmentVariable("ACCOUNT_ID");
var secretKey = Environment.GetEnvironmentVariable("SECRET_KEY");
using var client = new AccessGridClient(accountId, secretKey);
var result = await client.Console.ListPassTemplatePairsAsync(page: 1, perPage: 50);
foreach (var pair in result.PassTemplatePairs)
{
Console.WriteLine($"Pair: {pair.Name} (ID: {pair.Id})");
Console.WriteLine($" iOS: {pair.IosTemplate?.Name ?? "none"}");
Console.WriteLine($" Android: {pair.AndroidTemplate?.Name ?? "none"}");
}
Console.WriteLine($"Total: {result.Pagination.TotalCount} pairs");
}
import com.organization.accessgrid.AccessGridClient;
import com.organization.accessgrid.Models;
public class CardTemplatePairService {
private final AccessGridClient client;
public CardTemplatePairService() {
String accountId = System.getenv("ACCOUNT_ID");
String secretKey = System.getenv("SECRET_KEY");
this.client = new AccessGridClient(accountId, secretKey);
}
public void listPairs() {
Models.ListPassTemplatePairsParams params = Models.ListPassTemplatePairsParams.builder()
.page(1)
.perPage(50)
.build();
Models.PassTemplatePairsResult result = client.console().listPassTemplatePairs(params);
for (Models.PassTemplatePair pair : result.getPassTemplatePairs()) {
System.out.printf("Pair: %s (ID: %s)%n", pair.getName(), pair.getId());
if (pair.getIosTemplate() != null) {
System.out.printf(" iOS: %s%n", pair.getIosTemplate().getName());
}
if (pair.getAndroidTemplate() != null) {
System.out.printf(" Android: %s%n", pair.getAndroidTemplate().getName());
}
}
System.out.printf("Total: %d pairs%n", result.getPagination().getTotalCount());
}
}
{:ok, client} = AccessGrid.new(
System.get_env("ACCOUNT_ID"),
System.get_env("SECRET_KEY")
)
{:ok, response} = AccessGrid.Console.list_pass_template_pairs(client,
page: 1,
per_page: 50
)
Enum.each(response["pass_template_pairs"], fn pair ->
IO.puts("Pair: #{pair.name} (ID: #{pair.id})")
IO.puts(" Android: #{pair.android_template && pair.android_template.name}")
IO.puts(" iOS: #{pair.ios_template && pair.ios_template.name}")
end)
IO.puts("Total: #{response["pagination"]["total_count"]} pairs")
Response
{
"card_template_pairs": [
{
"id": "pair_9f3a12bc",
"ex_id": "pair_9f3a12bc",
"name": "Corporate Access Badge",
"created_at": "2025-12-01T09:15:30Z",
"android_template": {
"id": "tpl_android123",
"ex_id": "tpl_android123",
"name": "Android Corporate Badge",
"platform": "android"
},
"ios_template": {
"id": "tpl_ios456",
"ex_id": "tpl_ios456",
"name": "iOS Corporate Badge",
"platform": "apple"
}
},
{
"id": "pair_b81d77ef",
"ex_id": "pair_b81d77ef",
"name": "Student ID",
"created_at": "2025-11-15T14:22:11Z",
"android_template": {
"id": "tpl_android789",
"ex_id": "tpl_android789",
"name": "Android Student ID",
"platform": "android"
},
"ios_template": null
}
],
"pagination": {
"current_page": 1,
"per_page": 50,
"total_pages": 1,
"total_count": 2
}
}
Create Card Template Pair
Only available for enterprise customers - allows you to create a Card Template Pair by linking an Apple (iOS) and Google (Android) card template together. Both templates must be published. Supported combinations are either Apple SEOS paired with Google SEOS, or Apple DESFire paired with Google SmartTap.
name
string
apple_card_template_id
string
google_card_template_id
string
Request
# Build the JSON payload
PAYLOAD=$(cat <<EOF
{
"name": "Employee Badge Pair",
"apple_card_template_id": "0xapplet3mp14t3",
"google_card_template_id": "0xgoogl3t3mp14t3"
}
EOF)
# Sign the payload
PAYLOAD_B64=$(printf '%s' "$PAYLOAD" | openssl base64 -A)
SIG=$(printf '%s' "$PAYLOAD_B64" | openssl dgst -sha256 -hmac "$SECRET_KEY" -hex | awk '{print $NF}')
curl -v \
-X POST \
-H "X-ACCT-ID: $ACCOUNT_ID" \
-H "X-PAYLOAD-SIG: $SIG" \
-H "Content-Type: application/json" \
-d "$PAYLOAD" \
"https://api.accessgrid.com/v1/console/card-template-pairs"
require 'accessgrid'
acct_id = ENV['ACCOUNT_ID']
secret_key = ENV['SECRET_KEY']
client = AccessGrid.new(acct_id, secret_key)
# Both card templates must be published (status: ready) and use the same protocol.
pair = client.console.create_pass_template_pair(
name: "Employee Badge Pair",
apple_card_template_id: "0xapplet3mp14t3",
google_card_template_id: "0xgoogl3t3mp14t3"
)
puts "Created pair: #{pair.name} (ID: #{pair.id})"
import AccessGrid from 'accessgrid';
const accountId = process.env.ACCOUNT_ID;
const secretKey = process.env.SECRET_KEY;
const client = new AccessGrid(accountId, secretKey);
const createPair = async () => {
try {
// Both card templates must be published (status: ready) and use the same protocol.
const pair = await client.console.createPassTemplatePair({
name: "Employee Badge Pair",
appleCardTemplateId: "0xapplet3mp14t3",
googleCardTemplateId: "0xgoogl3t3mp14t3"
});
console.log(`Created pair: ${pair.name} (ID: ${pair.id})`);
} catch (error) {
console.error('Error creating pair:', error);
}
};
createPair();
import os
from accessgrid import AccessGrid
acct_id = os.environ.get('ACCOUNT_ID')
secret_key = os.environ.get('SECRET_KEY')
client = AccessGrid(acct_id, secret_key)
# Both card templates must be published (status: ready) and use the same protocol.
pair = client.console.create_pass_template_pair(
name="Employee Badge Pair",
apple_card_template_id="0xapplet3mp14t3",
google_card_template_id="0xgoogl3t3mp14t3"
)
print(f"Created pair: {pair.name} (ID: {pair.id})")
<?php
require 'vendor/autoload.php';
use AccessGrid\AccessGridClient;
$acctId = getenv('ACCOUNT_ID');
$secretKey = getenv('SECRET_KEY');
$client = new AccessGridClient($acctId, $secretKey);
// Both card templates must be published (status: ready) and use the same protocol.
$pair = $client->console->createPassTemplatePair([
'name' => 'Employee Badge Pair',
'apple_card_template_id' => '0xapplet3mp14t3',
'google_card_template_id' => '0xgoogl3t3mp14t3',
]);
echo "Created pair: {$pair->name} (ID: {$pair->id})\n";
package main
import (
"context"
"fmt"
"os"
"github.com/Access-Grid/accessgrid-go"
)
func main() {
accountID := os.Getenv("ACCOUNT_ID")
secretKey := os.Getenv("SECRET_KEY")
client, err := accessgrid.NewClient(accountID, secretKey)
if err != nil {
fmt.Printf("Error creating client: %v\n", err)
return
}
// Both card templates must be published (status: ready) and use the same protocol.
params := accessgrid.CreatePassTemplatePairParams{
Name: "Employee Badge Pair",
AppleCardTemplateID: "0xapplet3mp14t3",
GoogleCardTemplateID: "0xgoogl3t3mp14t3",
}
ctx := context.Background()
pair, err := client.Console.CreatePassTemplatePair(ctx, params)
if err != nil {
fmt.Printf("Error creating pair: %v\n", err)
return
}
fmt.Printf("Created pair: %s (ID: %s)\n", pair.Name, pair.ID)
}
using AccessGrid;
using System;
using System.Threading.Tasks;
public async Task CreatePassTemplatePairAsync()
{
var accountId = Environment.GetEnvironmentVariable("ACCOUNT_ID");
var secretKey = Environment.GetEnvironmentVariable("SECRET_KEY");
using var client = new AccessGridClient(accountId, secretKey);
// Both card templates must be published (status: ready) and use the same protocol.
var pair = await client.Console.CreatePassTemplatePairAsync(new CreatePassTemplatePairRequest
{
Name = "Employee Badge Pair",
AppleCardTemplateId = "0xapplet3mp14t3",
GoogleCardTemplateId = "0xgoogl3t3mp14t3"
});
Console.WriteLine($"Created pair: {pair.Name} (ID: {pair.Id})");
}
import com.organization.accessgrid.AccessGridClient;
import com.organization.accessgrid.Models;
public class CardTemplatePairService {
private final AccessGridClient client;
public CardTemplatePairService() {
String accountId = System.getenv("ACCOUNT_ID");
String secretKey = System.getenv("SECRET_KEY");
this.client = new AccessGridClient(accountId, secretKey);
}
public Models.PassTemplatePair createPair() {
// Both card templates must be published (status: ready) and use the same protocol.
Models.CreatePassTemplatePairRequest request = Models.CreatePassTemplatePairRequest.builder()
.name("Employee Badge Pair")
.appleCardTemplateId("0xapplet3mp14t3")
.googleCardTemplateId("0xgoogl3t3mp14t3")
.build();
Models.PassTemplatePair pair = client.console().createPassTemplatePair(request);
System.out.printf("Created pair: %s (ID: %s)%n", pair.getName(), pair.getId());
return pair;
}
}
{:ok, client} = AccessGrid.new(
System.get_env("ACCOUNT_ID"),
System.get_env("SECRET_KEY")
)
# Both card templates must be published (status: ready) and use the same protocol.
{:ok, pair} = AccessGrid.Console.create_pass_template_pair(client,
name: "Employee Badge Pair",
apple_card_template_id: "0xapplet3mp14t3",
google_card_template_id: "0xgoogl3t3mp14t3"
)
IO.puts("Created pair: #{pair.name} (ID: #{pair.id})")
Response
{
"id": "pair_9f3a12bc",
"ex_id": "pair_9f3a12bc",
"name": "Corporate Access Badge",
"created_at": "2025-12-01T09:15:30Z",
"android_template": {
"id": "tpl_android123",
"ex_id": "tpl_android123",
"name": "Android Corporate Badge",
"platform": "android"
},
"ios_template": {
"id": "tpl_ios456",
"ex_id": "tpl_ios456",
"name": "iOS Corporate Badge",
"platform": "apple"
}
}
Update Card Template Pair
Only available for enterprise customers - renames a card template pair. Only name can be changed.
card_template_pair_id
string
name
string
Request
# Build the JSON payload
PAIR_ID="0xpa1rt3mp14t3"
PAYLOAD='{"name":"Updated Corporate Access Badge"}'
# Sign the payload
PAYLOAD_B64=$(printf '%s' "$PAYLOAD" | openssl base64 -A)
SIG=$(printf '%s' "$PAYLOAD_B64" | openssl dgst -sha256 -hmac "$SECRET_KEY" -hex | awk '{print $NF}')
curl -X PUT \
-H "X-ACCT-ID: $ACCOUNT_ID" \
-H "X-PAYLOAD-SIG: $SIG" \
-H "Content-Type: application/json" \
-d "$PAYLOAD" \
"https://api.accessgrid.com/v1/console/card-template-pairs/$PAIR_ID"
require 'accessgrid'
acct_id = ENV['ACCOUNT_ID']
secret_key = ENV['SECRET_KEY']
client = AccessGrid.new(acct_id, secret_key)
pair = client.console.update_pass_template_pair(
pass_template_pair_id: "0xpa1rt3mp14t3",
name: "Updated Corporate Access Badge"
)
puts "Card template pair updated: #{pair.id}"
puts "Name: #{pair.name}"
import AccessGrid from 'accessgrid';
const accountId = process.env.ACCOUNT_ID;
const secretKey = process.env.SECRET_KEY;
const client = new AccessGrid(accountId, secretKey);
const updatePair = async () => {
try {
const pair = await client.console.updatePassTemplatePair({
passTemplatePairId: "0xpa1rt3mp14t3",
name: "Updated Corporate Access Badge"
});
console.log(`Card template pair updated: ${pair.id}`);
console.log(`Name: ${pair.name}`);
} catch (error) {
console.error('Error updating card template pair:', error);
}
};
updatePair();
from accessgrid import AccessGrid
import os
acct_id = os.environ.get('ACCOUNT_ID')
secret_key = os.environ.get('SECRET_KEY')
client = AccessGrid(acct_id, secret_key)
pair = client.console.update_pass_template_pair(
pass_template_pair_id="0xpa1rt3mp14t3",
name="Updated Corporate Access Badge"
)
print(f"Card template pair updated: {pair.id}")
print(f"Name: {pair.name}")
<?php
require 'vendor/autoload.php';
use AccessGrid\AccessGridClient;
$acctId = getenv('ACCOUNT_ID');
$secretKey = getenv('SECRET_KEY');
$client = new AccessGridClient($acctId, $secretKey);
$pair = $client->console->updatePassTemplatePair('0xpa1rt3mp14t3', [
'name' => 'Updated Corporate Access Badge'
]);
echo "Card template pair updated: {$pair->id}\n";
echo "Name: {$pair->name}\n";
package main
import (
"context"
"fmt"
"os"
"github.com/Access-Grid/accessgrid-go"
)
func main() {
accountID := os.Getenv("ACCOUNT_ID")
secretKey := os.Getenv("SECRET_KEY")
client, err := accessgrid.NewClient(accountID, secretKey)
if err != nil {
fmt.Printf("Error creating client: %v\n", err)
return
}
params := accessgrid.UpdatePassTemplatePairParams{
PassTemplatePairID: "0xpa1rt3mp14t3",
Name: "Updated Corporate Access Badge",
}
ctx := context.Background()
pair, err := client.Console.UpdatePassTemplatePair(ctx, params)
if err != nil {
fmt.Printf("Error updating card template pair: %v\n", err)
return
}
fmt.Printf("Card template pair updated: %s\n", pair.ID)
fmt.Printf("Name: %s\n", pair.Name)
}
using AccessGrid;
using System;
using System.Threading.Tasks;
public async Task UpdatePassTemplatePairAsync()
{
var accountId = Environment.GetEnvironmentVariable("ACCOUNT_ID");
var secretKey = Environment.GetEnvironmentVariable("SECRET_KEY");
using var client = new AccessGridClient(accountId, secretKey);
var pair = await client.Console.UpdatePassTemplatePairAsync("0xpa1rt3mp14t3", new UpdatePassTemplatePairRequest
{
Name = "Updated Corporate Access Badge"
});
Console.WriteLine($"Card template pair updated: {pair.Id}");
Console.WriteLine($"Name: {pair.Name}");
}
import com.organization.accessgrid.AccessGridClient;
import com.organization.accessgrid.Models;
public class CardTemplatePairService {
private final AccessGridClient client;
public CardTemplatePairService() {
String accountId = System.getenv("ACCOUNT_ID");
String secretKey = System.getenv("SECRET_KEY");
this.client = new AccessGridClient(accountId, secretKey);
}
public Models.PassTemplatePair updatePair() {
Models.UpdatePassTemplatePairRequest request = Models.UpdatePassTemplatePairRequest.builder()
.passTemplatePairId("0xpa1rt3mp14t3")
.name("Updated Corporate Access Badge")
.build();
Models.PassTemplatePair pair = client.console().updatePassTemplatePair(request);
System.out.printf("Card template pair updated: %s%n", pair.getId());
System.out.printf("Name: %s%n", pair.getName());
return pair;
}
}
client = AccessGrid.Client.new(
account_id: System.get_env("ACCOUNT_ID"),
api_secret: System.get_env("SECRET_KEY")
)
{:ok, pair} = AccessGrid.Console.update_card_template_pair(
"0xpa1rt3mp14t3",
%{name: "Updated Corporate Access Badge"},
client: client
)
IO.puts("Card template pair updated: #{pair.id}")
IO.puts("Name: #{pair.name}")
Response
{
"id": "pair_9f3a12bc",
"ex_id": "pair_9f3a12bc",
"name": "Updated Corporate Access Badge",
"created_at": "2025-12-01T09:15:30Z",
"android_template": {
"id": "tpl_android123",
"ex_id": "tpl_android123",
"name": "Android Corporate Badge",
"platform": "android"
},
"ios_template": {
"id": "tpl_ios456",
"ex_id": "tpl_ios456",
"name": "iOS Corporate Badge",
"platform": "apple"
}
}
Delete Card Template Pair
Only available for enterprise customers - deletes a card template pair. Every key issued through the pair must be deleted first, otherwise returns 422 with an active_key_count field. The two card templates the pair links are not deleted.
card_template_pair_id
string
Request
# Build the JSON payload
PAIR_ID="0xpa1rt3mp14t3"
PAYLOAD="{\"card_template_pair_id\":\"$PAIR_ID\"}"
# Sign the payload
PAYLOAD_B64=$(printf '%s' "$PAYLOAD" | openssl base64 -A)
SIG=$(printf '%s' "$PAYLOAD_B64" | openssl dgst -sha256 -hmac "$SECRET_KEY" -hex | awk '{print $NF}')
curl -X DELETE -G \
-H "X-ACCT-ID: $ACCOUNT_ID" \
-H "X-PAYLOAD-SIG: $SIG" \
--data-urlencode "sig_payload=$PAYLOAD" \
"https://api.accessgrid.com/v1/console/card-template-pairs/$PAIR_ID"
require 'accessgrid'
acct_id = ENV['ACCOUNT_ID']
secret_key = ENV['SECRET_KEY']
client = AccessGrid.new(acct_id, secret_key)
client.console.delete_pass_template_pair("0xpa1rt3mp14t3")
puts "Card template pair deleted"
import AccessGrid from 'accessgrid';
const accountId = process.env.ACCOUNT_ID;
const secretKey = process.env.SECRET_KEY;
const client = new AccessGrid(accountId, secretKey);
const deletePair = async () => {
try {
await client.console.deletePassTemplatePair("0xpa1rt3mp14t3");
console.log('Card template pair deleted');
} catch (error) {
console.error('Error deleting card template pair:', error);
}
};
deletePair();
import os
from accessgrid import AccessGrid
acct_id = os.environ.get('ACCOUNT_ID')
secret_key = os.environ.get('SECRET_KEY')
client = AccessGrid(acct_id, secret_key)
client.console.delete_pass_template_pair("0xpa1rt3mp14t3")
print("Card template pair deleted")
<?php
require 'vendor/autoload.php';
use AccessGrid\AccessGridClient;
$acctId = getenv('ACCOUNT_ID');
$secretKey = getenv('SECRET_KEY');
$client = new AccessGridClient($acctId, $secretKey);
$client->console->deletePassTemplatePair('0xpa1rt3mp14t3');
echo "Card template pair deleted\n";
package main
import (
"context"
"fmt"
"os"
"github.com/Access-Grid/accessgrid-go"
)
func main() {
accountID := os.Getenv("ACCOUNT_ID")
secretKey := os.Getenv("SECRET_KEY")
client, err := accessgrid.NewClient(accountID, secretKey)
if err != nil {
fmt.Printf("Error creating client: %v\n", err)
return
}
ctx := context.Background()
err = client.Console.DeletePassTemplatePair(ctx, "0xpa1rt3mp14t3")
if err != nil {
fmt.Printf("Error deleting card template pair: %v\n", err)
return
}
fmt.Println("Card template pair deleted")
}
using AccessGrid;
using System;
using System.Threading.Tasks;
public async Task DeletePassTemplatePairAsync()
{
var accountId = Environment.GetEnvironmentVariable("ACCOUNT_ID");
var secretKey = Environment.GetEnvironmentVariable("SECRET_KEY");
using var client = new AccessGridClient(accountId, secretKey);
await client.Console.DeletePassTemplatePairAsync("0xpa1rt3mp14t3");
Console.WriteLine("Card template pair deleted");
}
import com.organization.accessgrid.AccessGridClient;
public class CardTemplatePairService {
private final AccessGridClient client;
public CardTemplatePairService() {
String accountId = System.getenv("ACCOUNT_ID");
String secretKey = System.getenv("SECRET_KEY");
this.client = new AccessGridClient(accountId, secretKey);
}
public void deletePair() throws AccessGridException {
client.console().deletePassTemplatePair("0xpa1rt3mp14t3");
System.out.println("Card template pair deleted");
}
}
{:ok, client} = AccessGrid.new(
System.get_env("ACCOUNT_ID"),
System.get_env("SECRET_KEY")
)
{:ok, _} = AccessGrid.Console.delete_pass_template_pair(client, "0xpa1rt3mp14t3")
IO.puts("Card template pair deleted")
Response
{
"id": "0xpa1rt3mp14t3",
"deactivated": true
}