Skip to main content

Cards

You can create virtual cards associated with your organization. These cards can be single-use or multi-use and can be restricted by merchant category code, currency, and transactioYn amount.

Create Cardholder​

POST {{baseUrl}}/roecny/api/v1/cardholder

Description

Cardholders are authorized representatives of your business. Two types of cardholders are permitted: Individual and Delegate.

INDIVIDUAL: A cardholder who is a named representative of your business. They can be issued either personalized or non-personalized cards.
DELEGATE: A cardholder assigned only to non-personalized cards. They act as authorized users on behalf of your business. Cards issued to delegate cardholders will be associated with the name of your business.

Creating a cardholder requires passing a name screening process, which involves submitting basic information about the cardholder.
This endpoint allows you to create a new cardholder by providing details such as personal information, address, and identification documents. The cardholder can be either an individual or a business entity.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Request Body Parameters

ParameterTypeRequiredDescription
typestringYesType of cardholder (must be "INDIVIDUAL" or "DELEGATE")
emailstringYesCardholder's email address (must be valid format)
mobile_numberstringNoCardholder's mobile number
individualobjectYesRequired individual details
individual.nameobjectYesFirst and last name
individual.name.first_namestringYesFirst name
individual.name.last_namestringYesLast name
individual.date_of_birthstringYesDate of birth (format not specified)
individual.addressobjectYesPhysical address
individual.address.citystringYesCity
individual.address.countrystringYesCountry
individual.address.line1stringYesAddress line 1
individual.address.statestringYesState
individual.address.postcodestringYesPostal code
individual.identificationobjectNoID document details
individual.identification.countrystringNoID issuing country
individual.identification.expiry_datestringNoID expiry date
individual.identification.numberstringNoMay be a license number or passport number
individual.identification.typestringNoID type
individual.express_consent_obtainedstringNoDefaults to "YES"
postal_addressobjectNoMailing address (if different)
postal_address.citystringYes if presentCity
postal_address.countrystringYes if presentCountry
postal_address.line1stringYes if presentAddress line 1
postal_address.statestringYes if presentState
postal_address.postcodestringYes if presentPostal code
created_bystringYesCreator identifier

Request Example

curl --request POST \
--url {{baseUrl}}/roecny/api/v1/cardHolders \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data '{
"email": "test+7f8a9b23@example.com",
"individual": {
"date_of_birth": "1982-11-02",
"express_consent_obtained": "yes",
"identification": {
"country": "US",
"expiry_date": "2030-08-28",
"number": "001238243",
"type": "ID_CARD"
},
"name": {
"first_name": "John",
"last_name": "Doe"
},
"address": {
"city": "Los Angeles",
"country": "US",
"line1": "1234 Maple Street",
"state": "CA",
"postcode": "90001"
}
},
"mobile_number": "91-95053039",
"postal_address": {
"city": "Los Angeles",
"country": "US",
"line1": "1234 Maple Street",
"state": "CA",
"postcode": "90001"
},
"type": "INDIVIDUAL"
}'

Response Example

{
"code": 200,
"status": "success",
"message": "",
"data": {
"id": "1e301167-ff1a-4a4e-bf2a-d2f84e144b03"
}
}

Create Card​

This API creates a new card for a cardholder in the system.

POST {{baseUrl}}/roecny/api/v1/card

Description

The card object represents the resource associated with a card issued by Roecny. It contains details such as the linked account, embossed name (for physical cards), shipping method and information (for physical cards), and card-based spend controls (e.g., transaction limits, blocked merchant category codes, etc.). The card object also specifies the intended user (e.g., clients, customers, or employees), the form factor (physical or virtual), and the usage type (single-use or multi-use).

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringNoBearer token
Content-TypestringYesMust be application/json

Request Body Parameters

ParameterTypeRequiredDescription
card_issuance_actionstringYesCard issuance type (NEW, REPLACEMENT)
card_typestringYesCard type (GPR_PHY, GPR_VIR)
card_holder_idstringYesID of the cardholder
issuance_modestringYesPHYSICAL or VIRTUAL
created_bystringYesID of the user who created the request
request_idstringYesUnique ID for idempotency
programobjectYesProgram details
program.purposestringYesPurpose of the card (COMMERCIAL, CONSUMER)
program.typestringYesType of the card (DEBIT, CREDIT)
program.sub_typestringYesCard sub-type (B2B_TRAVEL, etc.)
authorization_controlsobjectYesTransaction control configurations
authorization_controls.allowed_transaction_countstringYesSINGLE or MULTIPLE
authorization_controls.transaction_limitsobjectYesTransaction limits configuration
authorization_controls.transaction_limits.currencystringYesCurrency for the transaction limits (USD, etc.)
authorization_controls.transaction_limits.limitsarrayYesList of limit objects
authorization_controls.transaction_limits.limits[].amountintegerYesTransaction limit amount (> 0)
authorization_controls.transaction_limits.limits[].intervalstringYesInterval (PER_TRANSACTION, DAILY, WEEKLY, MONTHLY, ALL_TIME)
is_personalizedbooleanYesWhether the card is personalized

Request Example

curl --request POST \
--url {{baseUrl}}/roecny/api/v1/card \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data '{
"card_issuance_action": "NEW",
"card_type": "GPR_PHY",
"card_holder_id": "",
"issuance_mode": "NORMAL_DELIVERY_LOCAL",
"created_by": "Postman Test",
"request_id": "56789987654567",
"program": {
"purpose": "COMMERCIAL",
"type": "DEBIT",
"sub_type": "B2B_TRAVEL"
},
"authorization_controls": {
"allowed_transaction_count": "MULTIPLE",
"transaction_limits": {
"currency": "USD",
"limits": [
{
"amount": 10000,
"interval": "PER_TRANSACTION"
}
]
}
},
"is_personalized": false
}'

Response Example

{
"code": 200,
"status": "success",
"message": "",
"data": {
"id": "1e301167-ff1a-4a4e-bf2a-d2f84e144b03"
}
}

Get All Cards​

This API retrieves a list of all cards associated with the authenticated user.

    GET {{baseUrl}}/roecny/api/v1/card

Description

This endpoint returns a list of all cards (both physical and virtual) associated with the authenticated user. The response includes key card attributes such as card status, masked number, type, associated cardholder ID, and timestamps for creation and updates. Used to retrieve and display a user’s active or inactive cards for review, management, or filtering by type or status in customer portals, dashboards.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Query Parameters

ParameterTypeRequiredDescription
statusstringNoFilter by card status (ACTIVE, INACTIVE)
card_typestringNoFilter by card type (PHY, VIRTUAL)
limitintegerNoNumber of results per page (default: 20)
offsetintegerNoPagination offset (default: 0)

Response Parameters

ParameterTypeDescription
codeintegerResponse status code
statusstringResponse status
messagestringAdditional message
dataarrayArray of card objects
data[].cardHashIdstringUnique card identifier
data[].cardStatusstringCard status (ACTIVE/INACTIVE)
data[].maskedCardNumberstringMasked card number
data[].cardholderIdstringAssociated cardholder ID
data[].createdAtstringCreation timestamp (ISO 8601 format)
data[].updatedAtstringLast update timestamp (ISO 8601 format)
data[].nameOnCardstringName printed on the card
data[].cardTypestringCard type (PHY/VIRTUAL)
data[].currencystringCard currency code

Request Example

curl --request GET \
--url '{{baseUrl}}/roecny/api/v1/card?status=ACTIVE&card_type=VIRTUAL' \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}'

Response Example

{
"code": 200,
"status": "success",
"message": "",
"data": [
{
"cardHashId": "b3153738-901a-4cef-8883-d2d1379089db",
"cardStatus": "ACTIVE",
"maskedCardNumber": "************4639",
"cardholderId": "757b4368-329f-4780-8881-a1a6da4219f3",
"createdAt": "2025-04-02T07:36:56.973+0000",
"updatedAt": "2025-04-23T05:45:12.422+0000",
"nameOnCard": "Postman Test",
"cardType": "VIRTUAL",
"currency": "USD"
},
{
"cardHashId": "7067f945-5a48-4164-b8e8-92f8e420c907",
"cardStatus": "INACTIVE",
"maskedCardNumber": "************6886",
"cardholderId": "692a9a23-2175-4311-b83f-da3e8f088279",
"createdAt": "2025-03-31T08:02:20.000+0000",
"updatedAt": "2025-03-31T08:02:20.000+0000",
"nameOnCard": "demoroecny",
"cardType": "PHY",
"currency": "SGD"
}
]
}

Activate Card​

This API activates an inactive card in the system.


POST {{baseUrl}}/roecny/api/v1/card/activate

Description

This endpoint activates a specific card (physical or virtual) associated with the user by updating its status to ACTIVE. Activation typically requires the card’s unique identifier and any necessary verification parameters, depending on the program’s setup. Used when a new card is issued and needs to be activated by the user before use. This is typically triggered via a user action in a web portal to begin using the card for transactions.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Request Body Parameters

ParameterTypeRequiredDescription
idstringYesUnique identifier of the card to activate

Request Example

curl --request POST \
--url {{baseUrl}}/roecny/api/v1/card/activate \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data '{
"id": "card_1234567890abcdef"
}'

Response Example

{
"code": 200,
"status": "success",
"message": "card activated successfully"
}

Update Card​

This API updates card details including authorization controls and status.


PATCH {{baseUrl}}/roecny/api/v1/card

Description

This endpoint updates attributes of an existing card, such as its status (e.g., block, unblock), name on the card, or other modifiable fields, depending on the program’s permissions. Only specified fields are updated. Used to perform updates on a card post-issuance—for example, blocking a card due to suspicious activity, unblocking upon user request, or correcting cardholder details

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Request Body Parameters

ParameterTypeRequiredDescription
idstringYesCard ID to update
card_statusstringNoCard status — must be one of ACTIVE, INACTIVE, CLOSED
currencystringNoCurrency for the card (e.g., USD, EUR)
transaction_limitsarray of objectsNoList of transaction limits
transaction_limits[].typestringYes (if present)Type of limit — one of PER_TRANSACTION, DAILY, WEEKLY, MONTHLY, ALL_TIME
transaction_limits[].valueintegerYes (if present)Numerical value of the limit

Request Example

curl --request PATCH \
--url {{baseUrl}}/roecny/api/v1/card \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data '{
"id": "card_1234567890abcdef",
"currency": "USD",
"transaction_limits": [
{
"type": "ALL_TIME",
"value": 20000
}
],
"card_status": "INACTIVE"
}'

Response Example

{
"code": 200,
"status": "success",
"message": "card updated successfully"
}

Update a cardholder​

This API updates card holder details including address and contact information.

PATCH {{baseUrl}}/roecny/api/v1/cardHolder

Description

This endpoint updates card holder information including physical address, postal address, and contact details.Update a cardholder with selected information. All fields are optional, and only those provided will be updated. If a composite object, e.g. name is provided, then all of its child fields must be provided and valid. Updating the cardholder may re-trigger the name screening process.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Request Body Parameters

ParameterTypeRequiredDescription
idstringYesCard holder ID to update
individualobjectNoIndividual details
individual.addressobjectNoPhysical address
mobile_numberstringNoUpdated mobile number
postal_addressobjectNoMailing address

Request Example

curl --request PATCH \
--url {{baseUrl}}/roecny/api/v1/cardHolders \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data '{
"id": "1e301167-ff1a-4a4e-bf2a-d2f84e144b03",
"individual": {
"address": {
"city": "Austin",
"country": "US",
"line1": "1234 Elm Street",
"state": "TX",
"postcode": "94932"
}
},
"mobile_number": "91-95053039",
"postal_address": {
"city": "Los Angeles",
"country": "US",
"line1": "5678 Oak Avenue",
"state": "CA",
"postcode": "94932"
}
}'

Response Example

{
"code": 200,
"status": "success",
"message": ""
}

Get Card Limit​

This API retrieves the current transaction limits and other relevant details for a specific card.


GET {{baseUrl}}/roecny/api/v1/card/limit

Description

This endpoint returns the current transaction limits and remaining amounts for a specific card, including both purchase and cash withdrawal limits.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Query Parameters

ParameterTypeRequiredDescription
idstringYesCard ID to retrieve limits for
currencystringNoFilter by specific currency

Request Example

curl --request GET \
--url '{{baseUrl}}/roecny/api/v1/card/limit?id=card_1234567890abcdef&currency=USD' \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}'

Response Example

{
"code": 200,
"status": "success",
"message": "",
"data": {
"cash_withdrawal_limits": [
{
"amount": 1000,
"interval": "PER_TRANSACTION",
"remaining": 1000
}
],
"currency": "USD",
"limits": [
{
"amount": 1000,
"interval": "PER_TRANSACTION",
"remaining": 1000
}
]
}
}

Get Card Transactions​

This API retrieves transaction history for a specific card.


GET {{baseUrl}}/roecny/api/v1/card/transaction

Description

This endpoint returns a paginated list of transactions for a specific card, including detailed merchant information, transaction amounts, and status.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Request Body Parameters

ParameterTypeRequiredDescription
idstringYesCard ID to retrieve transactions for
limitintegerNoNumber of transactions to return (default: 20)
offsetintegerNoPagination offset (default: 0)
start_datestringNoFilter transactions from this date (YYYY-MM-DD)
end_datestringNoFilter transactions to this date (YYYY-MM-DD)
statusstringNoFilter by transaction status (APPROVED, DECLINED, etc.)

Request Example

curl --request GET \
--url {{baseUrl}}/roecny/api/v1/cardHolders \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{YOUR_TOKEN}}' \
--data '{
"id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",
"limit": 20,
"offset": 0,
"start_date": "2023-01-01",
"end_date": "2023-12-31",
"status": "APPROVED"
}'

Response Example

{
"code": 200,
"status": "success",
"message": "",
"data": {
"has_more": true,
"items": [
{
"acquiring_institution_identifier": "123456",
"auth_code": "000001",
"billing_amount": 100,
"billing_currency": "USD",
"card_id": "7f687fe6-dcf4-4462-92fa-80335301d9d2",
"card_nickname": "string",
"client_data": "Some client data",
"digital_wallet_token_id": "2af871b8-466e-465e-a8de-eeaac9f82392",
"failure_reason": "INSUFFICIENT_FUNDS",
"lifecycle_id": "95ede192-3a86-461e-96d9-f51b55aae79e",
"masked_card_number": "************4242",
"matched_authorizations": [
"6c2dc266-09ad-4235-b61a-767c7cd6d6ea"
],
"merchant": {
"category_code": "4829",
"city": "San Francisco",
"country": "USA",
"identifier": "012345678910123",
"name": "Merchant A",
"postcode": "94111",
"state": "CA"
},
"network_transaction_id": "3951729271768745",
"posted_date": "2018-03-22T16:08:02+00:00",
"retrieval_ref": "909916088001",
"risk_details": {
"risk_actions_performed": [
"TRANSACTION_BLOCKED"
],
"risk_factors": [
"Suspicious transaction velocity"
],
"three_dsecure_outcome": "AUTHENTICATED"
},
"status": "APPROVED",
"transaction_amount": 100,
"transaction_currency": "USD",
"transaction_date": "2018-03-21T16:08:02+00:00",
"transaction_id": "6c2dc266-09ad-4235-b61a-767c7cd6d6ea",
"transaction_type": "REFUND"
}
]
}
}

Get Card Details​

This API retrieves sensitive card details including card number, CVV, and expiration information.

GET {{baseUrl}}/roecny/api/v1/card/detail

Description

This endpoint returns sensitive card details that are typically masked in other endpoints. Requires appropriate permissions.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Roecny
x-program-idstringYesProgram identifier
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesMust be application/json

Query Parameters

ParameterTypeRequiredDescription
idstringYesCard ID to retrieve details for

Request Example

curl --request GET \
--url '{{baseUrl}}/roecny/api/v1/card/detail?id=card_1234567890abcdef' \
--header 'x-api-key: {{Shared Xapikey By Roecny}}' \
--header 'x-program-id: {{BasedOnRequirement}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{Useridentificationkey}}' \
--header 'Authorization: Bearer {{YOUR_TOKEN}
}'

Response Example

{
"code": 200,
"status": "success",
"message": "",
"data": [
{
"card_number": "4503060009834639",
"cvv": "653",
"expiry_month": 4,
"expiry_year": 2028,
"name_on_card": "demoroecny"
}
]
}