---
title: "Create wallet card"
method: POST
path: "/pws/pws_wallet_card/"
tags: ["Wallet"]
---

# Create wallet card

`POST /pws/pws_wallet_card/`

This web service is used to create a card. To create a card an account needs to be created first as a card has a one to one relationship with an account.

*   Cards can be created as either physical or virtual cards with a variety of images that have been predefined and loaded per client. When calling the create card the option to return pan, cvv, expiry, public token, card image can be used to allow for the display of the card image with all details post card creation.
*   It is essential that the correct product ID is provided.
*   At the time of card creation, you can select the status of the card, typically set to Decline All Txns DE39=05 until the card holder activates the card. card holder details are provided at the time of card creation to populate the card holder details and to provide these as part of the card personalization process (physical card only).
*   At creation the card can be loaded with funds in accordance with the specific product settings.
*   These inputs are used for creating cards for sub clients/customers under a generic client. Sub clients/customers do not have products or bins of their own and will inherit from parent client, post card creation.
*   The characteristics (tok\_flag) of the card can be set at the card create stage and this determines how the card will behave once created, activated, and used.

## Request body

- WalletCardModel
  - `api_call_unique_identifier` string, required — Unique number that must be passed at each API request. Identifier to make each API request unique
  - `card_type` integer, required — <ul><li class="docBullet">1 = Physical card</li><li class="docBullet">2 = Virtual card</li></ul>
  - `client_id` integer, required — Unique identifier for the client which Paymentology will provide at outset
  - `crd_prdct_id` integer, required — card product id. (Need to input correct product id for your card so it will inherit full required properties and be fully linked with business.)
  - `image_delivery` integer, required — <p>How to deliver image back to client. Example :</p> <ul> <li class="docBullet">1==&gt; Image in plain base64, encrypted pan, cvv,token,expiry,emboss_name).</li> <li class="docBullet">2 ==&gt; Image in byte encrypted ,encrypted pan, cvv,token,expiry,emboss_name.</li> <li class="docBullet">3 ==&gt; Data details JSON (encrypted pan,cvv,token,expiry,emboss_name but no image.</li> <li class="docBullet">4 ==&gt; Image in byte encrypted , masked pan back, cvv,token,expiry,emboss_name.</li> </ul>
  - `image_fields` string, required — <p>Show or hide pan,cvv,expiry,token,emboss_name in response image . 1 means show and 0 means hide</p> <table > <tbody> <tr> <th ><strong>Position</strong></th> <th ><strong>Field</strong></th> </tr> <tr> <td >1</td> <td >pan</td> </tr> <tr> <td >2</td> <td >cvv</td> </tr> <tr> <td >3</td> <td>expiry</td> </tr> <tr> <td >4</td> <td>token</td> </tr> <tr> <td >5</td> <td>emboss_name</td> </tr> </tbody> </table> <p>EG : 00111 (Hide pan and cvv but show expiry token, emboss_name).</p>
  - `image_name` string, required — Image template name for the card to be generated. This field is case sensitive. card image has to be populated as configured in PayControl.
  - `status_nwk` integer, required — <p>Status network :</p> <ul> <li class="docBullet">1000 : Fully operational DE39=00</li> <li class="docBullet">1001 : Refer to issuer DE39=01</li> <li class="docBullet">1004 : Capture card DE39=04</li> <li class="docBullet">1005 : Decline all txns DE39=05</li> <li class="docBullet">1007 : Decline all txns (Visa: DE39=12) (MC: DE39=14)</li> <li class="docBullet">1008 : Honour with ID DE39=08</li> <li class="docBullet">1041 : Lost card - capture DE39=41</li> <li class="docBullet">1043 : Stolen card - capture DE39=43</li> <li class="docBullet">1054 : Expired card - report DE39=54</li> <li class="docBullet">1154 : Expire card - don't inform</li> <li class="docBullet">1062 : Restricted card</li> <li class="docBullet">1199 : Void card - report DE39=05</li></ul>
  - `xml_fields` string, required — <p>Show or hide pan,cvv,expiry,token,emboss_name in response json . 1 means show and 0 means hide</p> <table > <tbody> <tr> <th ><strong>Position</strong></th> <th ><strong>Field</strong></th> </tr> <tr> <td >1</td> <td >pan</td> </tr> <tr> <td >2</td> <td >cvv</td> </tr> <tr> <td >3</td> <td>expiry</td> </tr> <tr> <td >4</td> <td>token</td> </tr> <tr> <td >5</td> <td>emboss_name</td> </tr> </tbody> </table> <p>EG : 00111 (Hide pan and cvv but show expiry token, emboss_name).</p>
  - `user_id` string — User Id of the Customer who triggered the API request.
  - `remarks` string — Remarks for API request
  - `card_manuf_id` integer — card manufacturer id (If not passed then will take default manu id will be taken from manufacturer table).
  - `emboss_name` string — Name that appears in front of the card.
  - `tok_flags` string — <p>Flags for token to assign various tasks to the card. 0 ==>Flag inactive | 1==> Flag Active . Descriptions for each tok flag bits are given below : </p> <table> <thead> <tr></td><td><strong>TOK_DESCRIPTION</strong></td><td><strong>BIT_POSITION</strong></td> </tr> </thead> <tbody> <tr><td title ="After every transaction, send card balance to the scheme, to allow for balance to be displayed, i.e. for ATM transactions">Send card bal in De54 in next auth</td><td>3</td></tr> <tr><td title ="Should the maximum number of pin retries be exceded, then enable pin unblocking on chip card. Send to issuer to unblock">Send pin unblock to card</td><td>4</td></tr> <tr><td title ="Only allow ecommerce transactions (including MDES and VTS transactions)">Set card to decline all tranasaction except ecommerce</td><td>5</td></tr> <tr><td title ="Set card to decline all Contactless transaction">Set card to decline all Contactless transaction</td><td>6</td></tr> <tr><td title ="Decline all ecommerce transactions (including MDES and VTS transactions)">Set card to decline all Ecommerce</td><td>9</td></tr> <tr><td title ="Decline all ATM Cash withdrawal transactions">Set card to decline all ATM</td><td>10</td></tr> <tr><td title ="Do not allow any balance enquiry transactions">Set card to decline Bal enquiry over auth</td><td>11</td></tr> <tr><td title ="In the case of POS transactions, the cash disbursement of a portion of the transaction amount is not allowed. The merchant cannot give cash to cardholder as part of the transaction.">Set card to decline cash back txns</td><td>12</td></tr> <tr><td title ="No transactions are allowed that will credit the card balance, including refunds to the card.">Set card to decline Auth credit pur/refund (DE3_1=20)</td><td>14</td></tr> <tr><td title ="No payments allowed, only POS and ecommerce transactions and. i.e. MC MoneySend, credit card installments, etc">Set card to decline credit payment (DE3_1=28)</td><td>19</td></tr> <tr><td title ="Only transactions in the base currency are allowed, decline any transaction in a non-base currency">Set card to decline non base currency txn</td><td>20</td></tr> <tr><td title ="No account verification requests should be allowed">Set card to decline all account enq (de61_7=8)</td><td>21</td></tr> <tr><td title ="Only approve transactions where the card is present. If card not present, decline transaction">Set card to decline card not present txns</td><td>22</td></tr> <tr><td title ="card Where the card information is provided but neither the cardholder or the card are physically present (i.e. mail-order) decline the transaction. ">Set card to decline Cardholder not present txns</td><td>23</td></tr> <tr><td title ="CATM Fallback - where a chip-card is used at chip-capable ATM, do not allow fallback to magnetic strip">Set card to decline failover to mag at emv capable atm</td><td>24</td></tr> <tr><td title ="ATM Fallback - where a chip-card is used at an ATM (chip-capable or not) do not allow fallback to magnetic stripe">Set card to decline mag at atm</td><td>25</td></tr> <tr><td title ="POS Fallback - where a chip-card is used at chip-capable POS, allow fallback to to magnetic strip">Alow if fallback chp->mag at chp capable pos DE22_1=80</td><td>26</td></tr> <tr><td title ="POS Fallback - when the magnetic strip is used for a transaction, only allow the transaction of the entire track can be read, i.e. only PAN sent then decline transaction">Allow if de22_1=02 & De48_88 =Y</td><td>27</td></tr> <tr><td title ="Set card to approve if AVS match fails">Set card to approve if AVS match fails</td><td>28</td></tr> <tr><td title ="Do not allow subscription transactions, decline recurring transactions">Set card to decline Recurring transaction</td><td>29</td></tr> </tbody> </table>
  - `client_card_ref` 'range[-infinity, 100]' — Unique client reference relating to order, card or customer where present should always be quoted in correspondence.
  - `product_ref` 'range[-infinity, 60]' — product identifier, i.e. physical card design reference used by the card printer.
  - `exp_date` string — Expiry Date, accepted format yyyy-mm-dd hh:mm:ss.
  - `ac_parent_id` integer — Parent account number. If provided system will automatically create a new account linked to the card.
  - `ac_id` integer — Existing account number. New card will be linked to this account. If using existing account, do not send ac_parent_id.
  - `ac_name` 'range[-infinity, 50]' — account name. Required if ac_parent_id provided. Optional if ac_id provided.
  - `ac_ext_ref` 'range[-infinity, 50]' — account external reference.
  - `ac_desc` 'range[-infinity, 100]' — Description for the account holder.
  - `ac_set_ccy` string — Settlement currency code. (Three digit ISO-4217 standard currency code . i.e. : 048 → BHD, 060 → BMD, 036 → AUD)
  - `ac_bill_ccy` string — Settlement currency. (Three digit ISO-4217 standard currency code . i.e. : 048 → BHD, 060 → BMD, 036 → AUD)
  - `ch_title` 'range[-infinity, 10]' — card Holder Title.
  - `ch_fname` 'range[-infinity, 30]' — card Holder First Name.
  - `ch_sname` 'range[-infinity, 30]' — card Holder Surname.
  - `ch_addr1` string — card Holder Address1.
  - `ch_addr2` string — card Holder Address2.
  - `ch_pcode` 'range[-infinity, 15]' — card Holder Postal Code.
  - `ch_city` 'range[-infinity, 50]' — card Holder City.
  - `ch_country` 'range[-infinity, 50]' — card Holder Country.
  - `ch_email` string, email — card Holder Email.
  - `ch_mobile` string — card Holder Mobile Number. phone number format i.e 00 (country code) phone number or + (country code) phone number.
  - `ch_pass_code` 'range[-infinity, 10]' — card holder pass code - Can be stored against card for customer authentication (i.e. activation stage) or Paymentology can generate.
  - `ch_region` string — card Holder Language Region.
  - `ch_dob` string — card Holder Date of Birth, accepted format yyyy-mm-dd.
  - `del_title` 'range[-infinity, 10]' — delivery Title.
  - `del_fname` 'range[-infinity, 30]' — delivery First Name.
  - `del_sname` 'range[-infinity, 30]' — delivery Surname.
  - `del_addr1` string — delivery Address1.
  - `del_addr2` string — delivery Address2.
  - `del_pcode` string — delivery postal code.
  - `del_city` 'range[-infinity, 50]' — delivery City.
  - `del_country` 'range[-infinity, 50]' — delivery Country.
  - `del_email` string, email — delivery Email.
  - `del_mobile` string — delivery Mobile Number. phone number format i.e 00 (country code ) phone number or + (country code) phone number.
  - `del_pass_code` 'range[-infinity, 10]' — delivery Pass Code.
  - `del_method` integer — <p>delivery method for card :</p> <ul> <li class="docBullet">0 &ndash; Standard mail</li> <li class="docBullet">1 &ndash; Registered mail</li> <li class="docBullet">2 &ndash; Direct delivery (courier) RFU</li> </ul>
  - `del_account` integer — delivery account Number.
  - `del_region` string — delivery Language.
  - `bulk_delv_add_code` integer — Bulk delivery address code, allows processor and manufacturer to agree a pre-defined delivery address.This codes is agreed seperately with manufacturer.
  - `del_code` integer — delivery Code, carriers with same del_code, will be grouped to be send to a specified delivery address.
  - `pur_title` 'range[-infinity, 10]' — Purchaser Title.
  - `pur_fname` 'range[-infinity, 30]' — Purchaser First Name.
  - `pur_sname` 'range[-infinity, 30]' — Purchaser Sur Name.
  - `pur_addr1` string — Purchaser Address1.
  - `pur_addr2` string — Purchaser Address2.
  - `pur_pcode` string — Purchaser Postal Code.
  - `pur_city` string — Purchaser City.
  - `pur_country` 'range[-infinity, 50]' — Purchaser Country.
  - `pur_email` string, email — Purchaser Email.
  - `pur_mobile` string — Purchaser Mobile. phone number format i.e 00 (country code ) phone number or + (country code) phone number
  - `pur_account` integer — Purchaser account Numbe.r
  - `pur_pass_code` 'range[-infinity, 10]' — Purchaser Pass Code.
  - `carrier_type` string — Allows client to stipulate carrier type (card packaging type choice - for shipment to customer) possible.
  - `carrier_insrt1` integer — Identifies insert 1 to be included with Carrier in Envelope. Inserts are agreed with the card manufacturer. Please consult Paymentology or the card manufacturer for details on your defined inserts.
  - `carrier_insrt2` integer — Identifies insert 2 to be included with Carrier in Envelope
  - `carrier_lang` 'range[-infinity, 3]' — Language to be used in carrier notes and labels(iso 3166-1, character three digits).
  - `envelope_ref` integer — Identifies envelope type
  - `ext_line1` 'range[-infinity, 20]' — Extra card text line 1, allows additional line for subjective requirements i.e. extra text in the card.
  - `ext_line2` 'range[-infinity, 20]' — Extra card text line 2, allows additional line for subjective requirements i.e. extra text in the card.
  - `custom_1` 'range[-infinity, 255]' — Customer special details, i.e. QR code If custom_1 ==> 1, then we will provide : MMYY+Public Token (MMYY ->the date of card creation ). If custom_1 value other than "1" , PT will include what ever client input in the same field in create.
  - `emboss_line4` string — Emboss line 4, front of card additional text i.e. public token.
  - `group_id` string — Associates group id with the account created or existing account during card create. Use valid groups id. If invalid group id passed in string, associate will be skipped for specific group id.
  - `auth_type` string — <p>Authorization Type :</p> <ul> <li class="docBullet">0==&gt;Internal</li> <li class="docBullet">1==&gt;External</li> <li class="docBullet">2==&gt; Notification</li> </ul>
  - `accounts` Accounts[] — Multi accounts that will be created during card create under parent account or child account and linked with the created token. one card might be mapped to X of accounts and the default account is linked to the card. Default account and default currency are set to 1.
    - `ac_bill_ccy` string, required — Billing currency (Three digit ISO_4217 standard currency code . i.e. : 048 → BHD, 060 → BMD, 036 → AUD)
    - `ac_name` 'range[-infinity, 50]', required — account name under which an account is created
    - `is_default_acc` integer, required — Denotes the default account
    - `is_default_ccy` integer, required — Denotes the default currency
    - `ac_desc` 'range[-infinity, 100]' — Description for the account holder
    - `ac_ext_ref` 'range[-infinity, 50]' — account external reference
    - `ac_set_ccy` string — Settlement currency (Three digit ISO-4217 standard currency code . i.e. : 048 → BHD, 060 → BMD, 036 → AUD)

## Response `200`

Successful Response

- WalletCardResponseModel
  - `header` WalletAccountsHeader — WalletAccounts Header
    - `error_id` integer — error id
    - `error_desc` string — error message
  - `body` WalletAccountsBody — WalletAccounts Body
    - `ac_id` integer — Newly Created account ID.
    - `token` integer — Public token
    - `expiry` string — Expiry
    - `emboss_name` string — Emboss name
    - `image_base64` string — card image
    - `epan` string — Encrypted pan
    - `cvv` string — CVV
    - `last_four_digit` string — Last four digit of a pan
    - `accounts` WalletAccounts[] — wallet accounts that will be created under parent account .
      - `ac_id` integer — Newly Created Child account ID.
      - `ac_name` 'range[-infinity, 50]' — account name under which an account is created
      - `ac_desc` 'range[-infinity, 100]' — Description for the account holder
      - `ac_ext_ref` 'range[-infinity, 50]' — account external reference
      - `ac_set_ccy` string — Settlement currency (Three digit ISO-4217 standard currency code . i.e. : 048 → BHD, 060 → BMD, 036 → AUD)
      - `ac_bill_ccy` string — Billing currency (Three digit ISO_4217 standard currency code . i.e. : 048 → BHD, 060 → BMD, 036 → AUD)
      - `is_default_acc` integer — Denotes the default account
      - `is_default_ccy` integer — Denotes the default currency

## Other responses

- `404` — Webservices does not exist
- `500` — Internal Server error

---

[API](https://skmtc.net/paymentology/apis/payapi-docs.md) · [All operations](https://skmtc.net/paymentology/apis/payapi-docs/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paymentology/payapi-docs/revisions/a675891b0365/schema)
