---
title: "Modify Mandate"
method: POST
path: "/pgsi/ve1_2/mandates/modify"
tags: ["Mandate"]
---

# Modify Mandate

`POST /pgsi/ve1_2/mandates/modify`

List of attributes that can be modified depend upon the payment method type.  An AFA using the payment method linked with the mandate is required to modify one or more of the attributes.

## Headers

- `BD-Traceid` string, required
- `BD-Timestamp` string, required
- `Content-Type` string, required
- `Accept` string, required

## Request body

- object
  - `mercid` string, required — Unique identifier as defined by BillDesk for each merchant
  - `mandateid` string, required — Unique mandateid created by BillDesk
  - `end_date` string, date — Subscription end date in yyyy-mm-dd format Note: Should be greater than current date (IST timezone). For mandates that are valid ‘until cancelled’ by the customer, end_date year could be 2099, and for upi, maximum duration allowed for a mandate is 30 years
  - `amount` string — Subscription amount in two decimals, eg. 2400.00
  - `amount_type` 'maximum' | 'fixed' — Indicates whether subscription amount is fixed or has a maximum limit. The following values are possible • maximum - indicates the maximum amount that can be charged for the subscription • fixed – indicates the fixed amount to be charged for the subscription Please note: For upi, only "maximum" is allowed. This is required to allow for token debit (small value transaction)
  - `frequency` 'week' | 'mnth' | 'bimn' | 'qurt' | 'bian' | 'year' | 'adho' — Frequency at which the subscription debits will be processed, possible values are: •week - weekly •mnth - monthly •bimn – bi-monthly •qurt - quarterly •bian – bi-annually •year - yearly •adho – adhoc
  - `authentication_type` '3ds2', required — Represents the type of authentication initiated in the request, will be fixed value - 3ds2
  - `3ds_parameter` 'merchant', required — Value that determines which entity will capture the device attributes, possible values are merchant
  - `payment_method_type` 'card' | 'netbanking' | 'upi', required — Represents the method of payment, and can take the following values - card, netbanking, wallet, upi, eft, bankaccount, cashcard, cardless (non-card emi option) The associated object will also be provided in the request.
  - `card` union, required
    - PayUsingCardNumberPan
      - `number` string, required — Card number
      - `expiry_month` string, required — Card expiry month in MM format
      - `expiry_year` string, required — Card expiry year in YYYY format
      - `holder_name` string — Cardholder name
      - `cvv` string, required — Card cvv value
      - `tokenize` 'true' — If the card is required to be tokenized then, the value is true
      - `coft_consent` 'true' — Fixed value as true, confirming the card holder consent to tokenize the card
    - PayUsingNetworkToken
      - `network_token` object, required
        - `token_value` string, required — Token Value – as received from TSP, provided in the ‘Detokenize’ response
        - `token_cryptogram` string, required — Token Cryptogram – as received from TSP, provided in the ‘Detokenize’ response
        - `token_expiry_month` integer, required — Token Expiry Month – as received from TSP in the MM format
        - `token_expiry_year` integer, required — Token Expiry Year – as received from TSP in the YYYY format
      - `card_end` string, required — Last 4 digits of the card number Note: For an EMI transaction via network token,this attribute value is required for loan booking
      - `cvv` string — Card cvv value
      - `holder_name` string — Cardholder name
    - PayUsingIssuerToken
      - `issuer_token` object, required
        - `token_value` string, required — Token Value – as received from TSP in the ‘Detokenize’ response
        - `token_cryptogram` string, required — Token Cryptogram – as received from TSP in the ‘Detokenize’ response
        - `token_expiry_month` integer, required — Token Expiry Month – as received from TSP in the MM format
        - `token_expiry_year` integer, required — Token Expiry Year – as received from TSP in the YYYY format
      - `card_end` string, required — Last 4 digits of the card number Note: For an EMI transaction via network token,this attribute value is required for loan booking
      - `cvv` string — Card cvv value
      - `holder_name` string — Cardholder name
    - PayUsingCardAccountId
      - `cardaccountid` string, required — Unique ID created by BillDesk for the combination of card number, mercid and customer_refid
      - `cvv` string — Card cvv value
      - `card_end` string, required — Last 4 digits of the card number Note: For an EMI transaction via network token,this attribute value is required for loan booking
      - `holder_name` string — Cardholder name
    - PayUsingAltid
      - `altid_token` object, required
        - `altid_value` string, required — Token Value – as received from TSP, provided in the ‘Detokenize’ response
        - `altid_cryptogram` string, required — Token Cryptogram – as received from TSP, provided in the ‘Detokenize’ response
        - `altid_expiry_month` integer, required — Token Expiry Month – as received from TSP in the MM format
        - `altid_expiry_year` integer, required — Token Expiry Year – as received from TSP in the YYYY format
        - `altid_trid` string — conditional: required only for AMEX - validate once
      - `card_end` string — Last 4 digits of the card number Note: For an EMI transaction via network token,this attribute value is required for loan booking
      - `cvv` string, required — Card cvv value
      - `holder_name` string, required — Cardholder name
  - `device` Device, required
    - `init_channel` 'internet' | 'app' | 'kiosk', required — Initiating channel,accepted values are internet,app or kiosk
    - `ip` string, required — Actual end customer IP address is required to be passed
    - `user_agent` string, required — Exact content of the HTTP user-agent header Note: If the total length of the User-Agent sent by the browser exceeds 2048 characters, truncate the excess portion
    - `accept_header` string, required — Customer browser accept header values
    - `browser_language` string, required — Value representing the browser language, returned from navigator.language property, for eg. en-US
    - `browser_javascript_enabled` 'true' | 'false', required — Boolean (true or false) that represents the ability of the cardholder browser to execute JavaScript. Note – if true, additional attributes of browser_tz, browser_color_depth, browser_java_enabled, browser_screen_height, browser_screen_width are mandatory
    - `browser_tz` string — Time-zone offset in minutes between UTC and the Cardholder browser local time. Note that the offset is positive if the local time zone is behind UTC and negative if it is ahead. For eg. if UTC -5 hours then browser_tz = 300 and if UTC +5 hours then browser_tz = -300’
    - `browser_color_depth` string — Value representing the bit depth of the colour palette for displaying images, in bits per pixel. Obtained from Cardholder browser using the screen.Color.Depth property. In case the actual vaue does not exist in the allowed values, use the closest lower value,for eg. 32
    - `browser_java_enabled` 'true' | 'false' — Boolean (true or false) that represents the ability of the cardholder browser to execute Java. Value is returned from the navigator.javaEnabled property
    - `browser_screen_height` string — Total height of the Cardholder’s screen in pixels. Value is returned from the screen.height property for eg. 601
    - `browser_screen_width` string — Total width of the cardholder’s screen in pixels. Value is returned from the screen.width property, for eg. 657

## Response `200`

OK

- object
  - `objectid` 'transaction' | 'authentication' | 'mandate' | 'invoice' | 'cardaccount' | 'validatevpa' | 'dispute' | 'settlement' | 'altid' | 'mandate_token' | 'accountvalidation' — String representing the object's type. Objects of the same type share the same value.
  - `transactionid` string — Unique transactionid created by BillDesk
  - `mandateid` string — Unique mandateid created by BillDesk
  - `mercid` string — Unique identifier as defined by BillDesk for each merchant
  - `customer_refid` string — Unique reference of the customer in the merchant system, and can be linked to different subscriptions of the same customer Required for mandate and tokenization
  - `subscription_refid` string — Unique reference assigned by merchant for a subscription
  - `subscription_desc` string — Customer friendly description for the subscription, this narration is generally displayed to the customer at the issuer channel
  - `start_date` string, date — Subscription start date in yyyy-mm-dd format Note: Should be greater than or equal to current date (IST timezone). Note for UPI : Should be equal to mandate creation date for UPI. In UPI, an subsequent charge is created on a successful mandate. This includes the first charge as well along with mandate creation. Since first charge is done immediately, it is important that the mandate “start_date” should be today’s date
  - `end_date` string, date — Subscription end date in yyyy-mm-dd format Note: Should be greater than current date (IST timezone). For mandates that are valid ‘until cancelled’ by the customer, end_date year could be 2099, and for upi, maximum duration allowed for a mandate is 30 years
  - `amount` string — Subscription amount in two decimals, eg. 2400.00
  - `amount_type` 'maximum' | 'fixed' — Indicates whether subscription amount is fixed or has a maximum limit. The following values are possible • maximum - indicates the maximum amount that can be charged for the subscription • fixed – indicates the fixed amount to be charged for the subscription Please note: For upi, only "maximum" is allowed. This is required to allow for token debit (small value transaction)
  - `currency` string — ISO currency of the transaction amount, for INR this value will be 356
  - `frequency` 'week' | 'mnth' | 'bimn' | 'qurt' | 'bian' | 'year' | 'adho' — Frequency at which the subscription debits will be processed, possible values are: •week - weekly •mnth - monthly •bimn – bi-monthly •qurt - quarterly •bian – bi-annually •year - yearly •adho – adhoc
  - `status` string — Represents the status of the mandate and depends upon the linked payment method. The following values are possible: card, upi • initiated - mandate request has been initiated, and this status is applicable for the SDK based workflow • pending - mandate request has been initiated and the linked payment method is not yet validated • active – linked payment method has been validated and recurring charges can be processed • rejected - mandate has been rejected by the issuer or payment provider • deleted - mandate has been deleted by the customer from the merchant channel • cancelled – mandate has been stopped by customer from the issuer channel • suspended – mandate has been temporarily suspended by the issuer or payment provider bankaccount • pending – mandate request has been sent for account verification to NPCI • active – mandate is active and recurring charges can be processed • delete_initiated – mandate delete request is initiated by the customer or the merchant • deleted – mandate is deleted after confirmation from NPCI • rejected – mandate is rejected by NPCI
  - `createdon` string, date-time — object creation timestamp
  - `payment_method_type` 'card' | 'netbanking' | 'upi' — Represents the method of payment, and can take the following values - card, netbanking, wallet, upi, eft, bankaccount, cashcard, cardless (non-card emi option) The associated object will also be provided in the request.
  - `ru` string — Merchants URL where the customer will be redirected after a transaction is completed
  - `card` CardResponse
    - `type` string — Card product type, takes the following values - debit, credit or prepaid
    - `masked_value` string — Masked card number, with the last four digits
    - `network` string — Card Network
    - `issuer` string — Card issuer
  - `customer` Customer
    - `first_name` string — Customer’s First Name
    - `last_name` string — Customer’s Last Name
    - `mobile` string — Customer’s Mobile number. This parameter is mandatory if sms is passed as true in customer_notification object.
    - `email` string — Customer’s Email address. This parameter is mandatory if email is passed as true in customer_notification object.
  - `next_step` 'redirect' | 'capture_otp' | '3ds2_challenge' | '3ds2_frictionless' — Refers to the action to be taken by the merchant, for eg. redirect or capture_otp
  - `links` Links — Associated links with the object, and contains the issuer URL that will be provided in the redirect authentication workflow
    - `links` object[]
      - `href` string — Issuer response URL
      - `rel` string — Fixed value as redirect
      - `method` 'POST'
      - `parameters` LinksParameters — Parameters that are used to redirect the customer to the issuer URL
        - `creq` string — Challenge request message or payment message for 3ds2.0 protocol authentication
        - `bdcreq` string — Challenge request message or payment message for 3ds2.0 protocol authentication (Threeds method url flow)
        - `tranid` string — Payment parameter for rupay redirect flow
        - `AccuCardholderId` string — Payment parameter for rupay redirect flow
        - `AccuReturnURL` string — Payment parameter for rupay redirect flow
        - `session` string — Payment parameter for rupay redirect flow
        - `AccuGuid` string — Payment parameter for rupay redirect flow
        - `TermUrl` string — Payment parameter for rupay redirect flow
        - `AccuRequestId` string — Payment parameter for rupay redirect flow
        - `cardend` string — Payment parameter for rupay redirect flow
  - `additional_info` AdditionalInfo — Array of 7 additional_info values that can be attached to the transaction. Note: Merchant is advised to not pass customer PII information in additional info fields.
    - `additional_info1` string
    - `additional_info2` string
    - `additional_info3` string
    - `additional_info4` string
    - `additional_info5` string
    - `additional_info6` string
    - `additional_info7` string

## Other responses

- `403` — Forbidden
- `500` — Internal Server Error
- `default` — Any bad or invalid request will lead to following error object

---

[API](https://skmtc.net/billdesk/apis/payments.md) · [All operations](https://skmtc.net/billdesk/apis/payments/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/billdesk/payments/versions/43f021fc467f/schema)
