Production APIs running at https://api.ayriaclub.ir

Note: for test purposes please use https://dev.ayriaclub.ir

1. Ayria api key

Please contact Ayria’s support to receive your api key.

2. Signup

2.1. Normal

Signup member with minimum required information, later Member should activate her/his account(with sent SMS) within 3 days.

2.1.1. request

POST /api/register HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Content-Length: 138
Host: localhost:8080

{"login":"09120000000","firstName":"رستم","lastName":"دستان","email":"rostam@dastan.com","activated":false,"password":"p@$$w0rd"}
2.1.1.1. request headers

Name

Value

AYRIA-API-KEY

DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE

Content-Type

application/json

2.1.1.2. request fields
Path Optional Type Description Constraints

login

false

String

Member’s mobile number

[Must match the regular expression ^09[0-9]{9}$, Must not be blank, Size must be between 11 and 11 inclusive]

password

false

String

Member’s password

[Must not be null, Size must be between 4 and 100 inclusive]

firstName

true

String

Member’s first name

[Size must be between 0 and 50 inclusive]

lastName

true

String

Member’s last name

[Size must be between 0 and 50 inclusive]

email

true

String

Member’s email

[Must be a well-formed email address, Size must be between 5 and 254 inclusive]

2.1.2. response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0

2.2. Verified

Signup member as verified.

2.2.1. request

POST /api/v1/users/register HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Content-Length: 620
Host: localhost:8080

{"firstName":"رستم","lastName":"دستان","email":"rostam@hero.com","langKey":"fa","imageUrl":"http://placehold.it/50x50","fatherName":"زال","nationalCode":"1234567890","identityNumber":"101","birthdayYear":1360,"birthdayMonth":12,"birthdayDay":20,"registeredCity":"سیستان","tel":"02170707070","address":"شاهنامه","workTel":"02180808080","workAddress":"هفت خان","jobTitle":"محیط بان","educationDegree":"MASTER","maritalStatus":"MARRIED","gender":"MALE","children":1,"bankShebaNumber":"IR180620000000202799901009","shebaNumberVerified":false,"login":"09121111111","password":"p@$$w0rd"}
2.2.1.1. request headers

Name

Value

AYRIA-API-KEY

DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE

Content-Type

application/json

2.2.1.2. request fields
Path Optional Type Description Constraints

login

false

String

شماره همراه

[Must match the regular expression ^09[0-9]{9}$, Must not be empty]

password

false

String

رمز عبور

[Size must be between 4 and 100 inclusive]

nationalCode

false

String

کد ملی

[Must match the regular expression ^[0-9]{10}$, Must not be empty]

firstName

false

String

نام

[Must not be empty, Size must be between 2 and 2147483647 inclusive]

lastName

false

String

نام خانوادگی

[Must not be empty, Size must be between 2 and 2147483647 inclusive]

fatherName

false

String

نام پدر

[Must not be empty, Size must be between 2 and 2147483647 inclusive]

gender

false

String

جنسیت
MALE
FEMALE

[Must not be null]

birthdayYear

false

Number

سال تولد

[Must be at least 1250, Must be at least 1300, Must be at most 1400, Must be at most 1410, Must not be null]

birthdayMonth

false

Number

ماه تولد

[Must be at least 1, Must be at most 12, Must not be null]

birthdayDay

false

Number

روز تولد

[Must be at least 1, Must be at most 31, Must not be null]

identityNumber

true

String

شماره شناسنامه

[]

registeredCity

true

String

محل صدور شناسنامه

[]

tel

true

String

تلفن ثابت

[]

address

true

String

آدرس

[]

workTel

true

String

تلفن محل کار

[]

workAddress

true

String

آدرس محل کار

[]

jobTitle

true

String

شغل

[]

educationDegree

true

String

میزان تحصیلات
ELEMENTARY
GENERAL
DIPLOMA
ASSOCIATE
BACHELOR
MASTER
DOCTORATE

[]

maritalStatus

true

String

وضعیت تاهل
SINGLE
MARRIED

[]

children

true

Number

تعداد فرزندان

[]

bankShebaNumber

true

String

شماره شبا

[]

email

true

String

ایمیل

[]

langKey

true

String

کد زبان
fa
en

[]

imageUrl

true

String

آدرس تصویر پروفایل

[]

2.2.2. response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0

3. Login

3.1. request

POST /api/authenticate HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Content-Length: 63
Host: localhost:8080

{"username":"09100000000","password":"test","rememberMe":false}

3.1.1. request fields

Path Optional Type Description Constraints

username

false

String

Member’s mobile number

[Must match the regular expression ^09[0-9]{9}$, Must not be empty]

password

false

String

Member’s password

[Must not be null, Size must be between 4 and 100 inclusive]

rememberMe

true

Boolean

Member’s remember me

[]

3.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIwOTEwMDAwMDAwMCIsImF1dGgiOiIiLCJleHAiOjE2NTEzMDQyMDF9.o80JvY1ohvE8Tswr7mjYndUScQD6EMmEE4s-8fwufpYfML4IC9A7DWXHH8CYDf-hHaAqZMkVQzMk7VUmBj4f_Q
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 187

{"id_token":"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIwOTEwMDAwMDAwMCIsImF1dGgiOiIiLCJleHAiOjE2NTEzMDQyMDF9.o80JvY1ohvE8Tswr7mjYndUScQD6EMmEE4s-8fwufpYfML4IC9A7DWXHH8CYDf-hHaAqZMkVQzMk7VUmBj4f_Q"}

3.2.1. id_token

Identity token is required for accessing protected/secure APIs.

3.2.2. response fields

Path Type Description

id_token

String

Identity token

4. Account

4.1. request

GET /api/account HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIwOTEwMDAwMDAwMCIsImF1dGgiOiIiLCJleHAiOjE2MDA3ODExMDZ9.r3AnYakU3U9v5YG6sMM4FBhgYJFXeP7bTIQhT-O8VowcWi41_KWoXwbHPF8PilE4KrNZsgw74JN1WsjtGxuwIA
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Accept: application/json
Host: localhost:8080

4.1.1. request headers

Name Value

Authorization

Bearer id_token

AYRIA-API-KEY

DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE

Accept

application/json

Host

localhost:8080

4.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 350

{"login":"09120000000","firstName":"رستم","lastName":"دستان","nickname":"بَبْرِ بَیان","gender":"MALE","email":"rostam@shahnameh.com","mobile":"09120000000","imageUrl":"http://placehold.it/50x50","activated":false,"langKey":"fa","authorities":["ROLE_USER"],"plan":"BASIC","clubCode":null,"theme":null,"logo":null,"smallLogo":null}

4.2.1. response fields

Path Type Description

login

String

Member’s mobile number

activated

Boolean

Member’s activation status

plan

String

Member’s plan

firstName

String

Member’s first name

lastName

String

Member’s last name

gender

String

Member’s gender

nickname

String

Member’s nickname

email

String

Member’s email

authorities

Array

Member’s roles

langKey

String

Member’s language key

imageUrl

String

Member’s image url

5. Card

5.1. Create Card

Api for create bank cards for members.

5.1.1. request

POST /api/v1/cards HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Content-Length: 54
Host: localhost:8080

{"mobile":"09121122333","cardNumber":6362141077778888}
5.1.1.1. request fields
Path Optional Type Description Constraints

mobile

false

String

Member’s mobile

[Must match the regular expression ^09[0-9]{9}$, Size must be between 11 and 11 inclusive]

cardNumber

false

Number

Member’s card number

[Must be at least 1000000000000000, Must be at most 9999999999999999, Must not be null]

5.1.2. response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 84

{"owner":"09121122333","mask":"636214********8888","activated":true,"deleted":false}
5.1.2.1. response fields
Path Type Description

owner

String

Card’s owner mobile number

mask

String

Card’s mask number

activated

Boolean

Card’s active status

deleted

Boolean

Card’s delete status

5.2. Delete Card

Api for delete bank cards.

5.2.1. request

DELETE /api/v1/cards HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Content-Length: 64
Host: localhost:8080

{"mobile":"09121122333","cardNumberOrMask":"636214********9999"}
5.2.1.1. request fields
Path Optional Type Description Constraints

mobile

false

String

Member’s mobile

[Must match the regular expression ^09[0-9]{9}$, Must not be empty]

cardNumberOrMask

false

String

Member’s card number or it’s mask

[Must not be empty]

5.2.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 84

{"owner":"09121122333","mask":"636214********9999","activated":false,"deleted":true}
5.2.2.1. response fields
Path Type Description

owner

String

Card’s owner mobile number

mask

String

Card’s mask number

activated

Boolean

Card’s active status

deleted

Boolean

Card’s delete status

5.3. List Cards

Api for list bank cards for a member.

5.3.1. request

GET /api/v1/cards/09121122333 HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Host: localhost:8080

5.3.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 256

[{"owner":"09121122333","mask":"636214********9999","activated":false,"deleted":true},{"owner":"09121122333","mask":"636214********8888","activated":true,"deleted":false},{"owner":"09121122333","mask":"636214********7777","activated":true,"deleted":false}]
5.3.2.1. response fields
Path Type Description

[].owner

String

Card’s owner mobile number

[].mask

String

Card’s mask number

[].activated

Boolean

Card’s active status

[].deleted

Boolean

Card’s delete status

6. Acceptor

6.1. List

Pageable(and filterable) list of Acceptors.

6.1.1. request

GET /api/v1/acceptors?page=0&size=20&acceptorName.contains=%DA%AF%DB%8C%D9%84%D8%A7%D9%86%D9%87&acceptorNameFn.contains=Gilaneh&department.equals=RESTAURANT&code.equals=100118&referralCode.equals=100118&shortDescription.contains=%DA%A9%D8%A8%D8%A7%D8%A8&targetGroup.equals=UNISEX HTTP/1.1
Content-Type: application/json;charset=UTF-8
AYRIA-API-KEY: DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE
Host: localhost:8080
6.1.1.1. request headers

Name

Value

AYRIA-API-KEY

DUh91Uzx0YUj1AtEj2MkkkAFBdQL8Y7keAfTtUkBfg70Cf44DZsoJmbS28EiS6SE

Content-Type

application/json

6.1.1.2. request parameters
Parameter Description

page

شماره صفحه

size

سایز صفحه

acceptorName.contains

فیلتر با نام مرکز

acceptorNameFn.contains

فیلتر با نام انگلیسی مرکز

department.equals

فیلتر با دپارتمان

code.equals

فیلتر با کد

referralCode.equals

فیلتر با کد معرف

shortDescription.contains

فیلتر با توضحیات کوتاه

targetGroup.equals

فیلتر با گروه مخاطب

6.1.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Total-Count: 1
Link: </api/public/acceptors?page=0&size=20>; rel="last",</api/public/acceptors?page=0&size=20>; rel="first"
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 568

[{"acceptorName":"رستوران گیلانه","acceptorNameEn":"Gilaneh Restaurant","department":"RESTAURANT","code":"100118","referralCode":100118,"shortDescription":"انواع کباب | ماهی | انواع خورشت | پیش غذا و مخلفات گیلکی","targetGroup":"UNISEX","logo":"https://cdn.ayriaclub.ir/public/1850c464-7971-4b1e-aac0-b1de97a014b5","address":"جردن ، بلوار صبا","tel":"02122055335","website":"https://dashboard.ayria.club/tabs/center/100118","instagram":"gilaneh_restaurant_group","coordinates":"35.7713191,51.421887"}]
6.1.2.1. response fields
Path Type Description

[].acceptorName

String

نام مرکز

[].acceptorNameEn

String

نام مرکز به انگلیسی

[].shortDescription

String

توضیح کوتاه درباره مرکز

[].department

String

دپارتمان

[].targetGroup

String

مخاطب
MALE
FEMALE
UNISEX

[].logo

String

آدرس اینترنتی لوگو

[].tel

String

تلفن

[].address

String

آدرس

[].website

String

وبسایت

[].instagram

String

اینستاگرام

[].coordinates

String

طول و عرض جغرافیایی

[].code

String

کد مرکز

[].referralCode

Number

کد معرف مرکز

7. APG (Ayria Payment Gateway)

7.1. General

7.1.1. APG api key

Receive your APG api key from https://panel.apg.to > Panel > Settings > Advance.

7.1.2. APG Wallet identity

Receive your APG wallet identity from https://panel.apg.to > Panel > Wallet identity.

7.1.3. APG Default Callback URL

You must provide your default callback URL to Ayria support team if you want to 1) receive a callback on successful payment or if 2) your payment needs verification.

For example if your callback url is

https://example.com/app/callback
  1. On successful payment all payment fields will be POST to above callback url

$ curl 'https://example.com/app/callback' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100004,"referenceCode":"ed6b0bb0-1fde-4ded-92a9-dad47e51bbc1","payeeName":"رستوران گیلانه","payerName":"رستم دستان","description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":true,"canceled":false,"createdDate":"2021-01-11T16:00:09.873Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/ed6b0bb0-1fde-4ded-92a9-dad47e51bbc1","cancelDescription":null,"kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل"}],"issuerMustVerifyPayment":false,"paymentStatus":"DEFAULT"}'
  1. If payment needs verification then customer will be redirected to callback url

$ curl 'https://example.com/app/callback?referenceCode=ed6b0bb0-1fde-4ded-92a9-dad47e51bbc1' -i -X GET
7.1.3.1. Dynamic Callback URL

If your callback url needs to be dynamic? then you must register your dynamic callback url within payment. And your dynamic callback must have same "host" as your default callback url. With an exception for "localhost" which may be useful for development environment.

7.1.5. Plugins

7.1.5.1. PHP

WooCommerce WordPress plugin:

7.2. Create Payment

Create a payment entity.

7.2.1. request

POST /apg/v1/create HTTP/1.1
Content-Type: application/json;charset=UTF-8
APG-API-KEY: APG1B1dPzCJMSkUeRsv1OfBKzS8xIHfDCmYkUsqy2sGygVvSWlUfIBe8nFsmeX7c
APG-WALLET-ID: 10012036
Content-Length: 394
Host: localhost:8080

{"referralCode":100120,"amount":1000000,"payerMobile":"09121122333","payerName":"رستم دستان","description":"تراکنش تستی","paymentNumber":"123456","extraData":"{\"product\": \"clock\"}","kalas":[{"name":"گرز","price":800000,"count":1,"service":false,"brand":"اصیل"}],"issuerMustVerifyPayment":true,"callbackUrl":"http://localhost:8081/apg/v1/callback?token=N10PSeaXAH"}
7.2.1.1. request fields
Path Optional Type Description Constraints

referralCode

false

Number

کد معرف دریافت کننده

[Must not be null]

amount

false

Number

مبلغ پرداختی(ریال)

[Must be at least 15000, Must not be null]

payerMobile

false

String

شماره همراه پرداخت کننده

[Must match the regular expression 09[0-9]{9}|9[0-9]{9}|0989[0-9]{9}|\+989[0-9]{9}, Must not be null]

payerName

true

String

نام پرداخت کننده

[Size must be between 0 and 255 inclusive]

description

true

String

توضیحات تراکنش

[]

paymentNumber

true

String

شماره پراخت دلخواه

[Size must be between 0 and 255 inclusive]

extraData

true

String

اطلاعات تکمیلی دلخواه

[]

issuerMustVerifyPayment

true

Boolean

آیا تایید تراکنش بوسیله پذیرنده ضروری است

[]

callbackUrl

true

String

آدرس برگشتی پویا

[Size must be between 0 and 2000 inclusive]

kalas[].name

true

String

نام کالا

[Must not be null]

kalas[].price

true

Number

مبلغ کالا

[Must not be null]

kalas[].count

true

Number

تعداد کالا

[Must not be null]

kalas[].brand

true

String

برند کالا

[]

kalas[].service

true

Boolean

آیا کالا مورد نظر از جنس خدمات هست

[]

7.2.2. response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /apg/v1/get/32c8e479-6534-4e6b-a9a7-5aeeae3d1f6c
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 764

{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100004,"referenceCode":"32c8e479-6534-4e6b-a9a7-5aeeae3d1f6c","payeeName":"رستوران گیلانه","payerName":"رستم دستان","description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":false,"canceled":false,"createdDate":"2022-04-29T07:36:56.521370Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/32c8e479-6534-4e6b-a9a7-5aeeae3d1f6c","cancelDescription":null,"kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":true,"paymentStatus":"DEFAULT","callbackUrl":"http://localhost:8081/apg/v1/callback?token=N10PSeaXAH"}
7.2.2.1. response fields
Path Type Description

amount

Number

مبلغ تراکنش

paymentUrl

String

آدرس اینترنتی پرداخت

paid

Boolean

وضعیت پرداخت

trackingNumber

Number

شماره پیگیری

referenceCode

String

کد مرجع

payerMobile

String

شماره پرداخت کننده

payerName

String

نام پرداخت کننده

referralCode

Number

کد معرف دریافت کننده

payeeName

String

نام دریافت کننده (حقیقی یا حقوقی)

paymentNumber

String

شماره پرداخت مربوط به تراکنش

description

String

توضیحات مربوط به تراکنش

extraData

String

اطلاعات اضافی

canceled

Boolean

وضعیت لغو

cancelDescription

Null

توضیحات مربوط به لغو درخواست

createdDate

String

زمان ایجاد تراکنش

issuerMustVerifyPayment

Boolean

آیا تایید تراکنش بوسیله پذیرنده ضروری است

paymentStatus

String

وضعیت پرداخت در صورت ضروری بودن تایید تراکنش
DEFAULT
WAITING_FOR_VERIFY
VERIFIED

callbackUrl

String

آدرس برگشتی پویا

kalas[].name

String

نام کالا

kalas[].price

Number

قیمت کالا

kalas[].count

Number

تعداد کالا

kalas[].service

Boolean

نوع سرویس

kalas[].brand

String

برند کالا

kalas[].description

Null

توضیحات کالا

7.3. Get Payment

Get existing payment with reference code.

7.3.1. request

GET /apg/v1/get/77a1965f-0b03-4242-bf2a-dfc9eee829ab HTTP/1.1
Content-Type: application/json;charset=UTF-8
APG-API-KEY: APG1B1dPzCJMSkUeRsv1OfBKzS8xIHfDCmYkUsqy2sGygVvSWlUfIBe8nFsmeX7c
APG-WALLET-ID: 10012036
Host: localhost:8080

7.3.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 765

{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100003,"referenceCode":"77a1965f-0b03-4242-bf2a-dfc9eee829ab","payeeName":"رستوران گیلانه","payerName":"رستم دستان","description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":false,"canceled":false,"createdDate":"2022-04-29T07:36:56.443294Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/77a1965f-0b03-4242-bf2a-dfc9eee829ab","cancelDescription":null,"kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":false,"paymentStatus":"DEFAULT","callbackUrl":"http://localhost:8081/apg/v1/callback?token=1WKnVEIWzY"}
7.3.2.1. response fields
Path Type Description

amount

Number

مبلغ تراکنش

paymentUrl

String

آدرس اینترنتی پرداخت

paid

Boolean

وضعیت پرداخت

trackingNumber

Number

شماره پیگیری

referenceCode

String

کد مرجع

payerMobile

String

شماره پرداخت کننده

payerName

String

نام پرداخت کننده

referralCode

Number

کد معرف دریافت کننده

payeeName

String

نام دریافت کننده (حقیقی یا حقوقی)

paymentNumber

String

شماره پرداخت مربوط به تراکنش

description

String

توضیحات مربوط به تراکنش

extraData

String

اطلاعات اضافی

canceled

Boolean

وضعیت لغو

cancelDescription

Null

توضیحات مربوط به لغو درخواست

createdDate

String

زمان ایجاد تراکنش

issuerMustVerifyPayment

Boolean

آیا تایید تراکنش بوسیله پذیرنده ضروری است

paymentStatus

String

وضعیت پرداخت در صورت ضروری بودن تایید تراکنش
DEFAULT
WAITING_FOR_VERIFY
VERIFIED

callbackUrl

String

آدرس برگشتی پویا

kalas[].name

String

نام کالا

kalas[].price

Number

قیمت کالا

kalas[].count

Number

تعداد کالا

kalas[].service

Boolean

نوع سرویس

kalas[].brand

String

برند کالا

kalas[].description

Null

توضیحات کالا

7.4. Cancel Payment

Cancel existing payment with reference code.

7.4.1. request

POST /apg/v1/cancel HTTP/1.1
Content-Type: application/json;charset=UTF-8
APG-API-KEY: APG1B1dPzCJMSkUeRsv1OfBKzS8xIHfDCmYkUsqy2sGygVvSWlUfIBe8nFsmeX7c
APG-WALLET-ID: 10012036
Content-Length: 100
Host: localhost:8080

{"referenceCode":"dfdc980e-2428-4772-a47e-c05ca20a98b4","cancelDescription":"قیمت اشتباه"}

7.4.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 783

{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100000,"referenceCode":"dfdc980e-2428-4772-a47e-c05ca20a98b4","payeeName":"رستوران گیلانه","payerName":"رستم دستان","description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":false,"canceled":true,"createdDate":"2022-04-29T07:36:56.204029Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/dfdc980e-2428-4772-a47e-c05ca20a98b4","cancelDescription":"قیمت اشتباه","kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":false,"paymentStatus":"DEFAULT","callbackUrl":"http://localhost:8081/apg/v1/callback?token=D7e3coXjfD"}
7.4.2.1. response fields
Path Type Description

amount

Number

مبلغ تراکنش

paymentUrl

String

آدرس اینترنتی پرداخت

paid

Boolean

وضعیت پرداخت

trackingNumber

Number

شماره پیگیری

referenceCode

String

کد مرجع

payerMobile

String

شماره پرداخت کننده

payerName

String

نام پرداخت کننده

referralCode

Number

کد معرف دریافت کننده

payeeName

String

نام دریافت کننده (حقیقی یا حقوقی)

paymentNumber

String

شماره پرداخت مربوط به تراکنش

description

String

توضیحات مربوط به تراکنش

extraData

String

اطلاعات اضافی

canceled

Boolean

وضعیت لغو

cancelDescription

String

توضیحات مربوط به لغو درخواست

createdDate

String

زمان ایجاد تراکنش

issuerMustVerifyPayment

Boolean

آیا تایید تراکنش بوسیله پذیرنده ضروری است

paymentStatus

String

وضعیت پرداخت در صورت ضروری بودن تایید تراکنش
DEFAULT
WAITING_FOR_VERIFY
VERIFIED

callbackUrl

String

آدرس برگشتی پویا

kalas[].name

String

نام کالا

kalas[].price

Number

قیمت کالا

kalas[].count

Number

تعداد کالا

kalas[].service

Boolean

نوع سرویس

kalas[].brand

String

برند کالا

kalas[].description

Null

توضیحات کالا

7.5. List Payments

List existing payments with created date.

7.5.1. request

GET /apg/v1/list?page=0&size=20&sort=createdDate,asc&createdDate.greaterThan=2022-04-21T19:30:00Z&createdDateTo.lessThanOrEqual=2022-04-29T07:36:56.395773Z HTTP/1.1
Content-Type: application/json;charset=UTF-8
APG-API-KEY: APG1B1dPzCJMSkUeRsv1OfBKzS8xIHfDCmYkUsqy2sGygVvSWlUfIBe8nFsmeX7c
APG-WALLET-ID: 10012036
Host: localhost:8080
7.5.1.1. request parameters
Parameter Description

page

شماره صفحه

size

سایز صفحه

sort

ستون و جهت ترتیب

createdDate.greaterThan

فیلتر با تاریخ ایجاد بزرگتر از

createdDateTo.lessThanOrEqual

فیلتر با تاریخ ایجاد کوچکتر یا مساوی

7.5.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Total-Count: 3
Link: </apg/v1/list?page=0&size=20>; rel="last",</apg/v1/list?page=0&size=20>; rel="first"
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 2266

[{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100000,"referenceCode":"dfdc980e-2428-4772-a47e-c05ca20a98b4","payeeName":"رستوران گیلانه","payerName":null,"description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":false,"canceled":true,"createdDate":"2022-04-29T07:36:56.204029Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/dfdc980e-2428-4772-a47e-c05ca20a98b4","cancelDescription":"قیمت اشتباه","kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":false,"paymentStatus":"DEFAULT","callbackUrl":"http://localhost:8081/apg/v1/callback?token=D7e3coXjfD"},{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100001,"referenceCode":"bad54c5f-38b0-4a3e-81f7-2bf77971b34c","payeeName":"رستوران گیلانه","payerName":null,"description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":false,"canceled":false,"createdDate":"2022-04-29T07:36:56.309060Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/bad54c5f-38b0-4a3e-81f7-2bf77971b34c","cancelDescription":null,"kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":false,"paymentStatus":"DEFAULT","callbackUrl":"http://localhost:8081/apg/v1/callback?token=v4ch6GVr0M"},{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100002,"referenceCode":"17e9e6a8-12c7-4627-8c7b-56059e771185","payeeName":"رستوران گیلانه","payerName":null,"description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":false,"canceled":false,"createdDate":"2022-04-29T07:36:56.359289Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/17e9e6a8-12c7-4627-8c7b-56059e771185","cancelDescription":null,"kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":false,"paymentStatus":"DEFAULT","callbackUrl":"http://localhost:8081/apg/v1/callback?token=rY5qaZvYS9"}]
7.5.2.1. response fields

7.6. Verify Payment

Verify existing payment with reference code.

7.6.1. request

POST /apg/v1/verify/32c8e479-6534-4e6b-a9a7-5aeeae3d1f6c HTTP/1.1
APG-API-KEY: APG1B1dPzCJMSkUeRsv1OfBKzS8xIHfDCmYkUsqy2sGygVvSWlUfIBe8nFsmeX7c
APG-WALLET-ID: 10012036
Host: localhost:8080

7.6.2. response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Content-Length: 764

{"amount":1000000,"referralCode":100120,"payerMobile":"09121122333","trackingNumber":100004,"referenceCode":"32c8e479-6534-4e6b-a9a7-5aeeae3d1f6c","payeeName":"رستوران گیلانه","payerName":"رستم دستان","description":"تراکنش تستی","extraData":"{\"product\": \"clock\"}","paymentNumber":"123456","paid":true,"canceled":false,"createdDate":"2022-04-29T07:36:56.521370Z","paymentUrl":"https://localhost:8080/api/public/v1/payment/init/32c8e479-6534-4e6b-a9a7-5aeeae3d1f6c","cancelDescription":null,"kalas":[{"name":"گرز","price":800000.00,"count":1,"service":false,"brand":"اصیل","description":null}],"issuerMustVerifyPayment":true,"paymentStatus":"VERIFIED","callbackUrl":"http://localhost:8081/apg/v1/callback?token=N10PSeaXAH"}
7.6.2.1. response fields
Path Type Description

amount

Number

مبلغ تراکنش

paymentUrl

String

آدرس اینترنتی پرداخت

paid

Boolean

وضعیت پرداخت

trackingNumber

Number

شماره پیگیری

referenceCode

String

کد مرجع

payerMobile

String

شماره پرداخت کننده

payerName

String

نام پرداخت کننده

referralCode

Number

کد معرف دریافت کننده

payeeName

String

نام دریافت کننده (حقیقی یا حقوقی)

paymentNumber

String

شماره پرداخت مربوط به تراکنش

description

String

توضیحات مربوط به تراکنش

extraData

String

اطلاعات اضافی

canceled

Boolean

وضعیت لغو

cancelDescription

Null

توضیحات مربوط به لغو درخواست

createdDate

String

زمان ایجاد تراکنش

issuerMustVerifyPayment

Boolean

آیا تایید تراکنش بوسیله پذیرنده ضروری است

paymentStatus

String

وضعیت پرداخت در صورت ضروری بودن تایید تراکنش
DEFAULT
WAITING_FOR_VERIFY
VERIFIED

callbackUrl

String

آدرس برگشتی پویا

kalas[].name

String

نام کالا

kalas[].price

Number

قیمت کالا

kalas[].count

Number

تعداد کالا

kalas[].service

Boolean

نوع سرویس

kalas[].brand

String

برند کالا

kalas[].description

Null

توضیحات کالا

7.6.2.2. paymentStatus

paymentStatus can be either DEFAULT, WAITING_FOR_VERIFY or VERIFIED.
Please note payments will go to WAITING_FOR_VERIFY state for 15 minutes and if we don’t receive verification within this time,
then paymentStatus will go back to DEFAULT state and paid status remains as 'false'.
Obviously IPG verification also fails and the flow must be repeated from redirecting customer to APG with created referenceCode.