{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Cards"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"cards","__idx":0},"children":["Cards"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Cards API exposes the physical and virtual cards belonging to the business"," ","linked to your API Access Token. Both endpoints require the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cards:read"]}," scope."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Stable contract"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Cards API is part of the stable ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v1"]}," contract: additive-only, with breaking"," ","changes reserved for a new API version. See"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/v1/versioning"},"children":["Versioning and compatibility"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"list-cards","__idx":1},"children":["List cards"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/cards"]}," lists the business's physical and virtual cards."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://rhoapi.rho.co/api/v1/cards?page_size=20&type=virtual&status=active\" \\\n  -H \"Authorization: Bearer $RHO_API_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can filter by:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["user_id"]},": one or more cardholder user IDs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["physical"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["virtual"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},": one or more card lifecycle statuses"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Repeat a parameter to match any of its values. Different filters are combined,"," ","so a request with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type=virtual&status=active"]}," returns cards that match both."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An unfiltered list includes canceled and expired cards so their stable IDs can"," ","still be joined to historical transactions."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_size"]}," defaults to 20 and can be from 1 to 100. Pass the response's"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page.next_page_token"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_token"]}," to retrieve the next page. Omit"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_token"]}," for the first page. Page tokens belong to the API version that"," ","created them, so restart pagination when migrating from v0 to v1."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"cards\": [\n    {\n      \"id\": \"ab6aee43-3115-47bc-908f-a8c162b8fcee\",\n      \"name\": \"Travel card\",\n      \"last_4\": \"0742\",\n      \"type\": \"virtual\",\n      \"status\": \"active\",\n      \"cardholder\": {\n        \"user_id\": \"9e86b9fb-acde-4797-94e8-d10f84974e51\",\n        \"first_name\": \"Taylor\",\n        \"last_name\": \"Morgan\"\n      },\n      \"spending_limit\": {\n        \"amount\": 500000,\n        \"currency\": \"USD\"\n      },\n      \"spending_limit_type\": \"monthly\",\n      \"current_spend\": {\n        \"amount\": 124500,\n        \"currency\": \"USD\"\n      },\n      \"pending_spend\": {\n        \"amount\": 18500,\n        \"currency\": \"USD\"\n      },\n      \"spend_period_start\": \"2026-08-01T04:00:00Z\",\n      \"spend_period_end\": \"2026-09-01T04:00:00Z\",\n      \"usage_starts_at\": null,\n      \"usage_ends_at\": null,\n      \"billing_address\": {\n        \"street\": \"100 Crosby St\",\n        \"city\": \"New York\",\n        \"subdivision\": \"NY\",\n        \"postal_code\": \"10012\",\n        \"country_code\": \"US\"\n      },\n      \"shipping_address\": null,\n      \"blocked_categories\": [\n        {\n          \"code\": \"5812\",\n          \"name\": \"Eating Places and Restaurants\"\n        }\n      ],\n      \"blocked_merchants\": [\n        {\n          \"name\": \"Example Merchant\"\n        }\n      ]\n    }\n  ],\n  \"page\": {\n    \"next_page_token\": null\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Monetary ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," values use the currency's smallest unit, such as cents for"," ","USD. Limit, spend, and period fields are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," when the card has no spending"," ","limit, current spend is unavailable, or the period window could not be"," ","determined."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["High utilization means the next charge can decline. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["daily"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["weekly"]},","," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["monthly"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quarterly"]}," reset on Eastern Time (America/New_York) calendar"," ","boundaries. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["annual"]}," resets on the anniversary of when the limit took effect,"," ","not on a calendar boundary. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fixed"]}," is a lifetime ceiling that does not"," ","reset. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["single_use"]}," is spent after one use. Those two have no"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["spend_period_end"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchant controls use either the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blocked_*"]}," fields or the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowed_*"]}," fields,"," ","never both. Merchant categories contain an ISO 18245 merchant category code"," ","and its human-readable name when available. Merchant entries identify merchants"," ","by their human-readable name."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-a-card","__idx":2},"children":["Get a card"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/cards/{id}"]}," returns one card by its stable ID. It uses the same"," ","Card object as the list endpoint."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://rhoapi.rho.co/api/v1/cards/ab6aee43-3115-47bc-908f-a8c162b8fcee\" \\\n  -H \"Authorization: Bearer $RHO_API_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The endpoint returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," when the card does not exist or belongs to another"," ","business. Only the last four PAN digits are returned; full card numbers, CVCs,"," ","and expiration dates are not available through these endpoints."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"reference","__idx":3},"children":["Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full endpoint catalogue - paths, parameters, response shapes, and required"," ","scopes - lives in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api/v1/openapi/cards"},"children":["API Reference"]},"."]}]},"headings":[{"value":"Cards","id":"cards","depth":1},{"value":"List cards","id":"list-cards","depth":2},{"value":"Get a card","id":"get-a-card","depth":2},{"value":"Reference","id":"reference","depth":2}],"frontmatter":{"seo":{"title":"Cards"}},"lastModified":"2026-09-09T09:00:44.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/v1/cards","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}