/// <summary> /// Listar todos os pagamentos de fatura - List all invoice payments /// </summary> /// <param name="id"> Id da Cobrança </param> /// <returns></returns> public async Task <PaymentsSignatureResponse> ListAllInvoicePayments(string id) { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"assinaturas/v1/invoices/{id}/payments"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <PaymentsSignatureResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Listar Planos - List Plans /// </summary> /// <returns></returns> public async Task <PlansResponse> ListPlans() { HttpResponseMessage response = await ClientInstance.GetAsync("assinaturas/v1/plans"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <PlansResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Obtem a chave pública - Get public key /// </summary> /// <returns></returns> public async Task <PublicKeyAccountWirecardResponse> GetPublickey() { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync("v2/keys"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <PublicKeyAccountWirecardResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw new ArgumentException("Error message: " + ex.Message); } }
/// <summary> /// Obter Arquivo de Vendas - Get Sales File /// </summary> /// <param name="date">Data no formato YYYYMMDD</param> /// <returns></returns> public async Task <SalesFileResponse> GetSalesFile(string date) { HttpResponseMessage response = await ClientInstance.GetAsync($"v2/reconciliations/sales/{date}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <SalesFileResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Consultar Webhook Enviado - Consult Webhook Submitted /// </summary> /// <param name="payment_id">Identificador do pagamento</param> /// <returns></returns> public async Task <WebhooksResponse> ConsultWebhook(string payment_id) { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/webhooks?resourceId={payment_id}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <WebhooksResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Consultar Cupom - Consult Coupon /// </summary> /// <param name="code"> Código do Cupom. </param> /// <returns></returns> public async Task <CouponResponse> ConsultCoupon(string code) { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"assinaturas/v1/coupons/{code}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <CouponResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Listar Todas as Preferências de Notificação - List All Notification Preferences /// </summary> /// <returns></returns> public async Task <List <NotificationResponse> > List() { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync("v2/preferences/notifications"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <List <NotificationResponse> >(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Listar Reembolsos do Pedido - List Order Reimbursements /// </summary> /// <param name="orders_id">Id do pedido em formato de hash. string(16).</param> /// <returns></returns> public async Task <List <RefundResponse> > ListOrders(string orders_id) { HttpResponseMessage response = await ClientInstance.GetAsync($"v2/orders/{orders_id}/refunds"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <List <RefundResponse> >(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Listar Extrato - List Extract /// </summary> /// <param name="begin">Data de início de exibição no formato YYYY-MM-DD.</param> /// <param name="end">Data de fim de exibição no formato YYYY-MM-DD.</param> /// <returns></returns> public async Task <ExtractResponse> List(string begin, string end) { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/statements?begin={begin}&end={end}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <ExtractResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Consultar Pagamento - Consult Payment /// </summary> /// <param name="payment_id">Código identificador do pagamento que deseja consultar. Exemplo: PAY-HL7QRKFEQNHV</param> /// <returns></returns> public async Task <PaymentResponse> Consult(string payment_id) { HttpResponseMessage response = await ClientInstance.GetAsync($"v2/payments/{payment_id}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <PaymentResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw new ArgumentException("Error message: " + ex.Message); } }
/// <summary> /// Liberação de Custódia - Release of Custody /// </summary> /// <param name="escrow_id">Código identificador da custódia. Exemplo ECW-9OS6FAPR3FD5</param> /// <returns></returns> public async Task <PaymentResponse> ReleaseCustody(string escrow_id) { HttpResponseMessage response = await Http_Client.HttpClient.PostAsync($"escrows/{escrow_id}/release", null); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <PaymentResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw new ArgumentException("Error message: " + ex.Message); } }
/// <summary> /// Capturar Multi Pagamento Pré-Autorizado - Capture Multi-Payment Pre-authorized /// </summary> /// <param name="multipayment_id">Id identificador do multipagamento.</param> /// <returns></returns> public async Task <MultiPaymentResponse> CaptureAuthorized(string multipayment_id) { HttpResponseMessage response = await Http_Client.HttpClient.PostAsync($"v2/multipayments/{multipayment_id}/capture", null); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <MultiPaymentResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Listar Todas Transferências com filtro - List All Transfers with filter /// </summary> /// <returns></returns> public async Task <TransfersResponse> ListFilter(string filter) { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/transfers?{filter}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <TransfersResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Listar Extrato Futuro - List Future Extract /// </summary> /// <param name="type">Tipo do extrato.</param> /// <param name="date">Data para visualizar os detalhes no formato YYYY-MM-DD.</param> /// <returns></returns> public async Task <ExtractResponse> DetailFuture(string type, string date) { HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/futurestatements/details?type={type}&date={date}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <ExtractResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Reenviar webhook - Resend WebHook /// </summary> /// <returns></returns> public async Task <NotificationResponse> ResendWebhook(NotificationRequest body) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); HttpResponseMessage response = await Http_Client.HttpClient.PostAsync("v2/webhooks", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <NotificationResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Criar novo boleto de fatura - Create New Invoice Boleto /// </summary> /// <param name="body"></param> /// <param name="id">ID da fatura</param> /// <returns></returns> public async Task <RetentativeResponse> CreateNewInvoiceBoleto(RetentativeRequest body, string id) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); HttpResponseMessage response = await Http_Client.HttpClient.PostAsync($"assinaturas/v1/invoices/{id}/boletos", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <RetentativeResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Ativar ou Inativar Cupon - Enable or Disable Coupon /// </summary> /// <param name="code">Código do Cupom</param> /// <param name="active_or_inactive">Escolha active para Ativar um Cupom e inactive para desativar</param> /// <returns></returns> public async Task <CouponResponse> EnableOrDisableCoupon(string code, string active_or_inactive) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(null), Encoding.UTF8, "application/json"); HttpResponseMessage response = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/coupons/{code}/{active_or_inactive}", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <CouponResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Cria a conta clássica - Create the classic account /// </summary> /// <param name="body"></param> /// <returns></returns> public async Task <ClassAccountResponse> Create(ClassicAccountRequest body) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); HttpResponseMessage response = await ClientInstance.PostAsync("v2/accounts", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <ClassAccountResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Associar Cupom para Assinatura Existente - Associate Coupon For Existing Signature /// </summary> /// <returns></returns> public async Task <CouponResponse> AssociateCouponForExistingSignature(CouponRequest body, string code) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); HttpResponseMessage response = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/subscriptions/{code}", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <CouponResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Adicionar cartão de crédito - Add Credit Card /// </summary> /// <param name="body"></param> /// <param name="customer_id">Código identificador do cliente (exemplo: CUS-8563056295)</param> /// <returns></returns> public async Task <CustomerResponse> AddCreditCard(CustomerRequest body, string customer_id) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); HttpResponseMessage response = await ClientInstance.PostAsync($"v2/customers/{customer_id}/fundinginstruments", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <CustomerResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Criar Multi Pagamento - Create multi payment /// </summary> /// <param name="body"></param> /// <param name="multiorder_id">Código identificador do multipedido. Exemplo: MOR-XXXXXXXX</param> /// <returns></returns> public async Task <MultiPaymentResponse> Create(MultiPaymentRequest body, string multiorder_id) { StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); HttpResponseMessage response = await Http_Client.HttpClient.PostAsync($"v2/multiorders/{multiorder_id}/multipayments", stringContent); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <MultiPaymentResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Excluir Cupom de Assinatura - Delete Signature Coupon /// </summary> /// <param name="code">Código da Assinatura</param> /// <returns></returns> public async Task <CouponResponse> DeleteSignatureCoupon(string code) { HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Delete, Http_Client.HttpClient.BaseAddress + $"assinaturas/v1/subscriptions/{code}/coupon") { Content = new StringContent(string.Empty, Encoding.UTF8, "application/json") }; HttpResponseMessage response = await Http_Client.HttpClient.SendAsync(httpRequest); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <CouponResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Consultar Transferência - Consult Transfer /// </summary> /// <param name="transfer_id">Código identificador da transferência. Exemplo: TRA-28HRLYNLMUFH</param> /// <param name="accesstoken">accesstoken da conta Wirecard</param> /// <returns></returns> public async Task <TransferResponse> Consult(string transfer_id, string accesstoken) { HttpClient httpClient = Http_Client.HttpClient; httpClient.DefaultRequestHeaders.Remove("Authorization"); httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken); HttpResponseMessage response = await httpClient.GetAsync($"v2/transfers/{transfer_id}"); if (!response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content); throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode); } try { return(JsonConvert.DeserializeObject <TransferResponse>(await response.Content.ReadAsStringAsync())); } catch (System.Exception ex) { throw ex; } }