NAV Navbar
Logodoku
  • Introduction
  • Getting Started
  • KIRIMDOKU API
  • API Response
  • List of Supported Banks
  • List of Overseas Banks
  • Version
  • Introduction

    KIRIMDOKU API supports three methods of transfer processing, i.e: Bank Transfer, DOKU Wallet Transfer, and Outgoing Remittance. In KIRIMDOKU, these methods are distinguished as channels. See below for features of each channel:

    1. DOKU Wallet Transfer (Channel 04): Wallet transfer service where transfer destination goes to the beneficiary DOKU wallet. With this service, a partner is required to validate the DOKU wallet account through inquiry.

    2. Bank Transfer (Channel 07): Bank transfer service where transfer destination goes to the beneficiary's Indonesian bank and e-wallet account. With this service, a partner is required to validate the bank or e-wallet account through inquiry.

    3. Outgoing Remittance (Channel 09): Bank transfer service where transfer destination goes to the beneficiary's overseas bank account. With this service, users can make money transfers abroad.

    Getting Started

    To integrate, a merchant should have AGENTKEY. Please prepare a minimum of 3 email credentials to be registered on the KIRIMDOKU system. The main function of these 3 email addresses are:

    Process Flow

    Below is the process flow between KIRIMDOKU and partners that can be used to perform a certain action.

    KIRIMDOKU URL

    KIRIMDOKU has 2 separate environments for sandbox/staging and production, distinguished by using different URLs and key credentials. You can integrate and test with our staging environment before going live.

    Below are the URLs of KIRIMDOKU API:

    Staging/sandbox URL https://staging.doku.com/apikirimdoku

    Production URL https://kirimdoku.com/v2/api

    Shared Key Hash Value

    Sample Encryption Method

    private static final String ALGORITHM = "AES";
    public static String encrypt(String valueToEnc, String encKey) throws Exception {
        Key key = new SecretKeySpec(encKey.getBytes(), ALGORITHM);
        Cipher c = Cipher.getInstance(ALGORITHM);
        c.init(Cipher.ENCRYPT_MODE, key);
        byte[] encValue = c.doFinal(valueToEnc.getBytes());
        return new String(Base64.encodeBase64(encValue));
    }

    public static void main(String[] args) throws Exception {
        String concatenatedString = "A41418" + "e8a32355-e202-4bc7-8ae7-ad4e7316bbcb";
        String encryptionKey = "627054fevj1sutvs";
        String signature = encrypt(concatenatedString, encryptionKey);
        System.out.println(signature);
    }
    <?php
        $agentKey = "A41418";
        $requestId = "e8a32355-e202-4bc7-8ae7-ad4e7316bbcb";
        $plaintext = $agentKey . $requestId;
        $key ="627054fevj1sutvs";
        $cipher = "aes-128-ecb";
        if (in_array($cipher, openssl_get_cipher_methods()))
        {
            $ciphertext = openssl_encrypt($plaintext, $cipher, $key);
            echo $ciphertext;
            echo "<br/> ";
            $original_plaintext = openssl_decrypt($ciphertext, $cipher, $key);
            echo $original_plaintext;
        }
    ?>
    package main

    import (
        "bytes"
        "crypto/aes"
        "crypto/cipher"
        "encoding/base64"
        "fmt"
    )

    func main() {
        src := "A41418e8a32355-e202-4bc7-8ae7-ad4e7316bbcb"
        key := "627054fevj1sutvs"
        crypted := AesEncrypt(src, key)
        AesDecrypt(crypted, []byte(key))
    }

    func AesDecrypt(crypted, key []byte) []byte {
        block, err := aes.NewCipher(key)
        if err != nil {
            fmt.Println("err is:", err)
        }
        blockMode := NewECBDecrypter(block)
        origData := make([]byte, len(crypted))
        blockMode.CryptBlocks(origData, crypted)
        origData = PKCS5UnPadding(origData)
        plain := string(origData)
        fmt.Println("plain:", plain)
        return origData
    }

    func AesEncrypt(src, key string) []byte {
        block, err := aes.NewCipher([]byte(key))
        if err != nil {
            fmt.Println("key error1", err)
        }
        if src == "" {
            fmt.Println("plain content empty")
        }
        ecb := NewECBEncrypter(block)
        content := []byte(src)
        content = PKCS5Padding(content, block.BlockSize())
        crypted := make([]byte, len(content))
        ecb.CryptBlocks(crypted, content)
        fmt.Println("encrypted:", base64.StdEncoding.EncodeToString(crypted))
        return crypted
    }

    func PKCS5Padding(ciphertext []byte, blockSize int) []byte {
        padding := blockSize - len(ciphertext)%blockSize
        padtext := bytes.Repeat([]byte{byte(padding)}, padding)
        return append(ciphertext, padtext...)
    }

    func PKCS5UnPadding(origData []byte) []byte {
        length := len(origData)
        unpadding := int(origData[length-1])
        return origData[:(length - unpadding)]
    }

    type ecb struct {
        b cipher.Block
        blockSize int
    }

    func newECB(b cipher.Block) *ecb {
        return &ecb{
            b: b,
            blockSize: b.BlockSize(),
        }
    }

    type ecbEncrypter ecb

    func NewECBEncrypter(b cipher.Block) cipher.BlockMode {
        return (*ecbEncrypter)(newECB(b))
    }
    func (x *ecbEncrypter) BlockSize() int { return x.blockSize }
    func (x *ecbEncrypter) CryptBlocks(dst, src []byte) {
        if len(src)%x.blockSize != 0 {
            panic("crypto/cipher: input not full blocks")
        }
        if len(dst) < len(src) {
            panic("crypto/cipher: output smaller than input")
        }
        for len(src) > 0 {
            x.b.Encrypt(dst, src[:x.blockSize])
            src = src[x.blockSize:]
            dst = dst[x.blockSize:]
        }
    }

    type ecbDecrypter ecb

    func NewECBDecrypter(b cipher.Block) cipher.BlockMode {
        return (*ecbDecrypter)(newECB(b))
    }
    func (x *ecbDecrypter) BlockSize() int { return x.blockSize }
    func (x *ecbDecrypter) CryptBlocks(dst, src []byte) {
        if len(src)%x.blockSize != 0 {
            panic("crypto/cipher: input not full blocks")
        }
        if len(dst) < len(src) {
            panic("crypto/cipher: output smaller than input")
        }
        for len(src) > 0 {
            x.b.Decrypt(dst, src[:x.blockSize])
            src = src[x.blockSize:]
            dst = dst[x.blockSize:]
        }
    }

    To secure the communication, DOKU implements Shared Key Hash Value - an additional parameter from Merchant or DOKU, called SIGNATURE. This parameter value is hashed using AES hash method with combination of ENCRYPTIONKEY. The hashed SIGNATURE generated by partner will be validated with hashed SIGNATURE generated by DOKU System and vice versa. If match, then it will be considered genuine request or response.

    You can access KIRIMDOKU API staging by using these keys:

    Below is the sample code to generate signature:

    Step - 1

    Combine your agentKey and requestId to generate a raw string. Example:

    String concatenatedString = "A41418" + "e8a32355-e202-4bc7-8ae7-ad4e7316bbcb"

    concatednatedString will result in "A41418e8a32355-e202-4bc7-8ae7-ad4e7316bbcb"

    Step - 2

    An example of JAVA implementation to generate SIGNATURE is shown as below:

    private static final String ALGORITHM = "AES";
    public static String encrypt(String valueToEnc, String encKey) throws Exception {
        Key key = new SecretKeySpec(encKey.getBytes(), ALGORITHM);
        Cipher c = Cipher.getInstance(ALGORITHM);
        c.init(Cipher.ENCRYPT_MODE, key);
        byte[] encValue = c.doFinal(valueToEnc.getBytes());
        return new String(Base64.encodeBase64(encValue));
    }

    Step - 3

    Use concatenatedString with the 16 char ENCRYPTIONKEY given by KIRIMDOKU system to generate SIGNATURE content. An example of JAVA implementation is shown as below:

    String concatenatedString = "A41418" + "e8a32355-e202-4bc7-8ae7-ad4e7316bbcb";
    String encryptionKey = "627054fevj1sutvs";
    String signature = encrypt(concatenatedString, encryptionKey);
    // signature value shoud be:
    // HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0

    KIRIMDOKU API

    This API reference is organized by KIRIMDOKU team. Any changes or updates will be notified by authorized personnel from DOKU to partners.

    PING

    Endpoint Method Definition
    /ping HTTP POST Check connection availibility to API KIRIMDOKU

    REQUEST HEADER

    Name Mandatory Value
    Content-Type Mandatory application/json

    REQUEST BODY

    Name Type Mandatory Description
    agentKey String Mandatory Given AGENTKEY
    requestId String Mandatory A unique request identifier.
    It is advisable to use UUID format.
    signature String Mandatory Refer to Shared Key Hash Value section.

    RESPONSE BODY

    Name Type Description
    status Integer Response status (Success: 0)
    message String Response message (Success: Ok)

    Check Balance

    Check Balance Request Example

    curl -X POST \
    https://staging.doku.com/apikirimdoku/checkbalance \
    -H 'Content-Type: application/json' \
    -d '{
      "agentKey": "A41418",
      "requestId": "e8a32355-e202-4bc7-8ae7-ad4e7316bbcb",
      "signature": "HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0"
    }'
    Endpoint Method Definition
    /checkbalance HTTP POST To check partner last deposit balance

    REQUEST HEADER

    Name Mandatory Value
    Content-Type Mandatory application/json

    Check Balance - Success Response Example

    {
      "status": 0,
      "message": "Check balance success",
      "balance": {
        "corporateName": "ABC Corp (TEST)",
        "creditLimit": 0.000000,
        "creditAlertLimit": 0.000000,
        "creditLastBalance": 9999696393837.600000
      }
    }

    Check Balance - Failed Response Example

    {
      "status" : 91,
      "message" : "The Corporate is not active"
    }

    REQUEST BODY

    Name Type Mandatory Description
    agentKey String Mandatory Given AGENTKEY
    requestId String Mandatory A unique request identifier.
    It is advisable to use UUID format.
    signature String Mandatory Refer to Shared Key Hash Value section.

    RESPONSE BODY

    Name Type Description Example
    status Integer Response status 0
    message String Response message Check balance success
    balance Object Refer to Balance Object section.

    Check Rates

    Check Rates Request Example

    curl --location --request GET 'https://staging.doku.com/apikirimdoku/corporate/rate' \
    --header 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    --header 'agentKey: A41418' \
    --header 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    --data-raw ''
    Endpoint Method Definition
    /corporate/rate HTTP GET To fetch partner's exchange rates of all currencies

    REQUEST HEADER

    Name Mandatory Value
    Content-Type Mandatory application/json

    Check Rates - Success Response Example

    {
      "status": 0,
      "message": "Success",
      "corporate": "ABC Corp (TEST)",
      "timestamp": "2021-12-15T15:22:29.+0700",
      "data": [
      {
        "senderCurrency": "IDR",
        "receivingCurrency": "IDR",
        "rate": 1.0
      },
      {
        "senderCurrency": "SGD",
        "receivingCurrency": "IDR",
        "rate": 10783.05
      }]
    }

    Check Rates - Failed Response Example

    {
      "status": 21,
      "message": "Rate is not found",
      "corporate": "ABC Corp (TEST)",
      "timestamp": "2021-12-01T18:22:03.+0700"
    }


    {
      "status" : 9,
      "message" : "Unathorized access"
    }

    RESPONSE BODY

    Name Type Description Example
    status Integer Response status 0
    message String Response message Success
    corporate String Partner's corporate name ABC Corp
    timestamp Timestamp YYYY-mm-DDTHH:MM:SS 2021-12-15T15:22:29.+0700
    data Object List of exchange rates.
    Refer to Exchange Rates Object section.

    Inquiry

    Inquiry Request Example

    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/inquiry \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "07"
      },
      "beneficiaryAccount": {
        "bank": {
          "code": "CENAIDJA",
          "countryCode": "ID",
          "id": "014",
          "name": "BANK BCA"
        },
        "city": "Jakarta",
        "name": "FHILEA HERMANUS",
        "number": "0803944123"
      },
      "beneficiaryCountry": {
        "code": "ID"
      },
      "beneficiaryCurrency": {
        "code": "IDR"
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 10000
    }'
    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/inquiry \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "04"
      },
      "beneficiaryAccount": {
        "city": "Jakarta",
        "name": "FHILEA HERMANUS"
      },
      "beneficiaryWalletId": "lea@doku.com",
      "beneficiaryCountry": {
        "code": "ID"
      },
      "beneficiaryCurrency": {
        "code": "IDR"
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 10000
    }'
    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/inquiry \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "09"
      },
      "beneficiaryAccount": {
        "bank": {
          "code": "CIBBSGSG",
          "countryCode": "SG",
          "id": "65232",
          "name": "CIMB BANK BERHAD"
        },
        "city": "Singapore",
        "name": "FHILEA HERMANUS",
        "number": "1001400100"
      },
      "beneficiaryCountry": {
        "code": "SG"
      },
      "beneficiaryCurrency": {
        "code": "SGD"
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 1000000
    }'
    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/inquiry \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "11"
      },
      "beneficiaryAccount": {
        "bank": {
          "code": "CENAIDJA",
          "countryCode": "ID",
          "id": "014",
          "name": "BANK BCA"
        },
        "city": "Jakarta",
        "name": "FHILEA HERMANUS",
        "number": "0803944123"
      },
      "beneficiaryCountry": {
        "code": "ID"
      },
      "beneficiaryCurrency": {
        "code": "IDR"
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 100000
    }'

    Inquiry - Success Response Example

    {
      "status": 0,
      "message": "Transfer Inquiry Approve",
      "inquiry": {
        "idToken": "I040781880663070",
        "senderCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
        },
        "senderCurrency": {
          "code": "IDR"
        },
        "beneficiaryCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
        },
        "beneficiaryCurrency": {
          "code": "IDR"
        },
        "channel": {
          "code": "07",
          "name": "Bank Deposit"
        },
        "forexReference": {
          "id": 2402,
          "forex": {
            "origin": {
              "code": "IDR"
            },
            "destination": {
              "code": "IDR"
            }
          },
          "rate" : 1.0,
          "createdTime" : 1614219703986
        },
        "fund" : {
          "origin" : {
            "amount" : 10000.000000,
            "currency" : "IDR"
          },
          "fees": {
            "total": 3000.000000,
            "currency": "IDR",
            "components": [
              {
                "description": "Default Fee",
                "amount": 3000.000000
              }
            ],
            "additionalFee": 0.000000,
            "fixedFee": 0.000000
          },
          "destination": {
            "amount": 10000.00,
            "currency": "IDR"
          }
        },
        "beneficiaryAccount": {
          "id": null
          "bank": {
            "id": "014",
            "code": "CENAIDJA",
            "name": "Bank Central Asia BCA",
            "city": "Jakarta",
            "countryCode": "ID",
            "groupBank": "Bank Central Asia BCA",
            "province": "Jakarta"
          },
          "number": "0803944123",
          "name": "FHILEA HERMANUS",
          "city": "Jakarta,"
          "address": "null"
        }
      }
    }
    {
      "status": 0,
      "message": "Inquiry succeed",
      "inquiry": {
        "idToken": "I01613251428268",
        "senderCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
        },
        "senderCurrency": {
          "code": "IDR"
        },
        "beneficiaryCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
        },
        "beneficiaryCurrency": {
          "code": "IDR"
        },
        "channel": {
          "code": "04",
          "name": "Cash To Wallet"
        },
        "forexReference": {
          "id": 2402,
          "forex": {
            "origin": {
              "code": "IDR"
            },
            "destination": {
              "code": "IDR"
            }
          },
          "rate" : 1.0,
          "createdTime" : 1614219703986
        },
        "fund" : {
          "origin" : {
            "amount" : 10000.000000,
            "currency" : "IDR"
          },
          "fees": {
            "total": 1000.000000,
            "currency": "IDR",
            "components": [
              {
                "description": "Default Fee",
                "amount": 1000.000000
              }
            ],
            "additionalFee": 0.000000,
            "fixedFee": 0.000000
          },
          "destination": {
            "amount": 10000.000000,
            "currency": "IDR"
          }
        },
        "beneficiaryWalletId": "lea@doku.com",
        "beneficiaryWalletName": "FHILEA HERMANUS"
      }
    }
    {
      "status": 0,
      "message": "Transfer Inquiry Approve",
      "inquiry": {
        "idToken": "I0953314363184",
        "senderCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
          "countryIsoCode": "IDN"
        },
        "senderCurrency": {
          "code": "IDR"
        },
        "beneficiaryCountry": {
          "code": "SG",
          "name": "Singapore",
          "currency": {
            "code": "SGD"
          }
          "countryIsoCode": "SGP"
        },
        "beneficiaryCurrency": {
          "code": "IDR"
        },
        "channel": {
          "code": "09",
          "name": "Outgoing Remittance"
        },
        "forexReference": {
          "id": 491,
          "forex": {
            "origin": {
              "code": "IDR"
            },
            "destination": {
              "code": "SGD"
            }
          },
          "rate" : 9.36724265436231E-5,
          "createdTime" : 1644678804833
        },
        "fund" : {
          "origin" : {
            "amount" : 1000000.000000,
            "currency" : "IDR"
          },
          "fees": {
            "total": 15000.000000,
            "currency": "IDR",
            "components": [
              {
                "description": "Default Fee",
                "amount": 15000.000000
              }
            ],
            "additionalFee": 0.000000,
            "fixedFee": 0.000000
          },
          "destination": {
            "amount": 93.672426,
            "currency": "SGD"
          }
        },
        "transactionType": "B2C",
        "expirationDate": "Mon Jun 13 18:39:09 WIB 2022",
        "beneficiaryAccount": {
          "id": null
          "bank": {
            "id": "65232",
            "code": "CIBBSGSG",
            "name": "CIMB BANK BERHAD",
            "city": "Singapore",
            "countryCode": "SG",
            "groupBank": "null",
            "province": "Jakarta"
          },
          "number": "1001400100",
          "name": "FHILEA HERMANUS",
          "city": "Singapore,"
          "address": "null"
        }
      }
    }
    {
      "status": 0,
      "message": "Transfer Inquiry Approve",
      "inquiry": {
        "idToken": "I0747731438866690",
        "senderCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
          "countryIsoCode": "IDN"
        },
        "senderCurrency": {
          "code": "IDR"
        },
        "beneficiaryCountry": {
          "code": "ID",
          "name": "Indonesia",
          "currency": {
            "code": "IDR"
          }
          "countryIsoCode": "IDN"
        },
        "beneficiaryCurrency": {
          "code": "IDR"
        },
        "channel": {
          "code": "11",
          "name": "BI Fast",
          "additionalParam": null,
        },
        "forexReference": {
          "id": 2041,
          "forex": {
            "origin": {
              "code": "IDR"
            },
            "destination": {
              "code": "IDR"
            }
          },
          "rate" : 1.0,
          "createdTime" : 1551110545837
        },
        "fund" : {
          "origin" : {
            "amount" : 10000.000000,
            "currency" : "IDR"
          },
          "fees": {
            "total": 2500.000000,
            "currency": "IDR",
            "components": [
              {
                "description": "Default Fee",
                "amount": 2500.000000
              }
            ],
            "additionalFee": 0.000000,
            "fixedFee": 0.000000
          },
          "destination": {
            "amount": 10000.00,
            "currency": "IDR"
          }
        },
        "beneficiaryAccount": {
          "id": null
          "bank": {
            "id": "014",
            "code": "CENAIDJA",
            "name": "Bank Central Asia BCA",
            "city": "Jakarta",
            "countryCode": "ID",
            "groupBank": "Bank Central Asia BCA",
            "province": "Jakarta",
            "dcBankId": 11
          },
          "number": "0803944123",
          "name": "FHILEA HERMANUS",
          "city": "Jakarta",
          "address": "null",
          "inputMode": "null,"
          "proxy": "null,"
          "email": "null,"
          "phoneNumber": "null"
        }
      }
    }

    Inquiry - Failed Response Example
    (caused by invalid beneficiary currency)

    {
      "status": 11,
      "message": "Invalid parameters",
      "errors": {
        "": [
            "Beneficiary currency not valid"
        ]
      }
    }
    Endpoint Method Definition
    /cashin/inquiry HTTP POST Get beneficiary account information details

    REQUEST HEADER

    Name Mandatory Value
    Content-Type Mandatory application/json
    agentKey Mandatory Given AGENTKEY
    requestId Mandatory A unique request identifier.
    It is advisable to use UUID format.
    signature Mandatory Refer to Shared Key Hash Value section.

    REQUEST BODY

    Name Type Mandatory Description
    channel Object Mandatory Refer to Channel Object section.
    beneficiaryAccount Object Optional Mandatory for channel 07 and 09
    Beneficiary bank account information
    Refer to Beneficiary Account Object section.
    beneficiaryWalletId String Optional Mandatory for channel 04
    Beneficiary Email or Beneficiary Doku Wallet ID.
    E.g: lea@doku.com (beneficiary email),
    1289006000 (beneficiary Doku wallet ID)
    transactionType String Optional Mandatory for channel 09
    B2B: Transaction is from a business to a business
    B2C: Transaction is from a business to an individual end user
    C2C: Transaction is from an individual end user to an individual end user
    C2B: Transaction is from an individual end user to a business
    beneficiaryCountry Object Mandatory The country where the beneficiary resides.
    Refer to Country Object section.
    beneficiaryCurrency Object Mandatory Beneficiary currency.
    Refer to Currency Object section.
    senderCountry Object Mandatory Sender country.
    Refer to Country Object section.
    senderCurrency Object Mandatory Sender currency.
    Refer to Currency Object section.
    senderAmount Numeric Mandatory Channel 04: Min IDR 10.000, Max IDR 10.000.000
    Channel 07: Min IDR 10.000, Max IDR 25.000.000
    Channel 09: See below
    Country Currency Min Amount Max Amount
    Singapore SGD 0 200.000
    Philippines PHP 0 25.000.000

    RESPONSE BODY

    Name Type Description Example
    status Integer Response status 0
    message String Response message Transfer Inquiry Approve
    inquiry Object Refer to Inquiry Object section.

    Remit

    Remit Request Example

    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/remit \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "07"
      },
      "inquiry": {
        "idToken": "I01429544261270"
      },
      "beneficiary": {
        "country": {
          "code": "ID"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "628156056051"
      },
      "beneficiaryCity": "Jakarta",
      "beneficiaryCountry": {
        "code": "ID"
      },
      "beneficiaryAccount": {
        "bank": {
          "id": "014",
          "code": "CENAIDJA",
          "name": "BANK BCA",
          "countryCode": "ID"
        },
        "city": "Jakarta",
        "name": "FHILEA HERMANUS",
        "number": "0803944123"
      },
      "beneficiaryCurrency": {
        "code": "IDR"
      },
      "sender": {
        "country": {
          "code": "ID"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "628156056051",
        "birthDate": "1900-01-01",
        "personalId": "01234567890",
        "personalIdType": "KTP",
        "personalIdCountry": {
          "code": "ID"
        }
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 10000,
      "sendTrxId": "remit-20191007-001"
    }'
    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/remit \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "04"
      },
      "inquiry": {
        "idToken": "I01613251428268"
      },
      "beneficiary": {
        "country": {
          "code": "ID"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "628156056051"
      },
      "beneficiaryCity": "Jakarta",
      "beneficiaryCountry": {
        "code": "ID"
      },
      "beneficiaryAccount": {
        "city": "Jakarta",
        "name": "FHILEA HERMANUS"
      },
      "beneficiaryWalletId": "lea@doku.com",
      "beneficiaryCurrency": {
        "code": "IDR"
      },
      "sender": {
        "country": {
          "code": "ID"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "628156056051",
        "birthDate": "1900-01-01",
        "personalId": "01234567890",
        "personalIdType": "KTP",
        "personalIdCountry": {
          "code": "ID"
        }
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 10000,
      "sendTrxId": "remit-20191007-002"
    }'
    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/remit \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "09"
      },
      "inquiry": {
        "idToken": "I0953916988400"
      },
      "transactionType":"B2C",
      "beneficiary": {
        "country": {
          "code": "SG"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "65200300"
      },
      "beneficiaryCity": "Singapore",
      "beneficiaryCountry": {
        "code": "SG"
      },
      "beneficiaryAccount": {
        "bank": {
          "id": "65232",
          "code": "CIBBSGSG",
          "name": "CIMB BANK BERHAD",
          "countryCode": "SG"
        },
        "city": "Singapore",
        "name": "FHILEA HERMANUS",
        "number": "1001400100"
      },
      "beneficiaryCurrency": {
        "code": "SGD"
      },
      "sender": {
        "country": {
          "code": "ID"
        },
        "firstName": "One Tech",
        "lastName": "PTE LTD",
        "phoneNumber": "628156056051",
        "birthDate": "1900-01-01",
        "personalId": "01234567890",
        "personalIdType": "Other ID",
        "personalIdCountry": {
          "code": "ID"
        }
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 1000000,
      "sendTrxId": "remit-20191007-001"
    }'
    curl -X POST \
    https://staging.doku.com/apikirimdoku/cashin/remit \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "channel": {
        "code": "11"
      },
      "inquiry": {
        "idToken": "I0747731438866690"
      },
      "beneficiary": {
        "country": {
          "code": "ID"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "628156056051"
      },
      "beneficiaryCity": "Jakarta",
      "beneficiaryCountry": {
        "code": "ID"
      },
      "beneficiaryAccount": {
        "bank": {
          "id": "014",
          "code": "CENAIDJA",
          "name": "BANK BCA",
          "countryCode": "ID"
        },
        "city": "Jakarta",
        "name": "FHILEA HERMANUS",
        "number": "0803944123"
      },
      "beneficiaryCurrency": {
        "code": "IDR"
      },
      "sender": {
        "country": {
          "code": "ID"
        },
        "firstName": "FHILEA",
        "lastName": "HERMANUS",
        "phoneNumber": "628156056051",
        "birthDate": "1900-01-01",
        "personalId": "01234567890",
        "personalIdType": "KTP",
        "personalIdCountry": {
          "code": "ID"
        }
      },
      "senderCountry": {
        "code": "ID"
      },
      "senderCurrency": {
        "code": "IDR"
      },
      "senderAmount": 100000,
      "sendTrxId": "remit-20231007-001"
    }'

    Remit - Success Response Example

    {
      "status": 0,
      "message": "Remit accepted",
      "remit": {
        "paymentData": {
          "mallId": "2",
          "chainMallId": null,
          "accountNumber": "00",
          "accountName": "ABC Corp (TEST)",
          "channelCode": "07",
          "inquiryId": "I01429544261270",
          "currency": "IDR",
          "amount": "10000.00",
          "trxCode": "bc629bff-0cc9-45d3-8fa8-f27341ca8228",
          "hostRefNumber": null,
          "issuerName": null,
          "responseCode": "00",
          "responseMsg": "Transfer Approve",
          "paymentSystrace": null
        },
        "transactionId": "DK0856068",
        "transactionStatus": 50
      }
    }

      "status": 0, 
      "message": "Remit accepted", 
      "remit": { 
        "transactionId": "DK0857458", 
        "transactionStatus": 50 
      } 
    }
    {
      "status": 0,
      "message": "Remit accepted",
      "remit": {
        "paymentData": {
          "mallId": "90",
          "chainMallId": null,
          "accountNumber": "0097854602",
          "accountName": "ABC Corp (TEST)",
          "channelCode": "09",
          "inquiryId": "I0953916988400",
          "currency": "SGD",
          "amount": "93.672426",
          "trxCode": "80dc160c-1403-401e-ba60-f1da85767df2",
          "hostRefNumber": null,
          "issuerName": CIMB BANK BERHAD,
          "responseCode": "20000",
          "responseMsg": "CONFIRMED",
          "paymentSystrace": null,
          "transactionType": "B2C",
          "purposeOfRemittance": null,
          "documentReferenceNumber": null
        },
        "transactionId": "DK0001212",
        "transactionStatus": 20
      }
    }
    {
      "status": 0,
      "message": "Remit accepted",
      "remit": {
        "paymentData": {
          "mallId": "19s",
          "chainMallId": null,
          "accountNumber": "0062849056",
          "accountName": "ABC Corp (TEST)",
          "channelCode": "11",
          "inquiryId": "I0747731438866690",
          "currency": "IDR",
          "amount": "10000.00",
          "trxCode": "471edb0c-c485-484a-bdad-7b50a3e5a23e",
          "hostRefNumber": null,
          "issuerName": null,
          "responseCode": "2001800",
          "responseMsg": "Transfer Approve",
          "paymentSystrace": null,
        },
        "transactionId": "DK01068095",
        "transactionStatus": 50
      }
    }

    Remit - Failed Response Example
    (caused by empty sender first name)

    {
      "status": 11,
      "message": "Invalid parameters",
      "errors": {
        "": [
            "Sender firstName is required"
        ]
      }
    }
    Endpoint Method Definition
    /cashin/remit HTTP POST Execute transfer to the beneficiary

    REQUEST HEADER

    Name Mandatory Value
    Content-Type Mandatory application/json
    agentKey Mandatory Given AGENTKEY
    requestId Mandatory A unique request identifier.
    It is advisable to use UUID format.
    signature Mandatory Refer to Shared Key Hash Value section.

    REQUEST BODY

    Name Type Mandatory Description
    channel Object Mandatory Refer to Channel Object section.
    inquiry Object Mandatory Refer to Inquiry Object section.
    transactionType String Optional Mandatory for channel 09
    B2B: Transaction is from a business to a business
    B2C: Transaction is from a business to an individual end user
    C2C: Transaction is from an individual end user to an individual end user
    C2B: Transaction is from an individual end user to a business
    purposeOfRemittance String Optional Mandatory for channel = 09 and transactionType = B2B
    Purpose Description
    FAMILY_SUPPORT Family support
    EDUCATION Education
    GIFT_AND_DONATION Gift and other donations
    MEDICAL_TREATMENT Medical treatment
    TRAVEL Travel
    SMALL_VALUE_REMITTANCE Small value remittance
    HOTEL_ACCOMMODATION Hotel accommodation
    ADVISORY_FEES Fees for advisory or consulting service
    DELIVERY_FEES Delivery fees
    EXPORTED_GOODS Payments for exported goods
    SERVICE_CHARGES Payment for services
    LOAN_PAYMENT Payment of loans
    PROPERTY_PURCHASE Residential property purchase
    TRANSPORTATION_FEES Transportation fees
    PERSONAL_TRANSFER Personal transfer
    SALARY_PAYMENT Payment of salary
    REWARD_PAYMENT Payment of rewards
    INFLUENCER_PAYMENT Payment of Influencer
    OTHER_FEES Broker, commitment, guarantee and other fees
    OTHER Other purposes
    documentReferenceNumber String Optional Mandatory for channel 09 and transactionType = B2B.
    Reference number of document related to the transaction that can be used as underlying. E.g: invoice number, agreement number, purchase order number.
    beneficiary Object Mandatory Refer to Beneficiary Object section.
    beneficiaryCity String Mandatory The city where the beneficiary resides.
    e.g: Jakarta
    beneficiaryCountry Object Mandatory The country where the beneficiary resides. Refer to Country Object section.
    beneficiaryAccount Object Optional Mandatory for channel 07 and 09.
    Beneficiary bank account information.
    Refer to Beneficiary Account Object section.
    beneficiaryWalletId String Optional Mandatory for channel 04.
    Beneficiary Email or Beneficiary Doku Wallet ID. E.g: lea@doku.com, 1289006000
    beneficiaryCurrency Object Mandatory Beneficiary currency.
    Refer to Currency Object section.
    sender Object Mandatory Sender personal information.
    Refer to Sender Object section.
    senderCountry Object Mandatory Sender Country.
    Refer to Country Object section.
    senderCurrency Object Mandatory Sender Currency.
    Refer to Currency Object section.
    senderAmount Numeric Mandatory Channel 04: Min IDR 10.000, Max IDR 10.000.000
    Channel 07: Min IDR 10.000, Max IDR 25.000.000
    Channel 09: See below
    sendTrxId String Optional Transaction ID from merchant side. Must be unique per request.
    E.g: REF-001-001
    senderNote String Optional Note or information from sender.
    E.g: Insurance fee
    Country Currency Min Amount Max Amount
    Singapore SGD 0 200.000
    Philippines PHP 0 25.000.000

    RESPONSE BODY

    Name Type Description Example
    status Integer Response status 0
    message String Response message Remit accepted
    remit Object Refer to Remit Object section.

    Transaction Info

    Transaction Info Request Example

    curl -X POST \
    https://staging.doku.com/apikirimdoku/transaction/info \
    -H 'Content-Type: application/json' \
    -H 'agentKey: A41418' \
    -H 'requestId: e8a32355-e202-4bc7-8ae7-ad4e7316bbcb' \
    -H 'signature: HL8PGPqGBaTOgdbZio9r1oJqT7GgNpwPU6vKZxHAmQBSEiCYuClafD2AzsNtvPP0' \
    -d '{
      "transactionId": "DK0856068"
    }'

    Transaction Info - Success Response Example

    {
      "transaction": {
        "id": "DK0856068",
        "inquiryId": "I01429544261270",
        "sendTrxId": "b062e358-8a8d-498d-90c2-1bed87c8dea3",
        "status": 50,
        "createdTime": 1569234448061,
        "cashInTime": "2019-09-23 17:27:28",
        "agent": {
          "code": "A41418",
          "country": {
            "code": "ID",
            "name": "Indonesia",
            "currency": {
              "code": "IDR"
            }
          },
          "user": {
            "username": "oabc",
            "name": "o abc"
          }
        },
        "channel": {
          "code": "07",
          "name": "Bank Deposit"
        },
        "sender": {
          "id": "CID0154734",
          "firstName": "FHILEA",
          "lastName": "HERMANUS",
          "personalIdType": "KTP",
          "personalId": "01234567890",
          "birthDate": "1900-01-01",
          "phoneNumber": "628156056051",
          "gender": "NULL",
          "country": {
            "code": "ID",
            "name": "Indonesia",
            "currency": {
              "code": "IDR"
            }
          },
          "cityName": null,
          "address": null,
          "postalCode": null,
          "email": null
        },
        "beneficiary": {
          "id": "CID0154735",
          "firstName": "FHILEA",
          "lastName": "HERMANUS",
          "personalIdType": null,
          "personalId": null,
          "phoneNumber": "628156056051",
          "gender": "NULL",
          "country": {
            "code": "ID",
            "name": "Indonesia",
            "currency": {
              "code": "IDR"
            }
          },
          "cityName": null,
          "address": null,
          "postalCode": null,
          "email": null
        },
        "fund": {
          "origin": {
            "country": {
              "code": "ID",
              "name": "Indonesia",
              "currency": {
                "code": "IDR"
              }
            },
            "currency": "IDR",
            "amount": 10000.000000
          },
          "destination": {
            "country": {
              "code": "ID",
              "name": "Indonesia",
              "currency": {
                "code": "IDR"
              }
            },
            "currency": "IDR",
            "amount": 10000.000000
          },
          "fees": {
            "total": 6500.000000,
            "fixedFee": 0.000000,
            "additionalFee": 0.000000,
            "currency": "IDR",
            "components": [
              {
                "description": "Default Fee",
                "amount": 6500.000000
              }
            ]
          }
        },
        "transactionlog": {
          "status": 0,
          "statusMessage": "Processed",
          "referenceStatus": "00",
          "referenceMessage": "Transfer Approve",
          "channelCode": "07"
        }
      },
      "status": 0,
      "message": "Transaction info success"
    }

    Transaction Info - Failed Response Example
    (caused by invalid transactionId)

    {
      "status": 11,
      "message": "Invalid parameters",
      "errors": {
        "": [
            "Transaction could not be found"
        ]
      }
    }
    Endpoint Method Definition
    /transaction/info HTTP POST Get transaction status or information

    REQUEST HEADER

    Name Mandatory Value
    Content-Type Mandatory application/json
    agentKey Mandatory Given AGENTKEY
    requestId Mandatory A unique request identifier.
    It is advisable to use UUID format.
    signature Mandatory Refer to Shared Key Hash Value section.

    REQUEST BODY

    Name Type Mandatory Description
    transactionId String Mandatory Transaction Id can be filled with Inquiry idToken, Remit transactionId or Remit sendTrxId value.
    E.g: DK0856068 (Remit transactionId).

    RESPONSE BODY

    Name Type Description
    transaction Object Refer to Transaction Object section.
    Use transaction.status value to determine whether beneficiary receiving the funds or not. E.g: Success: 50 (see possible Transaction Status)
    status Integer Response status (E.g: Success: 0)
    message String Response message (E.g: Success: Transaction info success)

    Refund Notification

    Refund Request Example performed by KIRIMDOKU to Partners

    {
      "activityCode"": "200",
      "transactionId": "DK0802623",
      "processDate":1548322727830
      "message":"Transaction is refunded"
    }

    The purpose of refund notification is to notify partners when refund occured in KIRIMDOKU system. Refund notification is optional. If not implemented, partners may opted to call API transaction info to fetch the status of a transaction.

    To receive refund notifications, prepare Callback URLs for sandbox and production environment.

    Refund Response Example performed by Partners to KIRIMDOKU

    {
      "status"": "true",
      "transactionId": "DK0802623",
      "responseCode":"00"
      "responseMessage":"Successfully processed"
    }
    Endpoint Method Definition
    Provided by partner HTTP POST Refund notify is sent if refund occured in KIRIMDOKU System. We will send it to the partner with the url that has been registered, and the notification will be done maximum 3 times or until the notification callback response is correct.

    REQUEST HEADER

    Name Type Mandatory Description Example
    Content-Type String Mandatory The Content-Type field indicates that JSON type is acceptable to send to the recipient application/json
    requestId String Mandatory Unique reference identification send by the API partner "fd53b1e3-9c35-4dfa-a95ca8dbc5695485"
    agentKey String Mandatory Hash key of authorization agent "A41418"
    signature ENC Mandatory Unique authorization code generated by partner validated by KIRIMDOKU

    REQUEST BODY

    Name Type Mandatory Description Example
    transactionId String Mandatory Transaction ID that have been refunded by KIRIMDOKU "DK0802623"
    activityCode String Mandatory Specific notification code for refund activity "200"
    message String Mandatory Refund activity message "Transaction is refunded"
    processDate Numeric Mandatory Time and date of notification in epoch format 1548322727830

    REFUND RESPONSE

    After partners received refund notification from KIRIMDOKU system, partners must response with the following specification.

    Name Type Mandatory Description Example
    status Boolean Mandatory Refund notification status "true" when the notification is processed succesfully, "false" otherwise
    transactionId String Mandatory Transaction ID that is sent from KIRIMDOKU to request notify "DK0802623"
    responseCode Numeric Mandatory Flagging code for respond notification of refund activity "00" when the callback is processed succesfully, "01" when the callback has been processed before, other code when failed occured
    responseMessage String Mandatory A message describing the respond notification "Successfully processed"

    Request Objects

    CHANNEL OBJECT

    Name Type Mandatory Description
    code String Mandatory 04: DOKU Wallet Transfer
    07: Bank Transfer
    09: Outgoing Remittance
    11: BI Fast

    BENEFICIARY ACCOUNT OBJECT

    Name Type Mandatory Description Example
    bank Object Mandatory Refer to Bank Object section.
    address String Optional Beneficiary account address Jl. Merdeka 45
    city String Mandatory Beneficiary account city Jakarta
    name String Mandatory Beneficiary account name John Doe
    number String Mandatory Beneficiary bank account number 6790153860

    BANK OBJECT

    Name Type Mandatory Description Example
    code String Mandatory Bank Swift code.
    See Indonesian Banks for channel 07.
    See Overseas Banks for channel 09.
    CENAIDJA
    countryCode String Mandatory Bank country code (two-letter ISO 3166-2 country code) ID
    id String Mandatory The id of the beneficiary bank.
    See Indonesian Banks for channel 07.
    See Overseas Banks for channel 09.
    014
    name String Mandatory Beneficiary bank name.
    See Indonesian Banks for channel 07.
    See Overseas Banks for channel 09.
    Bank BCA

    COUNTRY OBJECT

    Name Type Mandatory Description Example
    code String Mandatory Two-letter ISO 3166-2 country code ID

    CURRENCY OBJECT

    Name Type Mandatory Description Example
    code String Mandatory Three-letter ISO 4217 currency code IDR

    INQUIRY OBJECT

    Name Type Mandatory Description Example
    idToken String Mandatory Inquiry idToken from the last Inquiry API. I058372738354349

    BENEFICIARY OBJECT

    Name Type Mandatory Description Example
    country Object Mandatory Native country of the beneficiary.
    Refer to Country Object section.
    firstName String Mandatory Beneficiary first name. John
    lastName String Mandatory Beneficiary last name. Doe
    phoneNumber String Mandatory Beneficiary phone number. 628561223123

    SENDER OBJECT

    Name Type Mandatory Description Example
    address String Optional Mandatory for channel 09.
    Sender address.
    Jl. Paus
    country Object Mandatory Refer to Country Object section.
    firstName String Mandatory Sender first name. Mia
    lastName String Mandatory Sender last name. Smith
    phoneNumber String Mandatory Sender phone number. 62856123456
    birthDate String Mandatory Sender birth date. In YYYY-MM-DD format. 2002-12-01
    personalId String Mandatory Sender personal (national) id number. 167101110100001
    personalIdType String Mandatory Sender personal (national) id type KTP, PASSPORT
    personalIdCountry Object Mandatory Country code of publisher of sender's personal ID.
    Refer to Country Object section.

    Response Objects

    BALANCE OBJECT

    Name Type Description
    corporateName String Partner's corporate name
    creditLimit Decimal The remaining balance a partner can hold. If partner's last deposit balance is below this amount, then the remaining last deposit balance cannot be used for transactions.
    creditAlertLimit Decimal To give email alert to partners when the amount of money in partner's last deposit balance reaching or below this amount.
    creditLastBalance Decimal Partner's last deposit balance

    EXCHANGE RATES OBJECT

    Name Type Description Example
    senderCurrency String Source currency code.
    Three-letter ISO 4217 currency code
    SGD
    receivingCurrency String Target (receiving) currency code.
    Three-letter ISO 4217 currency code
    IDR
    rate Decimal Exchange rate value 10783.05

    INQUIRY OBJECT

    Name Type Description Example
    idToken String Id from the last inquiry.
    Save this id to be used in Remit API.
    I058372738354349
    senderCountry Object Refer to Country Object section.
    senderCurrency Object Refer to Currency Object section.
    beneficiaryCountry Object Refer to Country Object section.
    beneficiaryCurrency Object Refer to Currency Object section.
    channel Object Refer to Channel Object section.
    forexReference Object Refer to Forex Reference Object section.
    fund Object Refer to Fund Object section.
    transactionType String Only for channel 09 response
    B2B, B2C, C2C, C2B
    B2B
    expirationDate String Only for channel 09 response
    Inquiry expiration date time.
    Sat Feb 19 23:23:16 WIB 2022
    beneficiaryAccount Object Only for channel 07 and 09 response
    Refer to Beneficiary Account Object section.
    beneficiaryWalletId String Only for channel 04 response
    Beneficiary wallet ID information.
    john@doku.com
    beneficiaryWalletName String Only for channel 04 response
    Beneficiary wallet name information.
    John Doe

    COUNTRY OBJECT

    Name Type Description Example
    code String Two-letter ISO 3166-2 country code ID
    name String Country name Indonesia
    currency Object Refer to Currency Object section.
    countryIsoCode String Only for channel 09 response
    Three-letter ISO 3166-1 alpha-3 country code
    IDN

    CURRENCY OBJECT

    Name Type Description Example
    code String Three-letter ISO 4217 currency code IDR

    CHANNEL OBJECT

    Name Type Description Example
    code String Channel code 04, 07, 09, 11
    name String Channel name Cash To Wallet, Bank Deposit, Outgoing Remittance, BI Fast

    BENEFICIARY ACCOUNT OBJECT

    Name Type Description Example
    id Integer Beneficiary bank account id.
    Filled after remit is success.
    null
    bank Object Beneficiary bank information.
    Refer to Bank Object section.
    number String Beneficiary account number information. 6790153860
    name String Beneficiary account name information. John Doe
    city String Beneficiary account city information. Jakarta
    address String Beneficiary account address information. Jl. Merdeka 45

    BANK OBJECT

    Name Type Description Example
    id String Bank id information. 014
    code String Bank code information. CENAIDJA
    name String Bank name information. Bank BCA
    city String City of the bank. Jakarta
    countryCode String Bank country code information. ID
    groupBank String Group bank information Bank BCA
    province String Province of the bank Jakarta

    REMIT OBJECT

    Name Type Description
    paymentData Object Refer to Payment Data Object section.
    (Only for channel 07 and 09 response)
    transactionId String Remit transaction ID. E.g: DK0856068
    Please save this id as the transaction reference.
    transactionStatus String Remit transaction status.
    Use this status to determine whether beneficiary receiving the funds or not.
    (E.g: Success: 50, refer to Possible transaction status)

    PAYMENT DATA OBJECT

    Name Type Description Example
    mallId String Id of the acquirer in Doku MTPG
    chainMallId String -
    accountNumber String Partner's VA number 0045579809
    accountName String Corporate name information. PT ABC
    channelCode String Channel code. Example: 04 or 07 or 09
    inquiryId String Inquiry idToken used in Remit API. I026241355942520
    currency String Currency information IDR
    amount String Amount sent to the beneficiary. 10000.00
    trxCode String - 3aa39914-aed3-48e8-a930-e08cb4139620
    hostRefNumber String Reference number to transfer partner
    issuerName String Issuer name Bank Central Asia
    responseCode String Response code from transfer partner 00
    responseMsg String Response message from transfer partner Transfer Approve
    paymentSystrace String -
    transactionType String Only for channel 09 response. Transaction type.
    purposeOfRemittance String Only for channel 09 response. Purpose of the remittance.
    documentReferenceNumber String Only for channel 09 response. Document reference number.

    FOREX REFERENCE OBJECT

    Name Type Description
    id Integer Forex reference ID
    forex Object Refer to Forex Object section.
    rate Decimal Exchange rate from origin currency to destination currency
    createdTime Timestamp Forex creation time

    FOREX OBJECT

    Name Type Description
    origin Object Origin currency code.
    Refer to Currency Object section.
    destination Object Destination currency code.
    Refer to Currency Object section.

    FUND OBJECT

    Name Type Description
    origin Object Source amount.
    Refer to Amount Object section.
    fees Object Refer to Fees Object section.
    destination Object Destination amount.
    Refer to Amount Object section.

    AMOUNT OBJECT

    Name Type Description
    amount Decimal Amount of money
    currency String Currency code

    FEES OBJECT

    Name Type Description
    total Decimal Amount of fee charged to partner's deposit (default fee).
    currency String Default fee's currency (follows the origin currency).
    components Object Components of default fee.
    Refer to Fees Component Object section.
    additionalFee Decimal Fee charged to the beneficiary, deducted from the amount received (currency follows the destination currency)
    fixedFee Decimal Fee for account validation (currency follows the destination currency)

    FEES COMPONENT OBJECT

    Name Type Description
    description String Default fee
    amount Decimal Amount of default fee

    TRANSACTION OBJECT

    Name Type Description Example
    id String Remit transaction ID. DK0856068
    inquiryId String Inquiry idToken from the last Inquiry API. I01429544261270
    sendTrxId String Transaction ID from merchant's side. REF-001-001
    status String Remit transaction status.
    Use this status to determine whether beneficiary receiving the funds or not.
    (Success: 50, Possible transaction status)
    50
    createdTime Timestamp Payment creation time (in epoch time format) 1569234448061
    cashInTime Timestamp Payment time YYYY-mm-DD HH:MM:SS 2019-09-23 17:27:28
    senderNote String Note or information from sender. Insurance fee
    agent Object Refer to Agent Object section
    channel Object Refer to Channel Object section
    sender Object Refer to Sender Object (Transaction Info) section
    beneficiary Object Refer to Beneficiary Object (Transaction Info) section
    fund Object Refer to Fund Object (Transaction Info) section
    transactionLog Object Refer to Transaction Log Object section

    AGENT OBJECT

    Name Type Description Example
    code String Agent's code A41418
    country Object Agent's country
    Refer to Country Object section
    user Object Agent's name and user name
    Refer to User Object section

    USER OBJECT

    Name Type Description Example
    username String Agent's username john@example.com
    name String Agent's name John Operator

    SENDER OBJECT (TRANSACTION INFO)

    Name Type Description Example
    id String Sender id CID0154734
    firstName String Sender first name. John
    lastName String Sender last name. Doe
    personalIdType String Sender personal (national) id type. Example: KTP, PASSPORT KTP
    personalId String Sender personal (national) id number 01234567890
    birthDate String Sender birth date. In YYYY-MM-DD format 1900-01-01
    phoneNumber String Sender phone number 628156056051
    gender String Gender of the sender
    country Object Sender country. Refer to Country Object section
    cityName String Sender city name Jakarta
    address String Sender address Jl Merdeka 45
    postalCode String Sender postal code null
    email String Sender email john@doku.com

    BENEFICIARY OBJECT (TRANSACTION INFO)

    Name Type Description Example
    id String Beneficiary id CID0154735
    firstName String Beneficiary first name John
    lastName String Beneficiary last name Doe
    personalIdType String Beneficiary personal (national) id type. Example: KTP, PASSPORT KTP
    personalId String Beneficiary personal (national) id number 0123456789
    phoneNumber String Beneficiary phone number 628156056051
    gender String Gender of the beneficiary
    country Object Beneficiary country. Refer to Country Object section
    cityName String Beneficiary city name Jakarta
    address String Beneficiary address Jl Merdeka 45
    postalCode String Beneficiary postal code 12910
    email String Beneficiary email john@doku.com

    FUND OBJECT (TRANSACTION INFO)

    Name Type Description
    origin Object Source amount.
    Refer to Amount Object (Transaction Info) section
    destination Object Destination amount.
    Refer to Amount Object (Transaction Info) section
    fees Object Refer to Fees Object section

    AMOUNT OBJECT (TRANSACTION INFO)

    Name Type Description Example
    country Object Refer to Country Object section
    currency String Currency code IDR
    amount Decimal Amount of money 10000.000000

    TRANSACTION LOG OBJECT

    Name Type Description Example
    status String Remit status code 0
    statusMessage String Remit status message Processed
    referenceStatus String Response code from the bank/issuer 0000
    referenceMessage String Response message from the bank/issuer SUCCESS
    channelCode String Channel code 04, 07, or 09

    API Response

    Response Status

    Status Description Possible Reason
    -1 Internal Error Internal engine error/Temporary unavailable/Unreachable access gateway.
    0 Success Indicate API Call is performed successfully.
    1 Failed Indicate API Call is performed unsuccessfully. (Example: Inquiry is failed due to account not found or other reason.)
    7 IP address is not listed The IP address is not allowed to do the operation
    9 Unathorized access Request header parameters is incorrect/missing.
    11 Invalid parameters Request body parameters is incorrect/missing. Caused by several reasons:
    Sub Message Reason
    Beneficiary country code is required beneficiary.country.code value must be filled
    Beneficiary firstName is required beneficiary.firstName value must be filled
    Beneficiary lastName is required beneficiary.lastName value must be filled
    Beneficiary phoneNumber is required beneficiary.phoneNumber value must be filled
    Beneficiary country not valid beneficiaryCountry value is not valid
    Beneficiary currency not valid beneficiaryCurrency value is not valid
    Sender country code is required sender.country.code value must be filled
    Sender firstName is required sender.firstName value must be filled
    Sender lastName is required sender.lastName value must be filled
    Sender phoneNumber is required sender.phoneNumber value must be filled
    Sender birthDate is required sender.birthDate value must be filled
    Sender personalId is required sender.personalId value must be filled
    Sender personalIdType is required sender.personalIdType value must be filled
    Sender country not valid senderCountry value is not valid
    Sender currency not valid senderCurrency value is not valid
    Sender amount is invalid senderAmount parameter must exist
    Channel code is not valid channel.code value is not valid
    Invalid parameter For input string: \"...\" beneficiaryAccount.number value contains special characters, which is not allowed
    Invalid value Possible reasons:
    1. senderAmount value must be a number
    2. sender.birthDate format must be in YYYY-mm-DD
    Invalid inquiryId inquiry.idToken value is not valid
    Route Bank not allow beneficiaryAccount.bank.id value is not valid or the bank is not supported. Contact DOKU care for further assistance.
    This field is required This parameter must exist in the request
    Transaction could not be found transactionId value is not valid
    13 Duplicate sendTrxId Reference The value of sendTrxId must be unique
    16 Missing configuration Merchant is not properly configured.
    E.g: Fee for channel bank deposit has not been set.
    21 Rate is not found Forex rate has not been set for the merchant.
    29 Rejected Transaction with high risk. Caused by several reasons:
    1. Multiple transfers to the same beneficiary within last 60 seconds.
    2. Multiple transfers to the same beneficiary up to IDR 500 million/day or 50 times/day.
    3. Multiple transfers to the same beneficiary up to IDR 1 billion/month or 200 times/month.
    4. Banned customers.
    55 Timeout Internal connection timeout.
    91 Inactive Merchant is inactive.
    95 Insufficient Balance Partner last balance in DOKU is not sufficient to make a transfer.
    97 Account is Invalid Caused by beneficiary account number has failed inquiry 4 times in the past 2 hours.
    98 Rejected Caused by beneficiary account number has been rejected in the last 2 hours.
    99 Invalid Json Invalid Json format.
    99 Expired Inquiry Token Inquiry token is expired after 30 days.

    Transaction Status

    Status Description
    0 Transaction status is unknown.
    20 Timeout (pending) transaction. Status will be changed after reconciliation (T+1 working days). Labeled with UNPAID in the dashboard.
    Do not treat transaction with this status as success or failed.
    35 Transfer failed to be processed. Labeled with FAILED in the dashboard.
    Treat transaction with this status as failed.
    40 Transaction has been refunded. Labeled with REFUNDED in the dashboard.
    50 Transaction is sucessfully processed. Labeled with PAID in the dashboard.
    Treat transaction with this status as success.
    65 Transaction is on process to change from pending to either success or failed. Labeled with PENDING PROCESS in the dashboard.
    Do not treat transaction with this status as success or failed.
    70 Transactions with this status are on hold and will be processed on the next working day.
    Only applied to high value transactions (SKNBI/RTGS) during non working hours if requested by merchants.
    Labeled with ONHOLD in the dashboard.
    Do not treat transaction with this status as success or failed.

    List of Supported Banks

    KIRIMDOKU API supports transfer to various Banks in Indonesia. Please refer to below information regarding Bank details:

    No Bank Name Id SWIFT Code Online BI Fast SKN/RTGS
    1 BANK BRI 002 BRINIDJA
    2 BANK MANDIRI 008 BMRIIDJA
    3 BANK BNI 46 009 BNINIDJA
    4 BANK DANAMON 011 BDINIDJA
    5 BANK DANAMON UUS (SYARIAH) 011SY SYBDIDJ1
    -
    6 BANK PERMATA 013 BBBAIDJA
    7 BANK PERMATA UUS (SYARIAH) 013SY SYBBIDJ1
    -
    8 BANK BCA 014 CENAIDJA
    9 BANK MAYBANK 016 IBBKIDJA
    10 BANK MAYBANK UUS (SYARIAH) 016SY SYBKIDJ1
    -
    11 BANK PANIN 019 PINBIDJA
    12 BANK CIMB NIAGA 022 BNIAIDJA
    13 BANK CIMB NIAGA UUS (SYARIAH) 022SY SYNAIDJ1
    -
    14 BANK UOB INDONESIA 023 BBIJIDJA
    15 BANK OCBC NISP 028 NISPIDJA
    16 BANK OCBC NISP UUS (SYARIAH) 028SY SYONIDJ1
    -
    17 CITIBANK 031 CITIIDJX
    18 JPMORGAN BANK 032 CHASIDJX
    -
    19 BANK OF AMERICA NA 033 BOFAID2X
    -
    20 BANK CCB INDONESIA 036 BWKIIDJA
    21 BANK ARTHA GRAHA 037 ARTGIDJA
    22 MUFG BANK 042 BOTKIDJX
    23 BANK DBS INDONESIA 046 DBSBIDJA
    24 BANK RESONA PERDANIA 047 BPIAIDJA
    -
    25 BANK MIZUHO INDONESIA 048 MHCCIDJA
    -
    26 BANK STANDARD CHARTERED 050 SCBLIDJX
    27 BANK CAPITAL 054 BCIAIDJA
    28 BANK BNP PARIBAS 057 BNPAIDJA
    -
    29 BANK ANZ INDONESIA 061 ANZBIDJX
    30 DEUTSCHE BANK 067 DEUTIDJA
    -
    -
    31 BANK OF CHINA HK. LTD. 069 BKCHIDJA
    32 BANK BUMI ARTA 076 BBAIIDJA
    33 BANK HSBC INDONESIA 087 HSBCIDJA
    34 BANK JTRUST INDONESIA 095 CICTIDJA
    35 BANK MAYAPADA INTERNATIONAL 097 MAYAIDJA
    36 BANK JABAR 110 PDJBIDJA
    37 BANK DKI 111 BDKIIDJA
    38 BANK DKI UUS (SYARIAH) 111SY SYDKIDJ1
    -
    39 BANK BPD DIY 112 PDYKIDJ1
    40 BANK BPD DIY UUS (SYARIAH) 112SY SYYKIDJ1
    -
    41 BANK JATENG 113 PDJGIDJ1
    42 BANK JATENG UUS (SYARIAH) 113SY SYJGIDJ1
    -
    43 BANK JATIM 114 PDJTIDJ1
    44 BANK JATIM UUS (SYARIAH) 114SY SYJTIDJ1
    -
    45 BPD JAMBI 115 PDJMIDJ1
    46 BPD JAMBI UUS (SYARIAH) 115SY SYJMIDJ1
    -
    47 BANK ACEH 116 SYACIDJ1
    48 BANK SUMUT 117 PDSUIDJ1
    49 BANK SUMUT UUS (SYARIAH) 117SY SYSUIDJ1
    -
    50 BPD SUMATERA BARAT/BANK NAGARI 118 PDSBIDSP
    51 BANK NAGARI UUS (SYARIAH) 118SY SYSBIDSP
    -
    52 BANK RIAU 119 PDRIIDJA
    53 BPD SUMSEL BABEL 120 BSSPIDSP
    54 BPD SUMSEL BABEL UUS (SYARIAH) 120SY SYSSIDJ1
    -
    55 BANK LAMPUNG 121 PDLPIDJ1
    56 BPD KALSEL 122 PDKSIDJ1
    57 BPD KALSEL UUS (SYARIAH) 122SY SYKSIDJ1
    -
    58 BPD KALBAR 123 PDKBIDJ1
    59 BPD KALBAR UUS (SYARIAH) 123SY SYKBIDJ1
    -
    60 BPD KALTIMTARA 124 PDKTIDJ1
    61 BPD KALTIMTARA UUS (SYARIAH) 124SY SYKTIDJ1
    -
    62 BPD KALTENG 125 PDKGIDJ1
    63 BANK SULSELBAR 126 PDWSIDJ1
    64 BANK SULSELBAR UUS (SYARIAH) 126SY SYWSIDJ1
    -
    65 BANK SULUTGO 127 PDWUIDJ1
    66 BANK NTB 128 PDNBIDJ1
    67 BPD BALI 129 ABALIDBS
    68 Bank NTT 130 PDNTIDJ1
    69 BPD MALUKU 131 PDMLIDJ1
    70 BPD PAPUA 132 PDIJIDJ1
    71 BPD BENGKULU 133 PDBKIDJ1
    72 BPD SULTENG 134 PDWGIDJ1
    73 BPD SULTRA 135 PDWRIDJ1
    74 BPD BANTEN 137 PDBBIDJ1
    75 BANK OF INDIA INDONESIA 146 BKIDIDJA
    -
    76 BANK MUAMALAT INDONESIA 147 MUABIDJA
    77 BANK MESTIKA DHARMA 151 MEDHIDS1
    78 BANK SHINHAN INDONESIA 152 MEEKIDJ1
    79 BANK SINARMAS 153 SBJKIDJA
    80 BANK SINARMAS UUS (SYARIAH) 153SY SYTBIDJ1
    -
    81 BANK MASPION INDONESIA 157 MASDIDJ1
    82 BANK GANESHA 161 GNESIDJA
    83 BANK ICBC 164 ICBKIDJA
    84 BANK QNB INDONESIA 167 AWANIDJA
    85 BANK BTN 200 BTANIDJA
    86 BANK BTN UUS (SYARIAH) 200SY SYBTIDJ1
    -
    87 BANK WOORI SAUDARA 212 BSDRIDJA
    88 Bank BTPN 213 SUNIIDJA
    89 BANK VICTORIA SYARIAH 405 SWAGIDJ1
    -
    90 BANK JABAR BANTEN SYARIAH 425 SYJBIDJ1
    91 BANK MEGA 426 MEGAIDJA
    92 BANK KB BUKOPIN 441 BBUKIDJA
    93 BANK BSI (BANK SYARIAH INDONESIA) 451 BSMDIDJA
    94 KROM BANK 459 BUSTIDJ1
    -
    -
    95 BANK JASA JAKARTA 472 JSABIDJ1
    96 BANK KEB HANA 484 HNBNIDJA
    97 BANK MNC INTERNASIONAL 485 BUMIIDJA
    98 BANK NEO COMMERCE 490 YUDBIDJ1
    99 BANK RAYA INDONESIA 494 AGTBIDJA
    100 BANK SBI INDONESIA 498 SBIDIDJA
    -
    101 BANK DIGITAL BCA 501 BBLUIDJA
    102 BANK NATIONAL NOBU 503 LFIBIDJ1
    103 BANK MEGA SYARIAH 506 BUTGIDJ1
    104 BANK INA PERDANA 513 IAPTIDJA
    -
    105 BANK PANIN DUBAI SYARIAH 517 PNBSIDJA
    106 BANK PRIMA MASTER 520 PMASIDJ1
    -
    107 BANK BUKOPIN SYARIAH 521 SDOBIDJ1
    108 BANK SAHABAT SAMPOERNA 523 SAHMIDJA
    109 BANK OKE INDONESIA 526 LMANIDJ1
    110 BANK AMAR 531 LOMAIDJ1
    -
    111 BANK SEABANK INDONESIA 535 SSPIIDJA
    112 BANK BCA SYARIAH 536 SYCAIDJ1
    113 BANK JAGO 542 ATOSIDJ1
    114 BANK BTPN SYARIAH 547 PUBAIDJ1
    115 BANK MULTI ARTA SENTOSA 548 BMSEIDJA
    116 BANK MAYORA 553 MAYOIDJA
    117 BANK INDEX 555 BIDXIDJA
    118 BANK MANDIRI TASPEN 564 SIHBIDJ1
    119 BANK VICTORIA INTERNASIONAL 566 VICTIDJ1
    120 BANK ALLO 567 HRDAIDJ1
    121 LINKAJA 911 -
    -
    -
    122 BANK IBK INDONESIA 945 IBKOIDJA
    123 BANK ALADIN SYARIAH 947 NETBIDJA
    124 BANK CTBC INDONESIA 949 CTCBIDJA
    125 BANK COMMONWEALTH 950 BICNIDJA
    126 OVO OVO OVO
    -
    -

    List of Supported Overseas Banks

    Singapore

    Please refer to below information regarding Singaporean Bank details supported by KIRIMDOKU API:

    No Bank Name Id SWIFT Code
    1 Australia and New Zealand Banking Group Limited 65228 ANZBSGSX
    2 BANK OF CHINA LIMITED 65229 BKCHSGSG
    3 BANK OF TOKYO-MITSUBISHI UFJ, LTD., THE 65230 BOTKSGSX
    4 BNP PARIBAS - SINGAPORE BRANCH 65231 BNPASGSG
    5 CIMB BANK BERHAD 65232 CIBBSGSG
    6 CITIBANK SINGAPORE LTD 65233 CITISGSL
    7 CITIBANK,N.A. 65234 CITISGSG
    8 DBS BANK LTD. 65235 DBSSSGSG
    9 DEUTSCHE BANK AG 65236 DEUTSGSG
    10 HL BANK, SINGAPORE 65237 HLBBSGSG
    11 ICICI BANK LIMITED 65238 ICICSGSG
    12 INDUSTRIAL AND COMMERCIAL BANK OF CHINA 65239 ICBKSGSG
    13 OVERSEA-CHINESE BANKING CORPORATION LIMITED 65240 OCBCSGSG
    14 RHB BANK BERHAD 65241 RHBBSGSG
    15 STANDARD CHARTERED BANK LIMITED 65242 SCBLSGSG
    16 SUMITOMO MITSUI BANKING CORPORATION 65243 SMBCSGSG
    17 UNITED OVERSEAS BANK LIMITED 65244 UOVBSGSG
    18 MALAYAN BANKING BERHAD 65245 MBBESGSG
    19 Malayan Singapore Limited 65247 MBBESGS2
    20 Mizuho Bank Limited 65248 MHCBSGSG
    21 Sing Investments & Finance Limited 65249 SIVFSGSG
    22 HSBC (Personal) 65250 HSBCSGS2
    23 HSBC (Corporate) 65251 HSBCSGSG

    Philippines

    Please refer to below information regarding Phiplippines Bank details supported by KIRIMDOKU API:

    No Bank Name Id SWIFT Code
    1 Bank Of Commerce 65252 PABIPHMM
    2 RURAL BANK OF GUINOBATAN INC (RBGI) 65253 RUGUPHM1
    3 RANG-AY BANK, INC. (A Rural Bank) 65254 RARLPHM1
    4 PRODUCERS SAVINGS BANK CORP 65255 PSCOPHM1
    5 KEB HANA 65256 KOEXPHMM
    6 INNOVATIVE BANK INC 65257 IORUPHM1
    7 INDUSTRIAL BANK OF KOREA 65258 IBKOPHMM
    8 FIRST CONSOLIDATED BANK 65259 FIOOPHM1
    9 COUNTRY BUILDERS BANK INC (A Rural Bank) 65260 COUKPHM1
    10 CIMB BANK PHILIPPINES INC 65261 CIPHPHMM
    11 CEBUANA LHUILLIER RURAL BANK INC 65262 CELRPHM1
    12 CAMALIG BANK, INC (A Rural Bank) 65263 RUCAPHM1
    13 BDO PRIVATE BANK 65264 BOPBPHMM
    14 BDO NETWORK BANK 65265 BNORPHMM
    15 BOF, INC (A Rural Bank) - Bank of Florida 65266 BORRPHM1
    16 SHINHAN BANK 65267 SHBKPHMM
    17 SUMITOMO MITSUI BANKING CORP 65268 SMBCPHMM
    18 Philippines Business Bank 65269 PPBUPHMM
    19 Sterling Bank of Asia 65270 STLAPH22
    20 Development Bank Of Philippines 65271 DBPHPHMM
    21 China Bank Saving 65272 CHSVPHM1
    22 United Coconut Planters Bank 65273 UCPBPHMM
    23 Robinson Bank 65274 ROBPPHMQ
    24 WealthBank 65275 WEDVPHM1
    25 Philippines Saving Bank 65276 PHSBPHMM
    26 BPI Family Savings Bank 65277 BPFSPHM1
    27 Bank Of China 65278 BKCHPHMM
    28 Asia united Bank 65279 AUBKPHMM
    29 JP Morgan Chase 65280 CHASPHMM
    30 Anz Bank 65281 ANZBPHMX
    31 Bangkok Bank 65282 BKKBPHMM
    32 Deutsche Bank 65283 DEUTPHMM
    33 MIZUHO BANK LTD (Fuji Bank) 65284 MHCBPHMM
    34 East-West Bank 65285 EWBCPHMM
    35 MEGA INTL COMML BANK CO LTD (ICBC) 65286 ICBCPHMM
    36 Banco De Oro 65287 BNORPHMM
    37 MUFG BANK LTD (Bank Of Tokyo) 65288 BOTKPHMM
    38 Union Bank 65289 UBPHPHMM
    39 Land Bank 65290 TLBPPHMM
    40 Philippine Veterans Bank 65291 PHVBPHMM
    41 RCBC 65292 RCBCPHMM
    42 United Overseas Bank 65293 UOVBPHMM
    43 CTBC Bank (Philippines) Corporation 65294 CTCBPHMM
    44 Dungganon Bank, Inc. 65295 DUMTPHM1
    45 Equicom Saving Bank, Inc. 65296 EQSNPHM1
    46 Isla Bank, Inc. 65297 ISTHPHM1
    47 Malayan Bank Saving and Mortgage Bank, Inc. 65298 MAARPHM1
    48 AL AMANAH ISLAMIC INVESTMENT BANK 65299 AIIPPHMM
    49 Partner Rural Bank, Inc. 65300 PRTOPHM1
    50 Sun Savings Bank, Inc. 65301 SUSVPHM1
    51 UCPB Savings Bank 65302 UCSVPHM1
    52 Yuanta Savings Bank Philippines, Inc. 65303 TYBKPHMM
    53 BPI Direct Banko, Inc. 65304 BPDIPHM1
    54 Bangko Mabuhay, Inc. 65305 MRTCPHM1
    55 ING Bank N. V. 65306 INGBPHMM
    56 QCRB 65307 QCRIPHM1
    57 HSBC Savings Bank 65309 HBPHPHMM
    58 HSBC 65310 HSBCPHMM
    59 EastWest Rural Bank 65311 EAWRPHM2
    60 Maybank 65312 MBBEPHMM
    61 Security Bank 65313 SETCPHMM
    62 Bank Of America 65314 BOFAPH2X
    63 Philippine Bank of Communications 65316 CPHIPHMM
    64 China Bank 65317 CHBKPHMM
    65 Philippine Trust Company 65318 PHTBPHMM
    66 Philippine National Bank 65319 PNBMPHMM
    67 Citibank N.a. 65320 CITIPHMXV
    68 Standard Chartered 65321 SCBLPHMM
    69 Bank Of Philippines Islands 65322 BOPIPHMM
    70 OmniPay, Inc. 65323 OMNPPHM2
    71 ALLBANK 65324 ALKBPHM2

    Version

    Document version 3.4

    Nov 16, 2023

    Bank Name Changed:

    New Bank Added:

    Swift code updated: