diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e12ac1c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,141 @@
+
+
+
+
+
ShurjoPay payment gateway integration for Laravel
+
+
+This is a [Laravel](https://laravel.com) package for integrating **ShurjoPay** payment gateway in your Laravel application.
+
+---
+
+## Features
+
+- Easy to use.
+- Friendly simple interface.
+- Laravel Facade.
+
+## Installation
+
+Add the dependency to your Laravel project using Composer:
+
+```sh
+composer require raziul/shurjopay-laravel
+```
+
+> **Note**: This package supports Laravel auto-discovery. You don't need to add the service provider manually.
+
+## Configuration
+
+You can add ShurjoPay mercant credentials in the `.env` file like below:
+
+```sh
+# ShurjoPay merchant credentials
+SHURJOPAY_SANDBOX_MODE=false
+SHURJOPAY_MERCHANT_USERNAME=""
+SHURJOPAY_MERCHANT_PASSWORD=""
+SHURJOPAY_MERCHANT_PREFIX=""
+```
+
+or you can publish the config file:
+
+```sh
+php artisan vendor:publish --provider="Raziul\Shurjopay\ShurjopayServiceProvider"
+```
+
+> It should copy the config file to `config/shurjopay.php` of your project.
+
+## Usage Guide
+
+Whenever you need to use Shurjopay payment gateway, just use the `Shurjopay` Facade.
+
+```php
+use Raziul\Shurjopay\Facades\Shurjopay;
+```
+
+### To make a payment
+
+In your controller
+
+```php
+
+// The payload will be passed to Shurjopay.
+$payload = [
+ // order info
+ // customer info
+ // custom values
+];
+
+// set the callback url
+Shurjopay::setCallbackUrl($success_url, $cancel_url);
+
+// Make a payment
+Shurjopay::makePayment($payload);
+
+// OR use methond chaining like below:
+Shurjopay::setCallbackUrl($success_url, $cancel_url)->makePayment($payload);
+
+```
+
+### Verify Payment
+
+> **Note**: You need to call this method in the callback url. The `order_id` will be available in the query string.
+
+```php
+$payment = Shurjopay::verifyPayment($order_id);
+
+if ($payment->success()) {
+ // payment success
+} else {
+ // payment failed
+}
+```
+
+> `Shurjopay::verifyPayment` return an instance of `Raziul\Shurjopay\Data\Payment`.
+
+### Available methods in the `Payment` class.
+
+| Method | Description |
+| --------------------------- | ----------------------------- |
+| $payment->success() | Return payment success status |
+| $payment->failed() | Return payment failed status |
+| $payment->message() | Get the success/error message |
+| $payment->orderId() | Get the order ID |
+| $payment->currency() | Get currency code |
+| $payment->amount() | Get the amount |
+| $payment->customerOrderId() | Get customer order ID |
+| $payment->paymentMethod() | Get the payment method name |
+| $payment->dateTime() | Get the transaction date time |
+| $payment->toArray() | Get all the data as array |
+
+### Error Handling
+
+> For better error handling you can catch the `Raziul\Shurjopay\Exceptions\ShurjopayException`.
+
+```php
+try {
+ // making payment
+ Shurjopay::setCallbackUrl($success_url, $cancel_url)
+ ->makePayment($payload);
+
+ // or verfication
+ Shurjopay::verifyPayment($order_id);
+
+} catch (Raziul\Shurjopay\Exceptions\ShurjopayException $e) {
+ return $e->getMessage();
+}
+```
+
+## Suggestion/Issues
+
+If you found any issues or have any suggestion then please create an [issue](https://github.com/iRaziul/shurjopay-laravel/issues).
+
+You can also submit PR regarding any issues.
+
+## License
+
+The MIT License (MIT). Please see [License File](LICENSE) for more information.
+
+## Thank You
+
+Thanks for using this package and If you foound this package useful then consider giving it a star.