UPP Docs
Card

List card products

GET
/card-products

Card products the merchant can apply for. Use id as card_product_id in POST /cardholders and POST /card-applications.

Products with requires_cardholder: true need a cardholder first. The information to submit is defined by cardholder_fields and differs by product (some require monthly income, for example); the customer must have an approved verification of the cardholder_verification_usage usage.

When the product has requirements (cardholder_requirement_id or application_requirement_id is not null), dropdown options are not returned with the product: fetch them from the field's options_url. If the field has a parent_field, pass the parent field's name and value as query parameters (cities by the selected country, for example). A field is required when its required_when condition holds. If the issuer's conditions are not met (for example, the customer needs an approved basic verification), registering the cardholder returns 422.

Name, description, feature switches (features), pricing (pricing) and application conditions are configured per merchant by UPP. When features.issue is false you cannot apply for cards. Pricing is currently for display only and is not charged.

Authorization

merchantApiKeymerchantTimestampmerchantNoncemerchantSignature
headerX-API-KEY<token>

Merchant API key (starts with upk_, also accepts api-key); signing headers are also required

headerX-Timestamp<token>

Unix timestamp in seconds, within 300 seconds of server time

headerX-Nonce<token>

Unique per request; cannot be reused with the same credential during the timestamp validity window

headerX-Signature<token>

Hex HMAC-SHA256 signature (either letter case) of the method, full path, timestamp, nonce and body digest

Response Body

Card products

application/json
  1. response
data*array<>
Example Request
curl -X GET 'https://sandbox.getupp.net/api/v1/card-products'
Example Response
{  "data": [    {      "id": "cpd_01JBXA3M6N8Q2R4T6V8W0Y2Z4C",      "name": "Fake direct",      "description": null,      "currency": null,      "initial_funding": {        "min": null,        "max": null      },      "features": {        "issue": true,        "freeze": true,        "terminate": true,        "top_up": true,        "withdraw": true      },      "pricing": {        "issue_fee": null,        "top_up_fee_rate": null,        "top_up_fee_fixed": null,        "withdraw_fee_rate": null,        "withdraw_fee_fixed": null      },      "limits": {        "top_up": {          "min": null,          "max": null        },        "withdraw": {          "min": null,          "max": null        }      },      "requires_cardholder": false,      "cardholder_verification_usage": null,      "cardholder_requirement_id": null,      "cardholder_fields": [],      "application_requirement_id": null,      "application_fields": []    },    {      "id": "cpd_01JBXA3M6N8Q2R4T6V8W0Y2Z4H",      "name": "Visa 446602",      "description": "Virtual Visa card for online spending",      "currency": "USD",      "initial_funding": {        "min": "10",        "max": "1000000"      },      "features": {        "issue": true,        "freeze": false,        "terminate": true,        "top_up": true,        "withdraw": true      },      "pricing": {        "issue_fee": "2.50",        "top_up_fee_rate": "1.5",        "top_up_fee_fixed": null,        "withdraw_fee_rate": null,        "withdraw_fee_fixed": null      },      "limits": {        "top_up": {          "min": "10",          "max": "5000"        },        "withdraw": {          "min": "5",          "max": null        }      },      "requires_cardholder": true,      "cardholder_verification_usage": "basic",      "cardholder_requirement_id": null,      "cardholder_fields": [        {          "field": "email",          "label": "Email",          "type": "email",          "required": true,          "options": null,          "description": "Receives verification codes. Must be unique for this card type."        },        {          "field": "area_code",          "label": "Mobile area code",          "type": "text",          "required": true,          "options": [            {              "value": "+61"            },            {              "value": "+880"            },            {              "value": "+855"            }          ],          "description": "Use the international format, e.g. +60."        }      ],      "application_requirement_id": null,      "application_fields": []    }  ]}