Method: disburseFunds

Memulai perpindahan uang antara pemroses pembayaran dan akun pelanggan. Kombinasi requestId dalam header dan paymentIntegratorAccountId adalah kunci idempotency dan mengidentifikasi transaksi ini secara unik. Semua mutasi pada transaksi ini mengisi nilai requestId di kolom disburseFundsRequestId.

Jika endpoint mengalami error saat memproses permintaan, isi respons dari endpoint ini harus berjenis ErrorResponse.

Contoh permintaan terlihat seperti:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

Contoh respons akan terlihat seperti ini:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

Permintaan HTTP

POST https://www.integratorhost.example.com/v1/disburseFunds

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
Kolom
requestHeader

object (RequestHeader)

WAJIB: Header umum untuk semua permintaan.

paymentIntegratorAccountId

string

WAJIB: Ini adalah ID akun integrator pembayaran yang mengidentifikasi batasan kontrak terkait transaksi ini.

transactionDescription

string

WAJIB: Deskripsi transaksi yang dapat dimasukkan dalam laporan mutasi pelanggan. Dilokalkan ke userLocale yang ditemukan di requestHeader. Format ini dapat diubah tanpa pemberitahuan dan tidak boleh diuraikan.

currencyCode

string

WAJIB: Kode mata uang 3 huruf ISO 4217

amount

string (Int64Value format)

WAJIB: Jumlah pembelian, dalam mikro unit mata uang.

Kolom union destinationFopDetails.

destinationFopDetails hanya dapat berupa salah satu dari yang berikut:

upiDetails

object (UpiDetails)

OPSIONAL: Detail pembayaran khusus untuk instrumen UPI.

Isi respons

Objek respons untuk metode pencairan dana.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
Kolom
responseHeader

object (ResponseHeader)

WAJIB: Header umum untuk semua respons.

paymentIntegratorTransactionId

string

WAJIB: ID ini khusus untuk integrator dan dihasilkan oleh integrator. Ini adalah ID yang digunakan integrator untuk mengetahui transaksi ini.

Demi kemudahan, ID ini disertakan dalam detail transfer dana

disburseFundsResult

object (DisburseFundsResult)

WAJIB: Hasil dari panggilan pencairan dana.

UpiDetails

Detail tentang akun UPI yang akan menerima pengembalian dana.

Representasi JSON
{
  "vpa": string
}
Kolom
vpa

string

WAJIB: Alamat Pembayaran Virtual (VPA) pengguna yang digunakan untuk memindahkan uang menggunakan protokol UPI. Misalnya foo@icici.

DisburseFundsResult

Informasi tentang hasil akhir pencairan.

Representasi JSON
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string
  // End of list of possible types for union field FailureDetail.
}
Kolom
disburseFundsResultCode

enum (DisburseFundsResultCode)

WAJIB: Kode hasil pencairan ini.

rawResult

object (RawResult)

OPSIONAL: Hasil mentah dari pencairan ini. Digunakan untuk membantu memberi tahu mesin risiko dan analisis Google. Dalam situasi pemetaan kode penolakan, data terkadang hilang. Integrator dapat memilih untuk memberikan kode mentah kepada Google. Misalnya, gateway kartu kredit (integrator) dapat menggunakan kolom ini untuk menyampaikan kode penolakan persisnya yang diterima dari jaringan VISA kepada Google. Dalam hal ini, scope akan menjadi "visa" dan rawCode akan menjadi apa pun yang ditampilkan oleh jaringan VISA.

Nilai ini wajib jika result bukan SUCCESS.

Kolom union FailureDetail.

FailureDetail hanya dapat berupa salah satu dari yang berikut:

transactionMaxLimit

string (Int64Value format)

OPSIONAL: Jika disburseFundsResultCode adalah DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT, ini adalah nilai transaksi maksimum yang diizinkan. Hal ini digunakan untuk analisis rasio penolakan dan pesan terstruktur yang ditampilkan kepada pengguna.

Jumlah ini mikro dari currencyCode yang sama seperti panggilan metode disburseFunds asli.

transactionMinLimit

string (Int64Value format)

OPSIONAL: Jika disburseFundsResultCode adalah DISBURSEMENT_UNDER_TRANSACTION_LIMIT, ini adalah nilai transaksi minimum yang diizinkan. Hal ini digunakan untuk analisis rasio penolakan dan pesan terstruktur yang ditampilkan kepada pengguna.

Jumlah ini mikro dari currencyCode yang sama seperti panggilan metode disburseFunds asli.

DisburseFundsResultCode

Kode hasil untuk panggilan pencairan dana.

Enum
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini!
SUCCESS Pencairan berhasil.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT Jumlah pencairan yang diminta tidak memenuhi jumlah minimum per transaksi integrator. Jika kode ini digunakan, isi kolom transactionMinLimit dengan jumlah transaksi minimum untuk tujuan pesan pengguna.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT Jumlah pencairan yang diminta melebihi batas maksimum per transaksi integrator. Jika kode ini digunakan, isi kolom transactionMaxLimit dengan batas transaksi untuk tujuan pesan pengguna.
ACCOUNT_CLOSED Akun pengguna yang disimpan dengan integrator telah ditutup. Nilai hasil ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa menambahkan instrumen baru.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Akun pengguna dengan integrator telah ditutup, akun yang dicurigai mengambil alih. Nilai hasil ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa menambahkan instrumen baru.
ACCOUNT_CLOSED_FRAUD Akun pengguna yang disimpan dengan integrator telah ditutup karena penipuan. Nilai hasil ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa menambahkan instrumen baru.
ACCOUNT_ON_HOLD Akun pengguna ditangguhkan.

RawResult

Objek hasil mentah.

Representasi JSON
{
  "scope": string,
  "rawCode": string
}
Kolom
scope

string

OPSIONAL: Cakupan rawCode, boleh kosong.

rawCode

string

WAJIB: Kode mentah dari integrator atau subsistem di dalamnya.