Everest Card — API reference
  • Credit
  • Debit
  • Prepaid
  • Common Methods
  • OAuth2
  • Delivery
Information
Cards
    Card applications
      getPrepaidApplicationIdByFromShadowCardNumberpost
    Card issuance and personalisation
      createIndividualCardpostgetApplicableProductsByCustomerNumberpost
    Card lifecycle
      getPrepaidCardInfopostchangeAndReplaceCardpostchangeCardStatuspostreplaceCardpostgetCardListpost
    No-name cards
      createNoNameCardApplicationpostcancelNoNameCardApplicationpostupdateNoNameCardApplicationpostactivateNoNameCardpostcreateCardUsingNoNameApplicationpostreplaceNoNameCardpostreplaceCardUsingNoNameApplicationpostchangeAndReplaceNoNameCardpost
Customers and accounts
    Branch management
      changeCardBranchpostchangeCustomerBranchposttransferBranchCustomerpost
    Customers
      getCustomerAssetpostgetCustomerListOfBranchpost
Transactions
    getAuthorizationListByBegindateEnddatepostgetPddtransactionByCardrefCustomernumpostgetPrepaidTransactionAllpostgetPrepaidTransactionByUtidpostgetDigitalSlipReceiptpost
Limits and controls
    Operation limits
      getCardLimitationParameterDatapostgetCustomerOperationLimitpostgetCardOperationLimitpostsetCustomerOperationLimitpostsetCardOperationLimitpostremoveCustomerOperationLimitpostremoveCardOperationLimitpostgetCustomerLimitationParameterDatapost
    Permissions and restrictions
      getPrepaidCardPermissionpostsavePrepaidCardPermissionpost
Security
    PIN and card security
      changeCardPinpostchangeRsaPinpostgenerateCardVVpostincreasePinTryCountpostresetCvvCounterpostsetCardPinpostverifyTerminalCardPinpostverifyRsaPinpostverifyPartialCardVerificationValuepostverifyCardVerificationValuepostverifyCardPinpostsetRsaPinpostsetCardPinViaSMSpostgetCardPinOperationHistorypost
Platform
    Platform operations
      healthCheckpostrefreshCachepost
    Reference data
      getCardTypeByBinpost
SchemasError codesChannels
powered by Zudoku
Prepaid Digital Channels Integration
Prepaid Digital Channels Integration

PIN and card security

Set and change a PIN, manage the try counter, and generate or verify the card verification values.


changeCardPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/changeCardPin

Changes the PIN of a prepaid card.

changeCardPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

changeCardPin › Request Body

ChangeCardPinRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

The platform's own handle for a card, and the identifier most operations take. It is returned by every operation that creates a card and by the card listings; a caller does not compose one.

currentCardPin
​string · optional

Checked against the platform's Pin parameter rather than a fixed length, so it follows the tenant's configuration and can change without a release.

newCardPin
​string · optional

Checked against the platform's Pin parameter rather than a fixed length, so it follows the tenant's configuration and can change without a release.

changeCardPin › Responses

Success

ChangeCardPinResponse
encryptedPin
​string · optional

The PIN block as the key management service produced it. The PIN itself never travels.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/changeCardPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/changeCardPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "currentCardPin": "currentCardPin", "newCardPin": "newCardPin" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "currentCardPin": "currentCardPin", "newCardPin": "newCardPin" }
json
application/json
Example Responses
{ "encryptedPin": "encryptedPin" }
json
application/json

changeRsaPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/changeRsaPin

Changes the RSA PIN for a prepaid card.

changeRsaPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

changeRsaPin › Request Body

ChangeRsaPinRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

operationDate
​string · required

Optional — Not read by the service. The facade's mapping of this field is commented out, so what is sent never leaves this API. setRsaPin and verifyRsaPin both forward their own operationDate; this one is the exception, and the field is published on all three.

A date and time as a string, in RFC 3339 form: 2026-10-16T14:30:00Z, or with an offset, 2026-10-16T17:30:00+03:00.

Example: 2026-10-16T14:30:00Z
shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

currentEPB
​string · optional

Required in practice — The current PIN, as an encrypted block. Not validated here; the prepaid PIN service verifies it before the change is made, so a change is a verification and a set in one call.

Its size follows the block format and the key it was built with rather than a column.

newEPB
​string · optional

Required in practice — The encrypted PIN block. Not validated here — the facade forwards it to the prepaid PIN service, which is where the block is decrypted and the rules are applied. Neither this API nor that service is given a clear PIN on this path.

Its size follows the block format and the key it was built with rather than a column.

changeRsaPin › Responses

Changed, if success says so, and a false covers both a refusal and an unanswered call — as on setRsaPin.

The current PIN is verified as part of this, so a wrong currentEPB is subject to the same try counter that verifyRsaPin reports on.

ChangeRsaPinResponse
success
​boolean · required

Whether the operation did what it was asked to. A false here arrives with HTTP 200, so it has to be read rather than inferred from the status.

encryptedPin
​string · optional

The PIN block as the key management service produced it. The PIN itself never travels.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/changeRsaPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/changeRsaPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "currentEPB": "currentEPB", "newEPB": "newEPB", "operationDate": "2026-10-16T14:30:00Z" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "currentEPB": "currentEPB", "newEPB": "newEPB", "operationDate": "2026-10-16T14:30:00Z" }
json
application/json
Example Responses
{ "encryptedPin": "encryptedPin", "success": true }
json
application/json

generateCardVV

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/generateCardVV

Generates the card verification value (CVV) for a prepaid card.

generateCardVV › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

generateCardVV › Request Body

GenerateCardVVRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

generateCardVV › Responses

Not every failure is a 400. The generator reports several of its own — a key it cannot use, a value it cannot produce — by setting hasError with the reason in errorText, and the call still returns 200. Check hasError before reading verificationValue.

This one fails closed, where the rest of this API fails open. hasError defaults to true when the PIN service answers with nothing, so an unanswered call reads as an error rather than as a success — the opposite of the PIN verifications beside it.

GenerateCardVVResponse
hasError
​boolean · required
errorText
​string · optional

The error in words, for a log or a screen rather than for matching.

verificationValue
​string · optional

The card verification value. Computed and compared rather than stored, and returned only where the operation is entitled to it.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/generateCardVV
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/generateCardVV \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber" }
json
application/json
Example Responses
{ "hasError": true, "errorText": "errorText", "verificationValue": "verificationValue" }
json
application/json

increasePinTryCount

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/increasePinTryCount

Increases the PIN try count for a prepaid card.

increasePinTryCount › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

increasePinTryCount › Request Body

IncreasePinTryCountRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

increaseCount
​integer · int32 · required

Required in practice — How far to move the counter. The caller supplies the step — this is not a fixed increment of one, and nothing in this API bounds the value.

shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

increasePinTryCount › Responses

Moved. This operation returns no body: there is nothing to read but the status, and the resulting counter is not reported. Read it back with a verification or the PIN operation history if it matters.

Raising the counter past the card's limit is what blocks a card, so this is a write with a consequence rather than a diagnostic.

No data returned
POST/IntegrationDigitalChannelPrepaid/prepaid/api/increasePinTryCount
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/increasePinTryCount \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "increaseCount": 0 }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "increaseCount": 0 }
json
application/json
Example Responses
No example specified for this content type

resetCvvCounter

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/resetCvvCounter

Resets the CVV counter for a prepaid card.

resetCvvCounter › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

resetCvvCounter › Request Body

ResetCvvCounterRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

resetCvvCounter › Responses

Cleared. No body, as with the PIN counter.

The card verification value has its own counter, separate from the PIN's, and clearing it does not by itself lift a status a failed run of attempts put the card into. That is a status change, and it is changeCardStatus.

No data returned
POST/IntegrationDigitalChannelPrepaid/prepaid/api/resetCvvCounter
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/resetCvvCounter \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber" }
json
application/json
Example Responses
No example specified for this content type

setCardPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/setCardPin

Sets the PIN for a prepaid card.

setCardPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

setCardPin › Request Body

SetCardPinRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

clearPin
​string · optional

Required in practice — The PIN in the clear. Not validated here — it is forwarded to the prepaid PIN service, which applies the weak-PIN rules itself on this path rather than handing a list to the hardware security module. One rule, two paths; the encrypted path is setRsaPin.

Exactly four digits today, and the four is not in this contract: setCardPin hardcodes it while verifyCardPin and changeCardPin read it from the platform's Pin parameter, so a tenant that changes that parameter changes two of the three.

setCardPin › Responses

Set. The response carries the encrypted PIN and no success flag — unlike setRsaPin, this one has nothing to read as a result, so a refusal arrives as a failure rather than as a false.

Prefer setRsaPin where the channel can encrypt: this path puts a clear PIN in the request body.

SetCardPinResponse
encryptedPin
​string · optional

The PIN block as the key management service produced it. The PIN itself never travels.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/setCardPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/setCardPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "clearPin": "clearPin" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "clearPin": "clearPin" }
json
application/json
Example Responses
{ "encryptedPin": "encryptedPin" }
json
application/json

verifyTerminalCardPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/verifyTerminalCardPin

Verifies the terminal-supplied PIN for a prepaid card.

verifyTerminalCardPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

verifyTerminalCardPin › Request Body

VerifyTerminalCardPinRequest
clearCardNumber
​string · optional

A card number is not stored by these services; the platform keeps a shadow card number instead.

pinBlock
​string · optional

An encrypted PIN block; its size follows the block format rather than a column.

Its size follows the block format rather than a column.

zpk
​string · optional

A key the block travels under; its size is the key's.

tpk
​string · optional

A key the block travels under; its size is the key's.

pinBlockFormat
​string · optional

Names the block format rather than carrying data of its own.

verifyTerminalCardPin › Responses

Not implemented. The facade for this operation throws rather than doing anything. It is published because it is declared on the service contract, not because it works.

Verifying a prepaid PIN today is verifyRsaPin, or verifyCardPin where the channel cannot encrypt.

VerifyTerminalCardPinResponse
verified
​boolean · required

Whether the value presented matched the one held.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/verifyTerminalCardPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/verifyTerminalCardPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "clearCardNumber": "clearCardNumber", "pinBlock": "pinBlock", "zpk": "zpk", "tpk": "tpk", "pinBlockFormat": "pinBlockFormat" }'
Example Request Body
{ "clearCardNumber": "clearCardNumber", "pinBlock": "pinBlock", "zpk": "zpk", "tpk": "tpk", "pinBlockFormat": "pinBlockFormat" }
json
application/json
Example Responses
{ "verified": true }
json
application/json

verifyRsaPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/verifyRsaPin

Verifies the RSA PIN for a prepaid card.

verifyRsaPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

verifyRsaPin › Request Body

VerifyRsaPinRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

operationDate
​string · required

Required in practice — The date the PIN block was produced under. The block and this date are verified as a pair.

A date and time as a string, in RFC 3339 form: 2026-10-16T14:30:00Z, or with an offset, 2026-10-16T17:30:00+03:00.

Example: 2026-10-16T14:30:00Z
shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

ePB
​string · optional

Required in practice — The encrypted PIN block. Not validated here — the facade forwards it to the prepaid PIN service, which is where the block is decrypted and the rules are applied. Neither this API nor that service is given a clear PIN on this path.

Its size follows the block format and the key it was built with rather than a column, so no length is published.

verifyRsaPin › Responses

A verification, and it can change the card. The response carries verified, the attempts remaining in lastTryCount and whether the limit was passed in tryCountExceed — and a wrong PIN that reaches the limit moves the card to a blocked status. An operation that reads like a query is one that writes.

An unanswered call still returns a filled body. The facade defaults every field of the response, so a PIN service that answers with nothing produces verified: false, tryCountExceed: false and lastTryCount: 0 — which is indistinguishable from a wrong PIN on a card whose counter has just been cleared. Treat a zero counter beside a false verification as a result to confirm rather than one to act on.

There is no static-salt variant on this programme. Credit publishes verifyRsaPinWithStaticSalt; the prepaid facade's equivalent is commented out in full, which is why no such path is published here.

VerifyRsaPinResponse
verified
​boolean · required

Whether the value presented matched the one held.

lastTryCount
​integer · int32 · required

How many failed attempts stand against the card.

tryCountExceed
​boolean · required

Whether the card has run out of attempts. The card is blocked when it has.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/verifyRsaPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/verifyRsaPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "ePB": "ePB", "operationDate": "2026-10-16T14:30:00Z" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "ePB": "ePB", "operationDate": "2026-10-16T14:30:00Z" }
json
application/json
Example Responses
{ "verified": true, "lastTryCount": 0, "tryCountExceed": true }
json
application/json

verifyPartialCardVerificationValue

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/verifyPartialCardVerificationValue

Partially verifies the card verification value (CVV) of a prepaid card.

verifyPartialCardVerificationValue › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

verifyPartialCardVerificationValue › Request Body

VerifyPartialCardVerificationValueRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

digits
​array · optional

Required in practice — The digits to check, as a list of pairs. Which half of a pair is the position and which is the digit is the prepaid PIN service's decision, and that service has not been read for this document — so the pairing is stated here as unknown rather than guessed. The facade forwards the list untouched.

verifyPartialCardVerificationValue › Responses

Checked, and the answer is verified alone — no counter and no limit flag, unlike the full verification beside it. Whether a partial check moves the counter is the PIN service's behaviour and is not visible from here.

VerifyPartialCardVerificationValueResponse
verified
​boolean · required

Whether the value presented matched the one held.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/verifyPartialCardVerificationValue
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/verifyPartialCardVerificationValue \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "digits": [ {} ] }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "digits": [ {} ] }
json
application/json
Example Responses
{ "verified": true }
json
application/json

verifyCardVerificationValue

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/verifyCardVerificationValue

Verifies the card verification value (CVV) of a prepaid card.

verifyCardVerificationValue › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

verifyCardVerificationValue › Request Body

VerifyCardVerificationValueRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

verificationValue
​string · optional

Required in practice — The value to check, in the clear. Forwarded untouched; nothing here checks its length or shape.

A verification value is computed and compared rather than stored, so no column stands behind it.

verifyCardVerificationValue › Responses

Checked, against the card verification value's own counter — separate from the PIN's, with its own maximum, and reported in the same three fields. resetCvvCounter is what clears it.

VerifyCardVerificationValueResponse
verified
​boolean · required

Whether the value presented matched the one held.

lastTryCount
​integer · int32 · required

How many failed attempts stand against the card.

tryCountExceed
​boolean · required

Whether the card has run out of attempts. The card is blocked when it has.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/verifyCardVerificationValue
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/verifyCardVerificationValue \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "verificationValue": "verificationValue" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "verificationValue": "verificationValue" }
json
application/json
Example Responses
{ "verified": true, "lastTryCount": 0, "tryCountExceed": true }
json
application/json

verifyCardPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/verifyCardPin

Verifies the PIN of a prepaid card.

verifyCardPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

verifyCardPin › Request Body

VerifyCardPinRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

shadowCardNumber
​string · maxLength: 19 · optional

One-of — The card to verify against. Send this or clearCardNumber: when this is empty the PAN is resolved to a shadow card number through the customer service first.

clearCardNumber
​string · optional

One-of — The card's PAN, used only when shadowCardNumber is empty. It is resolved to a shadow card number and the verification runs against that.

A card number is not stored by these services; the platform keeps a shadow card number instead.

clearPin
​string · optional

Required in practice — The PIN to verify, in the clear. Forwarded untouched; verifyRsaPin is the encrypted equivalent.

Exactly four digits today, and the four is not in this contract: setCardPin hardcodes it while verifyCardPin and changeCardPin read it from the platform's Pin parameter, so a tenant that changes that parameter changes two of the three.

verifyCardPin › Responses

A verification, and it can change the card — the same counter and the same blocking as verifyRsaPin, reported in the same three fields.

An unanswered call still returns a filled body. The facade defaults every field of the response, so a PIN service that answers with nothing produces verified: false, tryCountExceed: false and lastTryCount: 0 — which is indistinguishable from a wrong PIN on a card whose counter has just been cleared. Treat a zero counter beside a false verification as a result to confirm rather than one to act on.

VerifyCardPinResponse
verified
​boolean · required

Whether the value presented matched the one held.

lastTryCount
​integer · int32 · required

How many failed attempts stand against the card.

tryCountExceed
​boolean · required

Whether the card has run out of attempts. The card is blocked when it has.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/verifyCardPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/verifyCardPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "clearCardNumber": "clearCardNumber", "clearPin": "clearPin" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "clearCardNumber": "clearCardNumber", "clearPin": "clearPin" }
json
application/json
Example Responses
{ "verified": true, "lastTryCount": 0, "tryCountExceed": true }
json
application/json

setRsaPin

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/setRsaPin

Sets the RSA PIN for a prepaid card.

setRsaPin › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

setRsaPin › Request Body

SetRsaPinRequest
channel
​string · maxLength: 3 · required

Three-digit code identifying the channel on behalf of which the request is made (e.g. 002 for Internet). Mandatory in every request. Used for entitlement checks, limit enforcement and audit logging. Channel codes are managed through configuration parameters and may change over time. Refer to the Channels page for the current list of valid codes.

operationDate
​string · required

Required in practice — The date the PIN block was produced under. Forwarded with the block; the two are read as a pair. changeRsaPin publishes this field and does not forward it.

A date and time as a string, in RFC 3339 form: 2026-10-16T14:30:00Z, or with an offset, 2026-10-16T17:30:00+03:00.

Example: 2026-10-16T14:30:00Z
shadowCardNumber
​string · maxLength: 19 · optional

Required in practice — The card the operation acts on, by its shadow card number — the platform's own reference, not the PAN. Not validated here; an absent or unknown value is refused by the prepaid PIN service in its own vocabulary.

ePB
​string · optional

Required in practice — The encrypted PIN block. Not validated here — the facade forwards it to the prepaid PIN service, which is where the block is decrypted and the rules are applied. Neither this API nor that service is given a clear PIN on this path.

Its size follows the block format and the key it was built with rather than a column, so no length is published.

setRsaPin › Responses

Set, if success says so. The result is a flag rather than a status code: read success before treating the PIN as established.

A false here is not only a refusal. The facade defaults the flag to false when the PIN service answers with nothing, so success: false covers both a rule the PIN service applied and no answer at all, and the two look identical from here.

The weak-PIN rules this is subject to are the platform's, not this API's, and are the same on every programme — a list built from the cardholder's own data and checked in the hardware security module. They are stated once on the PIN capability page rather than repeated per operation.

SetRsaPinResponse
success
​boolean · required

Whether the operation did what it was asked to. A false here arrives with HTTP 200, so it has to be read rather than inferred from the status.

encryptedPin
​string · optional

The PIN block as the key management service produced it. The PIN itself never travels.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/setRsaPin
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/setRsaPin \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "ePB": "ePB", "operationDate": "2026-10-16T14:30:00Z" }'
Example Request Body
{ "channel": "channel", "shadowCardNumber": "shadowCardNumber", "ePB": "ePB", "operationDate": "2026-10-16T14:30:00Z" }
json
application/json
Example Responses
{ "encryptedPin": "encryptedPin", "success": true }
json
application/json

setCardPinViaSMS

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/setCardPinViaSMS

Sets the PIN for a prepaid card via SMS.

setCardPinViaSMS › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

setCardPinViaSMS › Request Body

SetCardPinViaSMSRequest
mobilePhoneNumber
​string · optional

Handed to the SMS service rather than stored here. The platform prefixes 90 when it is given ten digits, which is the shape to send; it is not a maximum.

cardNumberLastSixDigits
​string · optional

The first six digits of a card number, which is not itself stored by these services.

cVVLastTwoDigits
​string · optional

Two digits of a verification value, which is never stored.

clearPin
​string · optional

Exactly four digits today, and the four is not in this contract: setCardPin hardcodes it while verifyCardPin and changeCardPin read it from the platform's Pin parameter, so a tenant that changes that parameter changes two of the three.

setCardPinViaSMS › Responses

Not implemented. The facade for this operation throws rather than doing anything, with a note in the source saying the PIN management side is still to be built. It is published because it is declared on the service contract, not because it works.

Setting a prepaid PIN today is setRsaPin, or setCardPin where the channel cannot encrypt. Core banking publishes isSetCardPinViaSMSControl, which answers whether the SMS route is permitted — it does not make this one work.

SetCardPinViaSMSResponse
success
​boolean · required

Whether the operation did what it was asked to. A false here arrives with HTTP 200, so it has to be read rather than inferred from the status.

errorCode
​integer · int32 · required

The platform's own code for the error, and what to match on.

customerNumber
​integer · int64 · required

The customer at the bank's core banking system, as a number. The platform stores it rather than issuing it, so it comes from the core.

errorText
​string · optional

The error in words, for a log or a screen rather than for matching.

shadowCardNumber
​string · optional

The platform's own handle for a card, and the identifier most operations take. It is returned by every operation that creates a card and by the card listings; a caller does not compose one.

cardRefNumber
​string · optional

The card reference, which identifies one issued card including its renewals. Returned by the create and listing operations alongside the shadow number.

POST/IntegrationDigitalChannelPrepaid/prepaid/api/setCardPinViaSMS
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/setCardPinViaSMS \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "mobilePhoneNumber": "mobilePhoneNumber", "cardNumberLastSixDigits": "cardNumberLastSixDigits", "cVVLastTwoDigits": "cVVLastTwoDigits", "clearPin": "clearPin" }'
Example Request Body
{ "mobilePhoneNumber": "mobilePhoneNumber", "cardNumberLastSixDigits": "cardNumberLastSixDigits", "cVVLastTwoDigits": "cVVLastTwoDigits", "clearPin": "clearPin" }
json
application/json
Example Responses
{ "success": true, "errorCode": 0, "errorText": "errorText", "customerNumber": 0, "shadowCardNumber": "shadowCardNumber", "cardRefNumber": "cardRefNumber" }
json
application/json

getCardPinOperationHistory

POST
https://sandboxpub.cms.dgpays.com/SandBox
/IntegrationDigitalChannelPrepaid/prepaid/api/getCardPinOperationHistory

Retrieves the PIN operation history for a prepaid card.

getCardPinOperationHistory › Headers

evrst-ptrnid
​string

Correlation id for this request. Echo it in your own logs to trace the call through the platform.

Default: x_request_id

getCardPinOperationHistory › Request Body

GetCardPinOperationHistoryRequest
shadowCardNumber
​string · maxLength: 19 · optional

The platform's own handle for a card, and the identifier most operations take. It is returned by every operation that creates a card and by the card listings; a caller does not compose one.

getCardPinOperationHistory › Responses

Success

GetCardPinOperationHistoryResponse
​array · optional
POST/IntegrationDigitalChannelPrepaid/prepaid/api/getCardPinOperationHistory
curl https://sandboxpub.cms.dgpays.com/SandBox/IntegrationDigitalChannelPrepaid/prepaid/api/getCardPinOperationHistory \ --request POST \ --header 'Content-Type: application/json' \ --header 'evrst-ptrnid: x_request_id' \ --header 'Authorization: Bearer <access_token>' \ --data '{ "shadowCardNumber": "shadowCardNumber" }'
Example Request Body
{ "shadowCardNumber": "shadowCardNumber" }
json
application/json
Example Responses
{ "getCardPinOperationHistoryList": [ { "channelType": "channelType", "insertDate": "2026-10-16T14:30:00Z", "operationResult": "operationResult", "operationResultDescription": "operationResultDescription", "operationType": "operationType", "operationTypeDescription": "operationTypeDescription" } ] }
json
application/json

Permissions and restrictionsPlatform operations