@Override
    public PaymentResponse requestPayment(PaymentRequest request) throws ArsenalPayApiException {
        ApiCommandProducer producer = new InitPayMkProducer(request, credentials);
        ApiCommand command = producer.getCommand();
        try {
            final ApiResponse apiResponse = apiClient.executeCommand(command);
            final String xml = apiResponse.getBody();
            return PaymentResponse.fromXml(xml);
        } catch (IOException e) {
            throw new InternalApiException(e);
        }
    }