INTRODUCTION

Dokumen ini ditujukan untuk menjelaskan tentang Open API (application programming interface) tiketapasaja untuk tiketbox maupun sponsor yang memungkinkan sponsor maupun tiketbox mengintegrasi transaksi penjualan tiket secara langsung antara sistem tiketbox maupun sponsor dengan sistem tiketapasaja.

Panduan ini ditujukan untuk PIC teknis / sistem developer yang bertanggung jawab untuk melakukan pengembangan dan integrasi untuk berkomunikasi dengan sistem yang kami miliki terkait dengan penjualan tiket online.

Document Sign-Off

Version 1.0
Role Name Signature Date
Author Eko Jiono
Reviewer Anggun Indra Saputra
Approver Ibnu Farid Iskandar

Integrasi

  • Tiketbox or Sponsor Request data ke sistem Tiketapasaja
  • Tiketapasaja memberikan callback sesuai request

Authentication/Sign

Melakukan Authentikasi dengan appid dan key_secret yang sudah di sediakan :

GET http://api.tiketapasaja.com/v1/sign?appid=[appid]&key_secret=[key_secret]

Parameter

appid : integer *required
key_secret : string *required

Response Success JSON

{
	"code": 200,
	"status": "success",
	"token": "c150729d26284ecaaca6c3c67d2856e1866201a4"
}
		

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "appid dan key_secret tidak boleh kosong"
}
or
{
    "code": 302,
    "status": "error",
    "message": "appid atau key_secret tidak valid atau status api tidak aktif."
}
		

FLOW ORDERS

Request List Events

Request data list event dengan token yang sudah di dapatkan :

GET http://api.tiketapasaja.com/v1/events?token=[token]

Parameter

token : string *required

Response Success JSON

{
    "code": 200,
    "status": "success",
    "result": [
        {
            "event_id": 132,
            "event_name": "JOGJAROCKARTA ROCK FESTIVAL",
            "event_slug": "jogjarockarta-rock-festival",
            "event_image": "tiketapasaja_6156120170912135009.jpg",
            "event_start": "2017-09-29 14:00:00",
            "event_finish": "2017-09-30 23:00:00",
            "event_location": "Bokoharjo, Kec. Prambanan, Kabupaten Sleman, Daerah Istimewa Yogyakarta",
            "event_status": "active",
            "popup_message": "",
            "popup_message_english": "",
            "buy_other_category": 1,
            "timeout_data_entry": 50,
            "timeout_payment": 60,
            "category_ticket": [
                {
                    "id": 217,
                    "event_id": 132,
                    "category_name": "1st SHOW | FESTIVAL A| 29 Sept 2017",
                    "category_slug": "1st-show-festival-a-29-sept-2017",
                    "disable": "yes",
                    "date_open_ticket": "2017-08-04 10:00:00",
                    "date_close_ticket": "2017-09-27 23:00:00",
                    "type_ticket": "no seat",
                    "price": 0
                },
                {
                    "id": 218,
                    "event_id": 132,
                    "category_name": "1st SHOW | FESTIVAL B|29 Sept 2017",
                    "category_slug": "1st-show-festival-b29-sept-2017",
                    "disable": "yes",
                    "date_open_ticket": "2017-08-04 10:00:00",
                    "date_close_ticket": "2017-09-27 21:00:00",
                    "type_ticket": "no seat",
                    "price": 0
                }
            ]
        },
        {
            "event_id": 159,
            "event_name": "DASH BERLIN",
            "event_slug": "dash-berlin",
            "event_image": "tiketapasaja_8683620170904142844.jpg",
            "event_start": "2017-09-27 21:00:00",
            "event_finish": "2017-09-27 23:00:00",
            "event_location": "Jl. Magelang KM.5,5, Sinduadi, Mlati, Kabupaten Sleman, Daerah Istimewa Yogyakarta 55284",
            "event_status": "active",
            "popup_message": "",
            "popup_message_english": "",
            "buy_other_category": 1,
            "timeout_data_entry": 50,
            "timeout_payment": 60,
            "category_ticket": [
                {
                    "id": 222,
                    "event_id": 159,
                    "category_name": "EARLY BIRD",
                    "category_slug": "early-bird",
                    "disable": "no",
                    "date_open_ticket": "2017-08-31 15:00:00",
                    "date_close_ticket": "2017-09-26 21:00:00",
                    "type_ticket": "no seat",
                    "price": 300000
                }
            ]
        }
}
			

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "token tidak boleh kosong"
}
or
{
    "code": 304,
    "status": "error",
    "message": "token tidak valid"
}
		

Request Detail Event

Request data detail event dengan token yang sudah di dapatkan :

GET http://api.tiketapasaja.com/v1/event?token=[token]&event_id=[event_id]

Parameter

token : string *required
event_id : integer *required

Response Success JSON

{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": 131,
        "event_name": "LA LA LAND IN CONCERT",
        "event_slug": "la-la-land-in-concert",
        "event_image": "tiketapasaja_3496820170714103551.jpeg",
        "event_start": "2017-11-04 18:00:00",
        "event_finish": "2017-11-05 21:00:00",
        "event_location": "Jl. Prof. DR. Satrio, RT.18/RW.4, Karet Kuningan, Setia Budi, Kota Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12940",
        "popup_message": "",
        "popup_message_english": "Sorry System In Repair, you can place your order again on Tuesday 25th july 2017. Thank You",
        "category_ticket": [
            {
                "id": 199,
                "event_id": 131,
                "category_name": "DAY 1 - DIAMOND",
                "category_slug": "day-1-diamond",
                "date_open_ticket": "2017-07-15 12:00:00",
                "date_close_ticket": "2017-11-02 21:00:00",
                "type_ticket": "seat",
                "price": 2750000
            },
            {
                "id": 200,
                "event_id": 131,
                "category_name": "DAY 1 - PLATINUM",
                "category_slug": "day-1-platinum",
                "date_open_ticket": "2017-07-15 12:00:00",
                "date_close_ticket": "2017-11-02 21:00:00",
                "type_ticket": "seat",
                "price": 2000000
            },
            {
                "id": 205,
                "event_id": 131,
                "category_name": "DAY 2 - DIAMOND",
                "category_slug": "day-2-diamond",
                "date_open_ticket": "2017-07-15 12:00:00",
                "date_close_ticket": "2017-11-02 21:00:00",
                "type_ticket": "seat",
                "price": 2750000
            },
            {
                "id": 206,
                "event_id": 131,
                "category_name": "DAY 2 - PLATINUM",
                "category_slug": "day-2-platinum",
                "date_open_ticket": "2017-07-15 12:00:00",
                "date_close_ticket": "2017-11-02 21:00:00",
                "type_ticket": "seat",
                "price": 2000000
            },
            {
                "id": 207,
                "event_id": 131,
                "category_name": "DAY 2 - GOLD",
                "category_slug": "day-2-gold",
                "date_open_ticket": "2017-07-15 12:00:00",
                "date_close_ticket": "2017-11-02 23:00:00",
                "type_ticket": "seat",
                "price": 1250000
            }
        ]
    }
}
			

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "event_id tidak boleh kosong"
}
		

Request Availables Seat by Event

Request kuota tersedia berdasarkan event_id dan cat_id :

GET http://api.tiketapasaja.com/v1/availableseats?token=[token]&event_id=[event_id]&cat_id=[cat_id]

Parameter

token : string *required
event_id : integer *required
cat_id : integer *required

Response Success | type_ticket='no seat' JSON

{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": "1192",
    	"cat_id": 210,
        "type_ticket": "no seat",
        "min": 2,
        "max": 2,
        "available": 1344
    }
}
			

Response Success | type_ticket='seat' JSON

{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": 131,
    	"cat_id": 211,
        "type_ticket": "seat",
        "min": 5,
        "max": 5,
        "available": [
            {
                "id": 294976,
                "block_name": "B-982"
            },
            {
                "id": 294977,
                "block_name": "B-983"
            },
            {
                "id": 295020,
                "block_name": "C-26"
            },
            {
                "id": 295021,
                "block_name": "C-27"
            }
        ]
    }
}
			

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "cat_id dan event_id tidak boleh kosong"
}
or
{
    "code": 310,
    "status": "error",
    "message": "event_id tidak valid"
}
or
{
    "code": 308,
    "status": "error",
    "message": "cat_id tidak valid"
}
		

Send post orders

Kirim data orders:

POST http://api.tiketapasaja.com/v1/orders

Parameter

token : string *required
event_id : integer *required
name : string *required
email : string *required
phone : string *required
id_number : integer (optional)
gender : integer *required [1=Male, 0=Female]
place_of_birth : string (optional)
date_of_birth : date (optional) [YYYY-MM-DD]
city : string (optional)
detail : array
cat_id : integer *required
type_ticket : string *required (seat | no seat)
data : array | integer *required

Berikut contoh data orders JSON

{
    "token": "27bb6123ccd6b5d413797da32a9ec586833e9a98",
    "event_id" : 131,
    "name" : "namapemesan",
    "email" : "[email protected]",
    "phone": "0329429834",
    "id_number" : 902348023423292,
    "gender": 1,
    "place_of_birth" : "Sleman",
    "date_of_birth" : "2017-01-01",
    "city": "Sleman",
    "detail": [{
        "cat_id": 199,
        "type_ticket" : "seat",
        "data" : [294976,294977,295020,295021]
    },{
    	"cat_id": 200,
    	"type_ticket" : "no seat",
        "data":5
    }]
}
			

 

Response Success JSON
{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": 131,
        "uuid": "6332a7eb1c320",
        "booking_id": 35318,
        "code_ticket": "D106A3",
        "name": "namapemesan",
        "email": "[email protected]",
        "phone": "0329429834",
        "status": "waiting",
        "expired_time_order": "2020-11-20 20:00:00",
        "detail": [
            {
                "cat_id": 199,
                "code_seat": "45AC60307C",
                "price": 2750000,
                "seat_name": "F - 15"
            },
            {
                "cat_id": 199,
                "code_seat": "A90F88A050",
                "price": 5500000,
                "seat_name": "F - 22"
            }
        ]
    }
}
			

 

Response Filed JSON
{
    "code": 311,
    "status": "error",
    "message": "Kursi sudah di pesan orang lain lebih dulu. "
}
			

Change Status orders

Update data status:

POST http://api.tiketapasaja.com/v1/updatestatus

Parameter

token : string *required
booking_id : integer *required
status : string *required (approve | reject)
send_eticket : integer *required default (0) (0 = no|1 = yes)
message : string *required

Berikut contoh data update status order JSON

{
    "token": "27bb6123ccd6b5d413797da32a9ec586833e9a98",
    "booking_id" : 35318,
    "status" : "approve",
    "send_eticket": 1,
    "message": "sukses"
}
			

{
    "token": "27bb6123ccd6b5d413797da32a9ec586833e9a98",
    "booking_id" : 35318,
    "status" : "reject",
    "send_eticket": 0,
    "message": "Gagal melakukan transaksi"
}
            

 

Jika berhasil maka akan mendapat respon JSON

{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": 131,
        "booking_id": 35318,
        "code_ticket": "D106A3",
        "status": "reject",
        "message": "Data berhasil diperbaharui"
    }
}
or
{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": 131,
        "booking_id": 35321,
        "code_ticket": "881576",
        "status": "approve",
        "message": "data berhasil diperbaharui"
    }
}
or 
{
    "code": 200,
    "status": "success",
    "message": "status order saat ini approve"
}
			

 

Jika gagal maka akan mendapat respon JSON

{
    "code": 315,
    "status": "error",
    "message": "Gagal proses update status order.. "
}
or
{
    "code": 314,
    "status": "error",
    "message": "status reject tidak bisa di ubah menjadi waiting maupun approve"
}
or
{
    "code": 313,
    "status": "error",
    "message": "booking_id tidak valid"
}
			

Resend Eticket

Resend Eticket bisa dilakukan apabila status order sudah approve dengan parameter sebagai berikut :

Kirim data resend eticket:

POST http://api.tiketapasaja.com/v1/resend-eticket

Parameter

token : string *required
booking_id : integer *required
Berikut contoh data resend eticket JSON

{
    "token": "27bb6123ccd6b5d413797da32a9ec586833e9a98",
    "booking_id" : 35318
}
			

 

Berikut contoh balikan jika berhasil JSON

{
    "code": 200,
    "status": "success",
    "result": {
        "event_id": 131,
        "booking_id": 35323,
        "code_ticket": "15B160",
        "status": "approve",
        "eticket": "https://dev-event.tiketapasaja.com/evoucher/6332a7eb1c320",
        "message": "Berhasil resend E-Ticket"
    }
}
			

 

Berikut contoh balikan jika gagal JSON

{
    "code": 313,
    "status": "error",
    "message": "booking_id tidak valid"
}
or
{
    "code": 301,
    "status": "error",
    "message": "booking_id tidak boleh kosong"
}
or
{
    "code": 304,
    "status": "error",
    "message": "token tidak valid"
}
			

Request Summary Report Global Sales

Request report global sales dengan token yang sudah di dapatkan :

POST http://api.tiketapasaja.com/v1/summary-report

Parameter : Body

token : string *required
Unthentikasi bisa lihat (disini)
event_id : integer *required
cat_id : integer | null (optional)
date_range : string (optional)
ex : 2017-01-01 20:23:23 - 2017-01-30 20:23:23

Response Success JSON

{
    "code": 200,
    "status": "success",
    "result": [
        {
            "no": 1,
            "category_ticket": "Red Area   Premiere Grand Stand B - Sec 2 Weekend Pass",
            "price": "2.150.000",
            "tax": "15% (410.500)",
            "discount": "-",
            "qty": 6,
            "total": "18.000.000"
        },
        {
            "no": 2,
            "category_ticket": "Tosca Area   Main Grand Stand 2 - Sec 4 Weekend Pass",
            "price": "850.000",
            "tax": "15% (271.500)",
            "discount": "-",
            "qty": 16,
            "total": "34.000.000"
        },
        {
            "no": 3,
            "category_ticket": "Blue Area   Main Grand Stand 1A - Sec 1 Weekend Pass",
            "price": "2.300.000",
            "tax": "15% (302.500)",
            "discount": "NONTON BALAP 10% 
(235.000)", "qty": 10, "total": "24.600.000" }, { "no": 4, "category_ticket": "Yellow Area Standard Grand Stand 1 - Sec 5 Weekend Pass", "price": "990.000", "tax": "15% (100.250)", "discount": "NONTON BALAP 10%
(99.500)", "qty": 5, "total": "5.200.750" } ], "total_ticket": "434", "grandtotal": "8.195.250" }

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "event_id tidak boleh kosong"
}
        

Request Summary Report Global Tiket

Request report global tiket dengan token yang sudah di dapatkan :

POST http://api.tiketapasaja.com/v1/report-ticket

Parameter : Body

token : string *required
Unthentikasi bisa lihat (disini)
event_id : integer *required
cat_id : integer | null (optional)

Response Success JSON

{
    "code": 200,
    "status": "success",
    "result": [
        {
            "no": 1,
            "kategori_tiket": "Blue Area 
Main Grand Stand 1A - Sec 3 Weekend Pass", "terjual": "3", "tersedia": "10", "total_tiket": "13" }, { "no": 2, "kategori_tiket": "Purple Area
West Grand Stand - Sec 5 Weekend Pass", "terjual": "5", "tersedia": "15", "total_tiket": "20" } ], "total_tiket_terjual": "498", "total_tiket_tersedia": "744", "global_tiket": "1.042" }

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "event_id tidak boleh kosong"
}
        

Request Report Order Detail

Request report global tiket dengan token yang sudah di dapatkan :

POST http://api.tiketapasaja.com/v1/report-order-detail

Parameter : Body

token : string *required
Unthentikasi bisa lihat (disini)
event_id : integer *required
cat_id : integer | null (optional)
status : string (optional)
ex : waiting | approve | reject

Response Success JSON

{
    "code": 200,
    "status": "success",
    "result": [
        {
            "booking_id": 22934,
            "ticket_seat_no": "A_91",
            "barcode": "MGTA9BK4BCD6BA4",
            "event_name": "World Superbike 2021 Indonesia Grand Prix Weekend Pass",
            "category": "Red Area Premiere Grand Stand A - Sec 1 Weekend Pass",
            "name": "Dedy Fardiansyah, SE",
            "id_number": "1234567890",
            "email": "[email protected]",
            "phone": "081315861983",
            "ttl": "1983-01-01",
            "eticket": null
        },
        {
            "booking_id": 22535,
            "ticket_seat_no": "A_131",
            "barcode": "MGTA98B84BBDA3",
            "event_name": "World Superbike 2021 Indonesia Grand Prix Weekend Pass",
            "category": "Grey Area Standard Grand Stand 2 - Sec 1 Weekend Pass",
            "name": "Rangga Idris Affandi",
            "id_number": "1234567890",
            "email": "[email protected]",
            "phone": "085331834678",
            "ttl": "1995-07-29",
            "eticket": null
        },
        {
            "booking_id": 22904,
            "ticket_seat_no": "A-105",
            "barcode": "MGTSCKH2E5EDED",
            "event_name": "World Superbike 2021 Indonesia Grand Prix Weekend Pass",
            "category": "Yellow Area Standard Grand Stand 1 - Sec 5 Weekend Pass",
            "name": "Chaka Oktavian",
            "id_number": "1234567890",
            "email": "[email protected]",
            "phone": "081568477452",
            "ttl": "1988-12-07",
            "eticket": null
        }
    ]
}
            

 

Response Filed JSON

{
    "code": 301,
    "status": "error",
    "message": "event_id tidak boleh kosong"
}
        

Error Code

Berikut ada beberapa list code berserta keterangannya jika terjadi error :

List Code

200 : Success
301 : Parameter dengan tanda (*) tidak boleh kosong.
302 : appid atau key_secret tidak valid atau status api tidak aktif.
303 : Gagal proses request token.
304 : token tidak valid.
305 : Gagal request daftar event.
306 : Gagal request detail event.
307 : Gagal request data kuota availabe.
308 : cat_id tidak valid.
309 : Kuota available sudah habis atau sold out.
310 : event_id tidak valid. atau EVENT XXX SUDAH LEWAT
311 :
  • Kursi sudah di pesan orang lain lebih dulu
  • Terjadi kesalahan, cek kembali seat_id dan cat_id
  • Tipe tiket tidak valid untuk cat_id xxx
  • Maksimal pemesanan per kategori adalah nnn
  • Sisa kuota tersedia kategori xxx adalah : yyy
  • Kuota no seat sudah habis
  • Sisa kuota no seat tersedia adalah : yyy
  • Maksimal dan minimal tiket per transaksi adalah nnn tiket
312 : Gagal proses data order.
313 : booking_id tidak valid.
314 : Status reject tidak bisa di ubah menjadi waiting maupun approve.
315 : Gagal proses update status order.
315 : Gagal proses resend e-ticket.

About

Tiketapasaja.com