// Path: libs/payment/src/main/java/com/africastalking/payment/response/B2CResponse.java
// public final class B2CResponse {
// 
//     public int numQueued;
//     public String totalValue;
//     public String totalTransactionFee;
//     public List<B2CEntry> entries;
// 
// 
//     public static class B2CEntry {
//         public String phoneNumber;
//         public String status;
//         public String provider;
//         public String providerChannel;
//         public String value;
//         public String transactionId;
//         public String transactionFee;
//         public String errorMessage = null;
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// 
// }
// 
// Path: libs/payment/src/main/java/com/africastalking/payment/response/BankTransferResponse.java
// public final class BankTransferResponse {
//     public String errorMessage;
//     public List<BankEntries> entries;
// 
//     public static final class BankEntries {
//         public String accountNumber;
//         public String status;
//         public String transactionId;
//         public String transactionFee;
//         public String errorMessage;
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/payment/src/main/java/com/africastalking/payment/response/CheckoutValidateResponse.java
// public final class CheckoutValidateResponse {
// 
//     /**
//      * Status
//      */
//     public String status;
// 
//     /**
//      * Status description
//      */
//     public String description;
// 
//     /**
//      * Optional checkout token
//      */
//     public String checkoutToken;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/payment/src/main/java/com/africastalking/payment/response/CheckoutResponse.java
// public final class CheckoutResponse {
// 
//     /**
//      * Unique transaction ID
//      */
//     public String transactionId;
//     /**
//      * Transaction status e.g. CheckoutResponse.STATUS_PENDING
//      */
//     public String status;
// 
//     /**
//      * Status description
//      */
//     public String description;
// 
// 
//     /**
//      * Optional checkout token
//      */
//     public String checkoutToken = null;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// 
// }


import com.africastalking.payment.response.B2BResponse;
import com.africastalking.payment.response.B2CResponse;
import com.africastalking.payment.response.BankTransferResponse;
import com.africastalking.payment.response.CheckoutValidateResponse;
import com.africastalking.payment.response.CheckoutResponse;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import java.util.HashMap;
package com.africastalking;





interface IPayment {
    @POST("mobile/b2c/request")
    Call<B2CResponse> requestB2C(@Body HashMap<String, Object> body);

    @POST("mobile/b2b/request")
    Call<B2BResponse> requestB2B(@Body HashMap<String, Object> body);

    @POST("mobile/checkout/request")
    Call<CheckoutResponse> mobileCheckout(@Body HashMap<String, Object> body);

    @POST("card/checkout/charge")
    Call<CheckoutResponse> cardCheckoutCharge(@Body HashMap<String, Object> body);

    @POST("card/checkout/validate")
    Call<CheckoutValidateResponse> cardCheckoutValidate(@Body HashMap<String, Object> body);

    @POST("bank/checkout/charge")
    Call<CheckoutResponse> bankCheckoutCharge(@Body HashMap<String, Object> body);

    @POST("bank/checkout/validate")
    Call<CheckoutValidateResponse> bankCheckoutValidate(@Body HashMap<String, Object> body);

    @POST("bank/transfer")
// Path: libs/payment/src/main/java/com/africastalking/payment/response/B2CResponse.java
// public final class B2CResponse {
// 
//     public int numQueued;
//     public String totalValue;
//     public String totalTransactionFee;
//     public List<B2CEntry> entries;
// 
// 
//     public static class B2CEntry {
//         public String phoneNumber;
//         public String status;
//         public String provider;
//         public String providerChannel;
//         public String value;
//         public String transactionId;
//         public String transactionFee;
//         public String errorMessage = null;
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// 
// }
// 
// Path: libs/payment/src/main/java/com/africastalking/payment/response/BankTransferResponse.java
// public final class BankTransferResponse {
//     public String errorMessage;
//     public List<BankEntries> entries;
// 
//     public static final class BankEntries {
//         public String accountNumber;
//         public String status;
//         public String transactionId;
//         public String transactionFee;
//         public String errorMessage;
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/payment/src/main/java/com/africastalking/payment/response/CheckoutValidateResponse.java
// public final class CheckoutValidateResponse {
// 
//     /**
//      * Status
//      */
//     public String status;
// 
//     /**
//      * Status description
//      */
//     public String description;
// 
//     /**
//      * Optional checkout token
//      */
//     public String checkoutToken;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/payment/src/main/java/com/africastalking/payment/response/CheckoutResponse.java
// public final class CheckoutResponse {
// 
//     /**
//      * Unique transaction ID
//      */
//     public String transactionId;
//     /**
//      * Transaction status e.g. CheckoutResponse.STATUS_PENDING
//      */
//     public String status;
// 
//     /**
//      * Status description
//      */
//     public String description;
// 
// 
//     /**
//      * Optional checkout token
//      */
//     public String checkoutToken = null;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// 
// }


// Path: libs/payment/src/main/java/com/africastalking/IPayment.java
import com.africastalking.payment.response.B2BResponse;
import com.africastalking.payment.response.B2CResponse;
import com.africastalking.payment.response.BankTransferResponse;
import com.africastalking.payment.response.CheckoutValidateResponse;
import com.africastalking.payment.response.CheckoutResponse;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import java.util.HashMap;

package com.africastalking;





interface IPayment {
    @POST("mobile/b2c/request")
    Call<B2CResponse> requestB2C(@Body HashMap<String, Object> body);

    @POST("mobile/b2b/request")
    Call<B2BResponse> requestB2B(@Body HashMap<String, Object> body);

    @POST("mobile/checkout/request")
    Call<CheckoutResponse> mobileCheckout(@Body HashMap<String, Object> body);

    @POST("card/checkout/charge")
    Call<CheckoutResponse> cardCheckoutCharge(@Body HashMap<String, Object> body);

    @POST("card/checkout/validate")
    Call<CheckoutValidateResponse> cardCheckoutValidate(@Body HashMap<String, Object> body);

    @POST("bank/checkout/charge")
    Call<CheckoutResponse> bankCheckoutCharge(@Body HashMap<String, Object> body);

    @POST("bank/checkout/validate")
    Call<CheckoutValidateResponse> bankCheckoutValidate(@Body HashMap<String, Object> body);

    @POST("bank/transfer")
    Call<BankTransferResponse> bankTransfer(@Body HashMap<String, Object> body);