Overview
The removeCard() method removes an enrolled card. The card will no longer be available for new intents. The card can be re-enrolled later via collectPAN().
Existing active intents using this card are not automatically cancelled — delete them explicitly if needed.
Method Signature
prava.removeCard(params: { cardId: string }): Promise<RemoveCardResult>
Parameters
Card ID to remove (from collectPAN() or listCards())
Return Value
Example
import { PravaSDK } from '@prava-sdk/core';
function CardItem({ card, onRemoved }) {
const prava = new PravaSDK({ publishableKey: 'pk_live_xxx' });
async function handleRemove() {
if (!confirm(`Remove card ending in ${card.last4}?`)) return;
try {
await prava.removeCard({ cardId: card.cardId });
onRemoved(card.cardId);
} catch (error) {
alert(`Failed to remove card: ${error.message}`);
}
}
return (
<div>
<span>{card.brand} •••• {card.last4}</span>
<button onClick={handleRemove}>Remove</button>
</div>
);
}
Use Cases
Card Management
const cards = await prava.listCards();
async function handleRemove(cardId: string) {
await prava.removeCard({ cardId });
// Refresh the card list
const updated = await prava.listCards();
setCards(updated);
}
Remove and Re-enroll
// Remove old card
await prava.removeCard({ cardId: 'enr_old123' });
// Enroll new card
const session = await createSessionOnServer();
const newCard = await prava.collectPAN({
sessionToken: session.session_token,
iframeUrl: session.iframe_url,
container: '#card-form',
});
Error Handling
| Code | Cause | Resolution |
|---|
CARD_NOT_FOUND | Card ID doesn’t exist or already removed | Refresh card list |
Best practice: Always show a confirmation dialog before calling removeCard() to prevent accidental deletions.
Next Steps