aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-02-13go.mod: update all dependenciesHEADmainShulhan
2026-02-12all: simplify README and remove the symlinkShulhan
Using symlink does not render the README correctly in the sourcehut.
2025-07-13Release duitku v0.1.0 (2025-07-13)v0.1.0Shulhan
List of supported HTTP APIs, * Disbursement, ** Transfer online ** Clearing ** Inquiry list bank ** Check balance * Merchant, ** Get payment method ** Inquiry ** Check transaction status
2025-07-13all: rewrite the README using markdownShulhan
The idea is to make it rendered in git.sr.ht and pkg.go.dev.
2025-07-12all: replace module share with pakakeh.goShulhan
The share module has been migrated and renamed to git.sr.ht/~shulhan/pakakeh.go.
2025-07-12all: use linter from package pakakeh.goShulhan
The gocheck linter implement go statis analysis using [Analyzer] that are not included in the default "go vet". [Analyzer]: https://pkg.go.dev/golang.org/x/tools/go/analysis#hdr-Analyzer
2025-07-12all: fix tests based on recent API responseShulhan
Some API now return "SUCCESS" instead of "Success", which is inconsistent with the rest.
2025-07-12all: add option Timeout to ClientShulhan
The Timeout option affect how long the client wait for connect and waiting for response.
2023-08-17go.mod: update dependenciesShulhan
2023-08-15all: add list of known error codesShulhan
The list is taken from https://docs.duitku.com/disbursement/id/?json#error-code
2023-08-15all: export all of status codesShulhan
While at it, change the code prefix from ResCodeXXX to StatusCodeXXX so we can add another error codes later.
2023-07-12client/merchant_inquiry: return 4xx error from duitkuyogi sofiharja
By returning 4xx error, client can return the correct error given by duitku
2023-07-12merchant_inquiry_response: add struct ErrorMessage to catch HTTP error messageyogi sofiharja
2023-07-06client: return response from duitku even if the code is not success (00)yogi sofiharja
It allow the client to show error that comes from duitku
2023-03-23all: replace golangci-lint with reviveShulhan
The golangci-lint is become unusable when building with Go tip and their default run does not return any results. This changes fix all code and comments reported by revive.
2023-03-23all: fix the response fields on MerchantInquiryResponseShulhan
The response fields for MerchantInquiry use statusCode and statusMessage instead of responseCode and responseDesc.
2023-03-17all: change the MerchantTxStatus parameter to structShulhan
The idea is to allow the caller to know the Signature of request after call to MerchantTxStatus and possibly log the whole request. While at it, we change the method name to MerchantPaymentStatus and the type from transactionStatus to PaymentStatus, and from TxStatusResponse to PaymentStatusResponse.
2023-03-09all: export the CallbackUrl, ReturnUrl, and Signature in MerchantInquiryShulhan
This is to allow the MerchantInquiry API to be more customize able instead of fixed, using specific merchant configuration. While at it change the MerchantInquiry method parameter to pointer, because to allow the caller receive filled Signature for audit.
2023-03-09all: export the field ExpiryPeriode in MerchantInquiryShulhan
This is to allow client to override default expiration periode, rather than using the default.
2023-03-09go.mod: update all dependenciesShulhan
2023-02-12go.mod: update all dependencies to latest releaseShulhan
2023-02-02all: replace time.DateTime with static stringShulhan
The time.DateTime constant available since in Go 1.20.
2023-02-01all: update README to include supported merchant APIsShulhan
Supported merchant APIs, * Get payment method - https://docs.duitku.com/api/en/#get-payment-method * Inquiry - https://docs.duitku.com/api/en/#request-transaction * Check transaction status - https://docs.duitku.com/api/en/#check-transaction
2023-02-01all: implement API to check merchant transaction statusShulhan
The MerchantTxStatus method check the payment status by its orderID and payment method. Reference: https://docs.duitku.com/api/en/#check-transaction
2023-02-01go.mod: update the share moduleShulhan
The latest share module provide function to marshal struct to url.Values which we will need later for querying payment status.
2023-02-01all: implement API for Merchant InquiryShulhan
The MerchantInquiry API request payment to the Duitku system (via virtual account numbers, QRIS, e-wallet, and so on). Ref: https://docs.duitku.com/api/en/#request-transaction
2023-02-01all: split the merchant into DefaultMerchant and PaymentMerchantShulhan
The PaymentMerchant will be used if the payment method during inquiry exist as the key in it; otherwise it will use DefaultMerchant
2023-01-31all: add client options to set merchant callback and return URLShulhan
Since the callback and return URL rarely changes, setting this in ClientOptions can simplify creating MerchantInquiry request.
2023-01-31all: implement API to get active payment method for merchantShulhan
The MerchantPaymentMethod method return list of payment methods enabled by merchant (your project).
2023-01-31all: add function to load ClientOptions from fileShulhan
The LoadClientOptions load the ClientOptions from configuration file. The file configuration is using INI, for example [duitku] server_url = https://sandbox.duitku.com disburse_user_id = 3551 disburse_email = test@chakratechnology.com disburse_api_key = de5...
2023-01-31make: split the lint task and add golangci-lint as one of the linterShulhan
2023-01-31all: add prefix Disburse to UserID, Email, and ApiKey in ClientOptionsShulhan
This is to differentiate options between Merchant and Disbursement.
2023-01-31all: add options for merchant code and its API keyShulhan
We add additional merchant code and API key for Indomaret transaction.
2023-01-20all: fix and un-skip testing Clearing Inquiry and TransferShulhan
2023-01-20make: print total test coverage and generate coverage filesShulhan
2023-01-20all: update comment on Client ListBankShulhan
2023-01-20all: move test files for disbursement under its own directoryShulhan
While at it, compare the test response directly by overwriting CustRefNumber and DisburseID.
2023-01-20all: set DisburseID after successful RtolTransferShulhan
The actual response from Server does not return "disburseId", so we set it in RtolTransfer to prevent 0 value.
2023-01-20all: implement client API for InquiryStatusShulhan
The InquiryStatus get the status of previous Transfer. Ref: https://docs.duitku.com/disbursement/en/#inquiry-status
2022-11-30all: change the parameter of ClearingTransfer and RtolTransferShulhan
Instead of using request and response from inquiry, pass the actual Transfer type. This is to minimize confusion and to allow the caller to log the request on their side.
2022-11-30all: do not check for response Code on transferShulhan
As long as the response body is valid, return it to caller and let them check the response code manually. This is to allow user to log the request and full response.
2022-11-30all: add method Options in ClientShulhan
The Options method return the current client configuration.
2022-11-18testdata/disbursement: fix typo in bankAccount numberShulhan
2022-11-18all: export types RtolTransfer, ClearingTransfer and method SignShulhan
The idea is to allow testing the client from other module without using the provided APIs.
2022-11-15all: move the "/webapi/api" prefix from server URL to pathsShulhan
Instead of declaring the fixed prefix "/webapi/api" in the server URL, define it in the path itself so the server URL can be cleanly mock up.
2022-11-10all: change the inquiry and transfer parameter to pointerShulhan
Since the call to inquiry/transfer modify the parameter fields, we need to pass it as pointer so the caller can inspect or log the request values.
2022-11-07all: update README, license headers, and add MakefileShulhan
2022-11-07all: update comments format and remove loggingShulhan
2022-11-07all: implement type for Clearing callbackShulhan
The ClearingCallbackResponse contains fields that must be set in order to response from ClearingTransfer callback.
2022-11-07all: add missing field Purpose and UserID in RtolTransferResponseShulhan
While at it, use and embed RtolInquiryResponse inside RtolTransferResponse to minimize duplication.