module Veritrans::Api

Public Instance Methods

approve(payment_id, options = {}) click to toggle source

POST /v2/{id}/approve Docs api-docs.midtrans.com/#approve-transaction

# File lib/veritrans/api.rb, line 74
def approve(payment_id, options = {})
  if !payment_id || payment_id.to_s == ""
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/approve", options)
end
cancel(payment_id, options = {}) click to toggle source

POST /v2/{id}/cancel Docs api-docs.midtrans.com/#cancel-transaction

# File lib/veritrans/api.rb, line 64
def cancel(payment_id, options = {})
  if !payment_id || payment_id.to_s == ""
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/cancel", options)
end
capture(payment_id, gross_amount, options = {}) click to toggle source

POST /v2/capture Docs api-docs.midtrans.com/#capture-transaction

# File lib/veritrans/api.rb, line 104
def capture(payment_id, gross_amount, options = {})
  if !payment_id || payment_id.to_s == ""
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  post(config.api_host + "/v2/capture", options.merge(transaction_id: payment_id, gross_amount: gross_amount))
end
charge(payment_type, data = nil) click to toggle source

POST /v2/charge { payment_type: “credit_card” } Docs api-docs.midtrans.com/#charge-features

Example: Veritrans.charge(

payment_type: "credit_card",
credit_card: { token_id: "<token from client>" },
transaction_details: {
  order_id: "order_123",
  gross_amount: 100_000
}

)

# File lib/veritrans/api.rb, line 20
def charge(payment_type, data = nil)
  if payment_type.kind_of?(Hash) && data.nil?
    data = payment_type
    payment_type = nil
  end

  data = data.deep_symbolize_keys if data.respond_to?(:deep_symbolize_keys)

  data[:payment_type] = payment_type if payment_type

  if data.has_key?(:payment_options)
    data[payment_type.to_sym] = data.delete(:payment_options)
  end

  # Rename keys:
  # payment     -> transaction_details
  # transaction -> transaction_details
  # items       -> item_details
  # customer    -> customer_details

  data[:transaction_details] = data.delete(:payment) if data[:payment]
  data[:transaction_details] = data.delete(:transaction) if data[:transaction]
  data[:item_details] = data.delete(:items) if data[:items]
  data[:customer_details] = data.delete(:customer) if data[:customer]

  request_with_logging(:post, config.api_host + "/v2/charge", data)
end
create_snap_redirect_url(options = {})
Alias for: create_snap_token
create_snap_token(options = {}) click to toggle source

POST app.sandbox.midtrans.com/snap/v1/transactions

# File lib/veritrans/api.rb, line 54
def create_snap_token(options = {})
  result = request_with_logging(:post, config.api_host.sub('//api.', '//app.') + "/snap/v1/transactions", options)
  Veritrans::SnapResult.new(result.response, result.url, result.request_options, result.time)
end
create_widget_token(options = {})
Alias for: create_snap_token
deny(payment_id, options = {}) click to toggle source

POST /v2/{id}/deny Docs api-docs.midtrans.com/#deny-transaction

# File lib/veritrans/api.rb, line 114
def deny(payment_id, options = {})
  if !payment_id || payment_id.to_s == ''
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  request_with_logging(:post, config.api_host + "/v2/#{ERB::Util.url_encode(payment_id)}/deny", options)
end
expire(payment_id) click to toggle source

POST /v2/{id}/expire Docs api-docs.midtrans.com/#expire-transaction

# File lib/veritrans/api.rb, line 124
def expire(payment_id)
  if !payment_id || payment_id.to_s == ""
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/expire", nil)
end
inquiry_points(token_id) click to toggle source

GET /v2/point_inquiry/{token_id}

# File lib/veritrans/api.rb, line 145
def inquiry_points(token_id)
  if token_id == nil || token_id.to_s == ""
    raise ArgumentError, "parameter token_id can not be bank"
  end

  request_with_logging(:get, config.api_host + "/v2/point_inquiry/#{token_id}", {})
end
Also aliased as: point_inquiry
point_inquiry(token_id)
Alias for: inquiry_points
refund(payment_id, options = {}) click to toggle source

POST /v2/{id}/refund Docs api-docs.midtrans.com/#refund-transaction

# File lib/veritrans/api.rb, line 84
def refund(payment_id, options = {})
  if !payment_id || payment_id.to_s == ''
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  request_with_logging(:post, config.api_host + "/v2/#{ERB::Util.url_encode(payment_id)}/refund", options)
end
status(payment_id) click to toggle source

GET /v2/{id}/status Docs api-docs.midtrans.com/#get-status-transaction

# File lib/veritrans/api.rb, line 94
def status(payment_id)
  if !payment_id || payment_id.to_s == ""
    raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})"
  end

  get(config.api_host + "/v2/#{URI.escape(payment_id)}/status")
end
test_token(options = {}) click to toggle source
# File lib/veritrans/api.rb, line 48
def test_token(options = {})
  options[:client_key] = config.client_key
  request_with_logging(:get, config.api_host + '/v2/token', options).token_id
end