Get List of Payment Cards with Pagination
The GET /api/paymentCards/v3 endpoint retrieves detailed information about all payment cards linked to the authenticated user's account. It returns key card attributes including masked card numbers, expiration dates, form factor, network, card type, and the financial accounts each card is associated with. This endpoint supports an optional query parameter to filter results to authorized user (subprofile) cards only.
Endpoint
GET /api/paymentCards/v3
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when you need to display a customer's full list of active payment cards — for example, in a card management dashboard or during checkout flows. It is also useful for auditing which cards are linked to specific financial accounts or for identifying cards that require reissuance. Partners building subprofile (authorized user) management features can filter results to show only subprofile cards using the onlySubCards parameter.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| onlySubCards | boolean | No | When true, returns only cards belonging to authorized users (subprofiles). Defaults to false. |
Response
200 OK
Returns an array of payment card objects.
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the payment card. |
| bin | string | Bank Identification Number (first 6 digits of the card). |
| last4 | string | Last four digits of the card number. |
| status | string | Current card status (e.g., ACTIVE, INACTIVE, CLOSED). |
| formFactor | string | Physical form of the card: PHYSICAL, VIRTUAL, or BURNER. |
| expirationDate | string | Card expiration date (format: MM/YYYY). |
| network | string | Card network (e.g., VISA, MASTERCARD). |
| cardType | integer | Card type code. Enum: 0 = Unknown, 1 = Debit, 2 = Credit, 3 = Prepaid, 4 = Other. |
| cardholder | string | Full name of the primary cardholder. |
| subProfile | string | Name of the authorized user (subprofile) the card belongs to, if applicable. |
| department | string | Department label associated with the card, if set. |
| cardName | string | Custom display name assigned to the card. |
| financialAccounts | array of objects | List of financial accounts linked to the card. Each object contains id (string) and name (string). |
| isMainCard | boolean | true if this is the primary card on the account. |
| partnerName | string | Name of the partner associated with the card. |
| partnerId | integer | Numeric identifier of the partner associated with the card. |
| partnerCardIcons | array of strings | (Deprecated) Icon URLs for partner-branded card display. |
| cardDesign | object | Card artwork URLs. Contains frontSideImageUrlXs, frontSideImageUrlXl, and backSideImageUrlXl (all strings). Burner cards additionally include burnerFrontSideImageUrlXs, burnerFrontSideImageUrlXl, and burnerBackSideImageUrlXl. |
| cardProfileSetId | string | Identifier for the card profile set configuration. |
| features | array of strings | Actions available for this card. Possible values: Activate, Close, LockUnlock, ReissueCard, SetUpPin, OrderStatus, SpendingReport, TransactionLimits, TransactionLimitsViewOnly. |
| subProfileId | integer | Numeric ID of the authorized user (subprofile) the card belongs to, if applicable. |
| isCardForReissue | boolean | Read-only. true if this card is flagged for reissuance (e.g., expiring card that requires a replacement). |
[
{
"id": "card_abc123xyz456",
"bin": "411111",
"last4": "4242",
"status": "ACTIVE",
"formFactor": "PHYSICAL",
"expirationDate": "09/2027",
"network": "VISA",
"cardType": 1,
"cardholder": "Jane Smith",
"subProfile": null,
"department": "Operations",
"cardName": "My Business Card",
"financialAccounts": [
{
"id": "acct_def456uvw789",
"name": "Primary Checking"
}
],
"isMainCard": true,
"partnerName": "Netevia",
"partnerId": 1001,
"partnerCardIcons": [],
"cardDesign": {
"frontSideImageUrlXs": "https://cdn.netevia.com/cards/design_xs.png",
"frontSideImageUrlXl": "https://cdn.netevia.com/cards/design_xl.png",
"backSideImageUrlXl": "https://cdn.netevia.com/cards/design_back_xl.png"
},
"cardProfileSetId": "cps_ghi789rst012",
"features": [
"LockUnlock",
"ReissueCard",
"SetUpPin",
"SpendingReport",
"TransactionLimits"
],
"subProfileId": null,
"isCardForReissue": false
},
{
"id": "card_jkl321mno654",
"bin": "411111",
"last4": "9999",
"status": "ACTIVE",
"formFactor": "VIRTUAL",
"expirationDate": "12/2025",
"network": "VISA",
"cardType": 1,
"cardholder": "Jane Smith",
"subProfile": null,
"department": null,
"cardName": "Online Purchases",
"financialAccounts": [
{
"id": "acct_def456uvw789",
"name": "Primary Checking"
}
],
"isMainCard": false,
"partnerName": "Netevia",
"partnerId": 1001,
"partnerCardIcons": [],
"cardDesign": {
"frontSideImageUrlXs": "https://cdn.netevia.com/cards/virtual_xs.png",
"frontSideImageUrlXl": "https://cdn.netevia.com/cards/virtual_xl.png",
"backSideImageUrlXl": "https://cdn.netevia.com/cards/virtual_back_xl.png"
},
"cardProfileSetId": "cps_ghi789rst012",
"features": [
"Close",
"LockUnlock",
"SpendingReport",
"TransactionLimitsViewOnly"
],
"subProfileId": null,
"isCardForReissue": true
}
]Error Codes
| Code | When it happens |
|---|---|
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to access card data |
| 500 | Internal server error |
Common Mistakes
- Passing
onlySubCards=truewhen the account has no authorized users (subprofiles) will return an empty array — this is expected behavior, not an error. - The
cardTypefield is an integer enum, not a string. Do not compare it to string values such as"DEBIT"— use the numeric values (e.g.,1for Debit). - The
partnerCardIconsfield is deprecated. Do not rely on it for card branding or display logic; usecardDesignimage URLs instead. - Card numbers are never returned in full. Use
binandlast4together to identify a card for display purposes. Full PAN is never exposed through this endpoint. - Burner cards have a distinct card design schema that includes additional fields (
burnerFrontSideImageUrlXs,burnerFrontSideImageUrlXl,burnerBackSideImageUrlXl). Handle bothcarddesignandcarddesignsettingsshapes in your client code. - The
featuresarray controls which actions are permitted for a given card. Always check this array before rendering card management options (e.g., hide "Set PIN" ifSetUpPinis absent).
Related Endpoints
POST /api/paymentCards— Create a new payment card (physical, virtual, or burner)GET /api/paymentCards/{id}— Retrieve details for a single payment card by IDPUT /api/paymentCards/{id}/lock— Lock or unlock a specific payment cardDELETE /api/paymentCards/{id}— Close a payment cardGET /api/paymentCards/v3withonlySubCards=true— List cards belonging to authorized users only
Example
curl -X GET "https://api.banking.netevia.dev/api/paymentCards/v3" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"To retrieve only authorized user (subprofile) cards:
curl -X GET "https://api.banking.netevia.dev/api/paymentCards/v3?onlySubCards=true" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"