Skip to content

Latest commit

 

History

History
509 lines (457 loc) · 15.7 KB

virtualaccount.md

File metadata and controls

509 lines (457 loc) · 15.7 KB

Virtual account

Create a virtual account

$api->virtualAccount->create(array('receivers' => array('types' => array('bank_account')),'description' => 'Virtual Account created for Raftar Soft','customer_id' => 'cust_CaVDm8eDRSXYME','close_by' => 1681615838,'notes' => array('project_name' => 'Banking Software')));

Parameters:

Name Type Description
receivers* array Array that defines what receivers are available for this Virtual Account
description string A brief description of the virtual account.
customer_id string Unique identifier of the customer to whom the virtual account must be tagged.
close_by integer UNIX timestamp at which the virtual account is scheduled to be automatically closed.
notes integer Any custom notes you might want to add to the virtual account can be entered here.

Response:

{
  "id":"va_DlGmm7jInLudH9",
  "name":"Acme Corp",
  "entity":"virtual_account",
  "status":"active",
  "description":"Virtual Account created for Raftar Soft",
  "amount_expected":null,
  "notes":{
    "project_name":"Banking Software"
  },
  "amount_paid":0,
  "customer_id":"cust_CaVDm8eDRSXYME",
  "receivers":[
    {
      "id":"ba_DlGmm9mSj8fjRM",
      "entity":"bank_account",
      "ifsc":"RATN0VAAPIS",
      "bank_name": "RBL Bank",
      "name":"Acme Corp",
      "notes":[],
      "account_number":"2223330099089860"
    }
  ],
  "close_by":1681615838,
  "closed_at":null,
  "created_at":1574837626
}

Create a virtual account with TPV

$api->virtualAccount->create(array('receivers' => array('types'=> array('bank_account')),'allowed_payers' => array(array('type'=>'bank_account','bank_account'=>array('ifsc'=>'RATN0VAAPIS','account_number'=>'2223330027558515'))),'description' => 'Virtual Account created for Raftar Soft','customer_id' => 'cust_HssUOFiOd2b1TJ', 'notes' => array('project_name' => 'Banking Software')));

Parameters:

Name Type Description
receivers* array Array that defines what receivers are available for this Virtual Account
allowed_payers* array All parameters listed here are supported

Response:

{
  "id":"va_DlGmm7jInLudH9",
  "name":"Acme Corp",
  "entity":"virtual_account",
  "status":"active",
  "description":"Virtual Account created for Raftar Soft",
  "amount_expected":null,
  "notes":{
    "project_name":"Banking Software"
  },
  "amount_paid":0,
  "customer_id":"cust_CaVDm8eDRSXYME",
  "receivers":[
    {
      "id":"ba_DlGmm9mSj8fjRM",
      "entity":"bank_account",
      "ifsc":"RATN0VAAPIS",
      "bank_name": "RBL Bank",
      "name":"Acme Corp",
      "notes":[],
      "account_number":"2223330099089860"
    }
  ],
  "allowed_payers": [
    {
      "type": "bank_account",
      "id":"ba_DlGmm9mSj8fjRM",
      "bank_account": {
        "ifsc": "UTIB0000013",
        "account_number": "914010012345679"
      }
    },
    {
      "type": "bank_account",
      "id":"ba_Cmtnm5tSj6agUW",
      "bank_account": {
        "ifsc": "UTIB0000014",
        "account_number": "914010012345680"
      }
    }
  ],
  "close_by":1681615838,
  "closed_at":null,
  "created_at":1574837626
}

Create static/dynamic qr

$api->virtualAccount->create(array('receivers' => array('types' => array('qr_code')), 'description' => 'First QR code','customer_id'=> 'cust_IOyIY3JvbVny9o', 'amount_expected' => 100, 'notes' => array('receiver_key' => 'receiver_value')));

Parameters:

Name Type Description
receivers* array Array that defines what receivers are available for this Virtual Account
description string A brief description of the payment.
amount_expected integer The maximum amount you expect to receive in this virtual account. Pass 69999 for ₹699.99.
customer_id string Unique identifier of the customer to whom the virtual account must be tagged.
notes object All keys listed here are supported

Response:

{
  "id": "va_4xbQrmEoA5WJ0G",
  "name": "Acme Corp",
  "entity": "virtual_account",
  "status": "active",
  "description": "First Payment by BharatQR",
  "amount_expected": null,
  "notes": {
    "reference_key": "reference_value"
  },
  "amount_paid": 0,
  "customer_id": "cust_805c8oBQdBGPwS",
  "receivers": [
    {
      "id": "qr_4lsdkfldlteskf",
      "entity": "qr_code",
      "reference": "AgdeP8aBgZGckl",
      "short_url": "https://rzp.io/i/PLs03pOc"
    }
  ],
  "close_by": null,
  "closed_at": null,
  "created_at": 1607938184
}

Fetch virtual account by id

$api->virtualAccount->fetch($virtualId);

Parameters:

Name Type Description
virtualId* string The id of the virtual to be updated

Response:

 {
    "id": "va_JccTXwXA6UG4Gi",
    "name": "ankit",
    "entity": "virtual_account",
    "status": "active",
    "description": null,
    "amount_expected": null,
    "notes": [],
    "amount_paid": 0,
    "customer_id": null,
    "receivers": [
        {
            "id": "ba_JccTY5ZkO3ZGHQ",
            "entity": "bank_account",
            "ifsc": "RAZR0000001",
            "bank_name": null,
            "name": "ankit",
            "notes": [],
            "account_number": "1112220057339365"
        }
    ],
    "close_by": null,
    "closed_at": null,
    "created_at": 1654171468
}

Fetch all virtual account

$api->virtualAccount->all($options);

Parameters:

Name Type Description
from timestamp timestamp after which the payments were created
to timestamp timestamp before which the payments were created
count integer number of virtual accounts to fetch (default: 10)
skip integer number of virtual accounts to be skipped (default: 0)

Response:

{
  "entity": "collection",
  "count": 1,
  "items": [
    {
      "id": "va_Di5gbNptcWV8fQ",
      "name": "Acme Corp",
      "entity": "virtual_account",
      "status": "closed",
      "description": "Virtual Account created for M/S ABC Exports",
      "amount_expected": 2300,
      "notes": {
        "material": "teakwood"
      },
      "amount_paid": 239000,
      "customer_id": "cust_DOMUFFiGdCaCUJ",
      "receivers": [
        {
          "id": "ba_Di5gbQsGn0QSz3",
          "entity": "bank_account",
          "ifsc": "RATN0VAAPIS",
          "bank_name": "RBL Bank",
          "name": "Acme Corp",
          "notes": [],
          "account_number": "1112220061746877"
        }
      ],
      "close_by": 1574427237,
      "closed_at": 1574164078,
      "created_at": 1574143517
    }
  ]
}

Fetch payments for a virtual account

$api->virtualAccount->fetch($virtualId)->payments($options);

Parameters:

Name Type Description
virtualId* string The id of the virtual to be updated
from timestamp timestamp after which the payments were created
to timestamp timestamp before which the payments were created
count integer number of virtual accounts to fetch (default: 10)
skip integer number of virtual accounts to be skipped (default: 0)

Response:

{
  "entity": "collection",
  "count": 1,
  "items": [
    {
      "id": "pay_Di5iqCqA1WEHq6",
      "entity": "payment",
      "amount": 239000,
      "currency": "INR",
      "status": "captured",
      "order_id": null,
      "invoice_id": null,
      "international": false,
      "method": "bank_transfer",
      "amount_refunded": 0,
      "refund_status": null,
      "captured": true,
      "description": "",
      "card_id": null,
      "bank": null,
      "wallet": null,
      "vpa": null,
      "email": "[email protected]",
      "contact": "+919972139994",
      "customer_id": "cust_DOMUFFiGdCaCUJ",
      "notes": [],
      "fee": 2820,
      "tax": 430,
      "error_code": null,
      "error_description": null,
      "created_at": 1574143644
    }
  ]
}

Fetch payment details using id and transfer method

$api->payment->fetch($paymentId)->bankTransfer();

Parameters:

Name Type Description
paymentId* string The id of the payment to be updated

Response:

{
  "id": "bt_Di5iqCElVyRlCb",
  "entity": "bank_transfer",
  "payment_id": "pay_Di5iqCqA1WEHq6",
  "mode": "NEFT",
  "bank_reference": "157414364471",
  "amount": 239000,
  "payer_bank_account": {
    "id": "ba_Di5iqSxtYrTzPU",
    "entity": "bank_account",
    "ifsc": "UTIB0003198",
    "bank_name": "Axis Bank",
    "name": "Acme Corp",
    "notes": [],
    "account_number": "765432123456789"
  },
  "virtual_account_id": "va_Di5gbNptcWV8fQ",
  "virtual_account": {
    "id": "va_Di5gbNptcWV8fQ",
    "name": "Acme Corp",
    "entity": "virtual_account",
    "status": "closed",
    "description": "Virtual Account created for M/S ABC Exports",
    "amount_expected": 2300,
    "notes": {
      "material": "teakwood"
    },
    "amount_paid": 239000,
    "customer_id": "cust_DOMUFFiGdCaCUJ",
    "receivers": [
      {
        "id": "ba_Di5gbQsGn0QSz3",
        "entity": "bank_account",
        "ifsc": "RATN0VAAPIS",
        "bank_name": "RBL Bank",
        "name": "Acme Corp",
        "notes": [],
        "account_number": "1112220061746877"
      }
    ],
    "close_by": 1574427237,
    "closed_at": 1574164078,
    "created_at": 1574143517
  }
}

Refund payments made to a virtual account

$api->payment->fetch($paymentId)->refunds();

Parameters:

Name Type Description
paymentId* string The id of the payment to be updated

Response:

{
  "id": "rfnd_FP8QHiV938haTz",
  "entity": "refund",
  "amount": 500100,
  "receipt": "Receipt No. 31",
  "currency": "INR",
  "payment_id": "pay_FCXKPFtYfPXJPy",
  "notes": []
  "receipt": null,
  "acquirer_data": {
    "arn": null
  },
  "created_at": 1597078866,
  "batch_id": null,
  "status": "processed",
  "speed_processed": "normal",
  "speed_requested": "normal"
}

Add receiver to an existing virtual account

$api->virtualAccount->fetch($virtualId)->addReceiver(array('types' => array('vpa'),'vpa' => array('descriptor'=>'gauravkumar')));

Parameters:

Name Type Description
virtualId* string The id of the virtual to be updated
types* array The receiver type to be added to the virtual account. Possible values are vpa or bank_account
vpa["descriptor"] string This is a unique identifier provided by you to identify the customer. For example, gaurikumar and akashkumar are the descriptors

Response: For add receiver to an existing virtual account response please click here


Add an Allowed Payer Account

$api->virtualAccount->fetch($virtualId)->addAllowedPayer(array('type' => 'bank_account','bank_account' => array('ifsc'=>'UTIB0000013','account_number'=>'914010012345679')));

Parameters:

Name Type Description
virtualId* string The id of the virtual to be updated
type* string Possible value is bank_account
bank_account* array Indicates the bank account details such as ifsc and account_number

Response:

{
  "id":"va_DlGmm7jInLudH9",
  "name":"Acme Corp",
  "entity":"virtual_account",
  "status":"active",
  "description":"Virtual Account created for Raftar Soft",
  "amount_expected":null,
  "notes":{
    "project_name":"Banking Software"
  },
  "amount_paid":0,
  "customer_id":"cust_CaVDm8eDRSXYME",
  "receivers":[
    {
      "id":"ba_DlGmm9mSj8fjRM",
      "entity":"bank_account",
      "ifsc":"RATN0VAAPIS",
      "bank_name": "RBL Bank",
      "name":"Acme Corp",
      "notes":[],
      "account_number":"2223330099089860"
    }
  ],
  "allowed_payers": [
    {
      "type": "bank_account",
      "id":"ba_DlGmm9mSj8fjRM",
      "bank_account": {
        "ifsc": "UTIB0000013",
        "account_number": "914010012345679"
      }
    }
  ],
  "close_by":1681615838,
  "closed_at":null,
  "created_at":1574837626
}

Delete an Allowed Payer Account

$api->virtualAccount->fetch($virtualId)->deleteAllowedPayer($allowedPayersId);

Parameters:

Name Type Description
virtualId* string The id of the virtual to be updated
allowedPayersId* string The id of the allowed payers to be updated

Response:

null

Close virtual account

$api->virtualAccount->fetch($virtualId)->close();

Parameters:

Name Type Description
virtualId* string The id of the virtual to be updated

Response: For close virtual account response please click here

PN: * indicates mandatory fields

For reference click here