Hevn Inc Cards API
The Cards API from Hevn Inc — 28 operation(s) for cards.
The Cards API from Hevn Inc — 28 operation(s) for cards.
openapi: 3.1.0
info:
title: HEVN 2FA Cards API
description: Backend API for HEVN mobile neobank
version: 0.1.2
servers:
- url: https://api.hevn.finance
description: Production
tags:
- name: Cards
paths:
/api/v1/cards/pre-approve:
post:
tags:
- Cards
summary: Pre-approve card issuance
description: Check Wirex KYC prerequisites and return a verification URL if all required user fields are present.
operationId: pre_approve_cards_api_v1_cards_pre_approve_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardsPreApproveResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/register:
post:
tags:
- Cards
summary: Register user for card services
description: Register user with card provider. Required before issuing cards.
operationId: register_for_cards_api_v1_cards_register_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardUserRegisterRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Register For Cards Api V1 Cards Register Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/phone:
put:
tags:
- Cards
summary: Set phone number
description: Set user's phone number for verification.
operationId: set_phone_number_api_v1_cards_phone_put
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetPhoneRequest'
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/phone/otp:
post:
tags:
- Cards
summary: Send phone OTP
description: Send SMS OTP to verify phone number.
operationId: send_phone_otp_api_v1_cards_phone_otp_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SendOtpResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/phone/otp/verify:
post:
tags:
- Cards
summary: Verify phone OTP
description: Verify SMS OTP code and finalize phone number on the provider side.
operationId: verify_phone_otp_api_v1_cards_phone_otp_verify_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VerifyOtpRequest'
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/kyc/link:
post:
tags:
- Cards
summary: Get KYC verification link
description: Get link for user to complete KYC verification in browser.
operationId: get_kyc_link_api_v1_cards_kyc_link_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KycLinkResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards:
post:
tags:
- Cards
summary: Issue new card
description: Issue a new virtual or physical card. User must complete KYC first.
operationId: issue_card_api_v1_cards_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/IssueCardRequest'
- type: 'null'
title: Data
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Cards
summary: Get user's cards
description: Sync cards from Wirex and return the list.
operationId: get_cards_api_v1_cards_get
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardsListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/{card_id}:
get:
tags:
- Cards
summary: Get card by ID
description: Get single card details.
operationId: get_card_api_v1_cards__card_id__get
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Cards
summary: Delete card
description: Permanently delete (close) a card. This cannot be undone.
operationId: delete_card_api_v1_cards__card_id__delete
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/{card_id}/details:
post:
tags:
- Cards
summary: Reveal full card details
description: Get full card number (PAN), CVV and expiry. Requires wallet signature for confirmation.
operationId: reveal_card_api_v1_cards__card_id__details_post
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardRevealRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardDetailsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/{card_id}/freeze:
post:
tags:
- Cards
summary: Freeze card
description: Temporarily freeze a card. Can be unfrozen later.
operationId: freeze_card_api_v1_cards__card_id__freeze_post
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/{card_id}/unfreeze:
post:
tags:
- Cards
summary: Unfreeze card
description: Unfreeze a previously frozen card.
operationId: unfreeze_card_api_v1_cards__card_id__unfreeze_post
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/{card_id}/limit:
put:
tags:
- Cards
summary: Set card limit
description: Set daily spending limit for a card.
operationId: set_card_limit_api_v1_cards__card_id__limit_put
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetCardLimitRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/{card_id}/label:
put:
tags:
- Cards
summary: Set card label
description: Set or clear a user-defined label (nickname) for a card. Local-only, not sent to provider.
operationId: set_card_label_api_v1_cards__card_id__label_put
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetCardLabelRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/cards/withdrawals/pending:
get:
tags:
- Cards
summary: List pending card withdrawals
description: Proxy to Wirex `GET /api/v1/withdrawal/requests` — returns pending withdrawal requests for the authenticated user's card wallet. See https://docs.wirexapp.com/docs/withdrawals#querying-pending-withdrawals
operationId: get_pending_withdrawals_api_v1_cards_withdrawals_pending_get
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PendingWithdrawalsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/pre-approve:
post:
tags:
- Cards
summary: Pre-approve card issuance
description: Check Wirex KYC prerequisites and return a verification URL if all required user fields are present.
operationId: pre_approve_cards_package_alias_api_v1_accounts_cards_pre_approve_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardsPreApproveResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/register:
post:
tags:
- Cards
summary: Register user for card services
description: Register user with card provider. Required before issuing cards.
operationId: register_for_cards_package_alias_api_v1_accounts_cards_register_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardUserRegisterRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Register For Cards Package Alias Api V1 Accounts Cards Register Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/phone:
put:
tags:
- Cards
summary: Set phone number
description: Set user's phone number for verification.
operationId: set_phone_number_package_alias_api_v1_accounts_cards_phone_put
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetPhoneRequest'
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/phone/otp:
post:
tags:
- Cards
summary: Send phone OTP
description: Send SMS OTP to verify phone number.
operationId: send_phone_otp_package_alias_api_v1_accounts_cards_phone_otp_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SendOtpResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/phone/otp/verify:
post:
tags:
- Cards
summary: Verify phone OTP
description: Verify SMS OTP code and finalize phone number on the provider side.
operationId: verify_phone_otp_package_alias_api_v1_accounts_cards_phone_otp_verify_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VerifyOtpRequest'
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/kyc/link:
post:
tags:
- Cards
summary: Get KYC verification link
description: Get link for user to complete KYC verification in browser.
operationId: get_kyc_link_package_alias_api_v1_accounts_cards_kyc_link_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KycLinkResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards:
post:
tags:
- Cards
summary: Issue new card
description: Issue a new virtual or physical card. User must complete KYC first.
operationId: issue_card_package_alias_api_v1_accounts_cards_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/IssueCardRequest'
- type: 'null'
title: Data
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Cards
summary: Get user's cards
description: Sync cards from Wirex and return the list.
operationId: get_cards_package_alias_api_v1_accounts_cards_get
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardsListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/{card_id}:
get:
tags:
- Cards
summary: Get card by ID
description: Get single card details.
operationId: get_card_package_alias_api_v1_accounts_cards__card_id__get
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Cards
summary: Delete card
description: Permanently delete (close) a card. This cannot be undone.
operationId: delete_card_package_alias_api_v1_accounts_cards__card_id__delete
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/{card_id}/details:
post:
tags:
- Cards
summary: Reveal full card details
description: Get full card number (PAN), CVV and expiry. Requires wallet signature for confirmation.
operationId: reveal_card_package_alias_api_v1_accounts_cards__card_id__details_post
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardRevealRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardDetailsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/{card_id}/freeze:
post:
tags:
- Cards
summary: Freeze card
description: Temporarily freeze a card. Can be unfrozen later.
operationId: freeze_card_package_alias_api_v1_accounts_cards__card_id__freeze_post
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/{card_id}/unfreeze:
post:
tags:
- Cards
summary: Unfreeze card
description: Unfreeze a previously frozen card.
operationId: unfreeze_card_package_alias_api_v1_accounts_cards__card_id__unfreeze_post
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/{card_id}/limit:
put:
tags:
- Cards
summary: Set card limit
description: Set daily spending limit for a card.
operationId: set_card_limit_package_alias_api_v1_accounts_cards__card_id__limit_put
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetCardLimitRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/{card_id}/label:
put:
tags:
- Cards
summary: Set card label
description: Set or clear a user-defined label (nickname) for a card. Local-only, not sent to provider.
operationId: set_card_label_package_alias_api_v1_accounts_cards__card_id__label_put
security:
- HTTPBearer: []
parameters:
- name: card_id
in: path
required: true
schema:
type: string
title: Card Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetCardLabelRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/accounts/cards/withdrawals/pending:
get:
tags:
- Cards
summary: List pending card withdrawals
description: Proxy to Wirex `GET /api/v1/withdrawal/requests` — returns pending withdrawal requests for the authenticated user's card wallet. See https://docs.wirexapp.com/docs/withdrawals#querying-pending-withdrawals
operationId: get_pending_withdrawals_package_alias_api_v1_accounts_cards_withdrawals_pending_get
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PendingWithdrawalsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
SetCardLabelRequest:
properties:
label:
anyOf:
- type: string
maxLength: 64
- type: 'null'
title: Label
description: Label/nickname (null to clear)
type: object
title: SetCardLabelRequest
description: Request to set a user-defined card label.
PendingWithdrawal:
properties:
accountAddress:
anyOf:
- type: string
- type: 'null'
title: Accountaddress
tokenAddress:
anyOf:
- type: string
- type: 'null'
title: Tokenaddress
toAddress:
anyOf:
- type: string
- type: 'null'
title: Toaddress
amount:
anyOf:
- type: number
- type: 'null'
title: Amount
validAfter:
anyOf:
- type: string
- type: 'null'
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hevn-inc/refs/heads/main/openapi/hevn-inc-cards-api-openapi.yml