asaas

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HttpContentTypeJSON = "application/json"
	HttpContentTypeText = "text/plain"
)
View Source
const (
	SortPaymentBookDueDate = "dueDate"
)

Variables

This section is empty.

Functions

func Pointer

func Pointer[T any](value T) *T

Types

type Account

type Account interface {
	// SaveInvoiceCustomization (Salvar personalização da fatura)
	//
	// Possibilita personalizar a fatura apresentada ao seu cliente com o logo e cores da sua empresa.
	// Após salva, a personalização é analisada e aprovada pela nossa equipe dentro de algumas horas.
	//
	// # Resposta: 200
	//
	// InvoiceCustomizationResponse = not nil
	//
	// Error = nil
	//
	// InvoiceCustomizationResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceCustomizationResponse = not nil
	//
	// Error = nil
	//
	// InvoiceCustomizationResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceCustomizationResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceCustomizationResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Salvar personalização da fatura: https://docs.asaas.com/reference/salvar-personalizacao-da-fatura
	SaveInvoiceCustomization(ctx context.Context, body SaveInvoiceCustomizationRequest) (
		*InvoiceCustomizationResponse, error)
	// Update (Atualizar dados comerciais)
	//
	// Dependendo das informações alteradas é possível que sua conta passe por uma nova análise, o que ocasionará
	// em um bloqueio temporário de algumas funcionalidades do sistema.
	//
	// # Resposta: 200
	//
	// AccountResponse = not nil
	//
	// Error = nil
	//
	// AccountResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// AccountResponse = not nil
	//
	// Error = nil
	//
	// AccountResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AccountResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AccountResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar dados comerciais: https://docs.asaas.com/reference/atualizar-dados-comerciais
	Update(ctx context.Context, body UpdateAccountRequest) (*AccountResponse, error)
	// DeleteWhiteLabelSubaccount (Excluir subconta White Label)
	//
	// Ao excluir uma subconta no Asaas, ela perderá o acesso a todas as funcionalidades e todos os seus dados serão
	// removidos, incluindo cobranças, clientes e documentos.
	//
	// Não será possível recuperar a conta após o cancelamento.
	//
	// # Resposta: 200
	//
	// DeleteWhiteLabelSubaccountResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteWhiteLabelSubaccountResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteWhiteLabelSubaccountResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 400/401/500
	//
	// DeleteWhiteLabelSubaccountResponse = not nil
	//
	// Error = nil
	//
	// DeleteWhiteLabelSubaccountResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteWhiteLabelSubaccountResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteWhiteLabelSubaccountResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Excluir subconta White Label: https://docs.asaas.com/reference/excluir-subconta-white-label
	DeleteWhiteLabelSubaccount(ctx context.Context, body DeleteWhiteLabelSubaccountRequest) (
		*DeleteWhiteLabelSubaccountResponse, error)
	// Get (Recuperar dados comerciais)
	//
	// # Resposta: 200
	//
	// AccountResponse = not nil
	//
	// Error = nil
	//
	// AccountResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AccountResponse = not nil
	//
	// Error = nil
	//
	// AccountResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AccountResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AccountResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar dados comerciais: https://docs.asaas.com/reference/recuperar-dados-comerciais
	Get(ctx context.Context) (*AccountResponse, error)
	// GetRegistrationStatus (Recuperar taxas da conta)
	//
	// Com este endpoint é possível verificar os status de aprovação da conta.
	//
	// # Resposta: 200
	//
	// AccountRegistrationStatusResponse = not nil
	//
	// Error = nil
	//
	// AccountRegistrationStatusResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AccountRegistrationStatusResponse = not nil
	//
	// Error = nil
	//
	// AccountRegistrationStatusResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AccountRegistrationStatusResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AccountRegistrationStatusResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Consultar situação cadastral da conta: https://docs.asaas.com/reference/consultar-situacao-cadastral-da-conta
	GetRegistrationStatus(ctx context.Context) (*AccountRegistrationStatusResponse, error)
	// GetBankInfo (Recuperar número de conta no Asaas)
	//
	// # Resposta: 200
	//
	// AccountBankInfoResponse = not nil
	//
	// Error = nil
	//
	// AccountBankInfoResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AccountBankInfoResponse = not nil
	//
	// Error = nil
	//
	// AccountBankInfoResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AccountBankInfoResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AccountBankInfoResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar número de conta no Asaas: https://docs.asaas.com/reference/recuperar-numero-de-conta-no-asaas
	GetBankInfo(ctx context.Context) (*AccountBankInfoResponse, error)
	// GetFees (Recuperar taxas da conta)
	//
	// Através deste endpoint é possível verificar as taxas aplicadas na conta.
	//
	// # Resposta: 200
	//
	// AccountFeesResponse = not nil
	//
	// Error = nil
	//
	// AccountFeesResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AccountFeesResponse = not nil
	//
	// Error = nil
	//
	// AccountFeesResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AccountFeesResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AccountFeesResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar taxas da conta: https://docs.asaas.com/reference/recuperar-taxas-da-conta
	GetFees(ctx context.Context) (*AccountFeesResponse, error)
	// GetWallets (Recuperar uma lista de Wallets)
	//
	// Através deste endpoint é possível recuperar uma lista de WalletId de uma conta caso você já tenha uma conta
	// criada, mas não armazenou o WalletId.
	//
	// # Resposta: 200
	//
	// Pageable(AccountWalletResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(AccountWalletResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(AccountWalletResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar WalletId: https://docs.asaas.com/reference/recuperar-walletid
	GetWallets(ctx context.Context) (*Pageable[AccountWalletResponse], error)
	// GetBalance (Recuperar saldo da conta)
	//
	// # Resposta: 200
	//
	// AccountBalanceResponse = not nil
	//
	// Error = nil
	//
	// AccountBalanceResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AccountBalanceResponse = not nil
	//
	// Error = nil
	//
	// AccountBalanceResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AccountBalanceResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AccountBalanceResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar saldo da conta: https://docs.asaas.com/reference/recuperar-saldo-da-conta
	GetBalance(ctx context.Context) (*AccountBalanceResponse, error)
	// GetAccountStatement (Recuperar extrato)
	//
	// Retorna uma lista de movimentações financeiras no período informado nos parâmetros.
	//
	// # Resposta: 200
	//
	// Pageable(AccountStatementResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(AccountStatementResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(AccountStatementResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar extrato: https://docs.asaas.com/reference/recuperar-extrato
	GetAccountStatement(ctx context.Context, filter GetAccountStatementRequest) (
		*Pageable[AccountStatementResponse], error)
	// GetPaymentStatistic (Estatísticas de cobranças)
	//
	// # Resposta: 200
	//
	// PaymentStatisticResponse = not nil
	//
	// Error = nil
	//
	// PaymentStatisticResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// PaymentStatisticResponse = not nil
	//
	// Error = nil
	//
	// PaymentStatisticResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentStatisticResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentStatisticResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Estatísticas de cobranças: https://docs.asaas.com/reference/estatisticas-de-cobran%C3%A7as
	GetPaymentStatistic(ctx context.Context, filter GetPaymentStatisticRequest) (*PaymentStatisticResponse, error)
	// GetSplitStatistic (Recuperar valores de split)
	//
	// # Resposta: 200
	//
	// SplitStatisticResponse = not nil
	//
	// Error = nil
	//
	// SplitStatisticResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// SplitStatisticResponse = not nil
	//
	// Error = nil
	//
	// SplitStatisticResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SplitStatisticResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SplitStatisticResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar valores de split: https://docs.asaas.com/reference/recuperar-valores-de-split
	GetSplitStatistic(ctx context.Context) (*SplitStatisticResponse, error)
	// GetInvoiceCustomization (Recuperar configurações de personalização)
	//
	// # Resposta: 200
	//
	// InvoiceCustomizationResponse = not nil
	//
	// Error = nil
	//
	// InvoiceCustomizationResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// InvoiceCustomizationResponse = not nil
	//
	// Error = nil
	//
	// InvoiceCustomizationResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceCustomizationResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceCustomizationResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar configurações de personalização: https://docs.asaas.com/reference/recuperar-configuracoes-de-personalizacao
	GetInvoiceCustomization(ctx context.Context) (*InvoiceCustomizationResponse, error)
}

func NewAccount

func NewAccount(env Env, accessToken string) Account

type AccountAnticipationBankSlipResponse

type AccountAnticipationBankSlipResponse struct {
	MonthlyFeePercentage float64 `json:"monthlyFeePercentage"`
}

type AccountAnticipationCreditCardFeesResponse

type AccountAnticipationCreditCardFeesResponse struct {
	DetachedMonthlyFeeValue    float64 `json:"detachedMonthlyFeeValue"`
	InstallmentMonthlyFeeValue float64 `json:"installmentMonthlyFeeValue"`
}

type AccountAnticipationFeesResponse

type AccountAnticipationFeesResponse struct {
	CreditCard AccountAnticipationCreditCardFeesResponse `json:"creditCard"`
	BankSlip   AccountAnticipationBankSlipResponse       `json:"bankSlip"`
}

type AccountBalanceResponse

type AccountBalanceResponse struct {
	Balance float64         `json:"balance"`
	Errors  []ErrorResponse `json:"errors,omitempty"`
}

func (AccountBalanceResponse) IsFailure

func (a AccountBalanceResponse) IsFailure() bool

func (AccountBalanceResponse) IsNoContent

func (a AccountBalanceResponse) IsNoContent() bool

func (AccountBalanceResponse) IsSuccess

func (a AccountBalanceResponse) IsSuccess() bool

type AccountBankInfoResponse

type AccountBankInfoResponse struct {
	Agency       string          `json:"agency,omitempty"`
	Account      string          `json:"account,omitempty"`
	AccountDigit string          `json:"accountDigit,omitempty"`
	Errors       []ErrorResponse `json:"errors,omitempty"`
}

func (AccountBankInfoResponse) IsFailure

func (a AccountBankInfoResponse) IsFailure() bool

func (AccountBankInfoResponse) IsNoContent

func (a AccountBankInfoResponse) IsNoContent() bool

func (AccountBankInfoResponse) IsSuccess

func (a AccountBankInfoResponse) IsSuccess() bool

type AccountBankSlipFeesResponse

type AccountBankSlipFeesResponse struct {
	DefaultValue   float64 `json:"defaultValue"`
	DiscountValue  float64 `json:"discountValue"`
	ExpirationDate Date    `json:"expirationDate,omitempty"`
}

type AccountCreditBureauFeesResponse

type AccountCreditBureauFeesResponse struct {
	NaturalPersonFeeValue float64 `json:"naturalPersonFeeValue"`
	LegalPersonFeeValue   float64 `json:"legalPersonFeeValue"`
}

type AccountCreditCardFeesResponse

type AccountCreditCardFeesResponse struct {
	OperationValue                           float64 `json:"operationValue"`
	OneInstallmentPercentage                 float64 `json:"oneInstallmentPercentage"`
	UpToSixInstallmentsPercentage            float64 `json:"upToSixInstallmentsPercentage"`
	UpToTwelveInstallmentsPercentage         float64 `json:"upToTwelveInstallmentsPercentage"`
	DiscountOneInstallmentPercentage         float64 `json:"discountOneInstallmentPercentage"`
	DiscountUpToSixInstallmentsPercentage    float64 `json:"discountUpToSixInstallmentsPercentage"`
	DiscountUpToTwelveInstallmentsPercentage float64 `json:"discountUpToTwelveInstallmentsPercentage"`
	DiscountExpiration                       Date    `json:"discountExpiration"`
}

type AccountDebitCardFeesResponse

type AccountDebitCardFeesResponse struct {
	OperationValue    float64 `json:"operationValue"`
	DefaultPercentage float64 `json:"defaultPercentage"`
}

type AccountFeesResponse

type AccountFeesResponse struct {
	Payment            AccountPaymentFeesResponse      `json:"payment"`
	Transfer           AccountTransferFeesResponse     `json:"transfer"`
	Notification       AccountNotificationFeesResponse `json:"notification"`
	CreditBureauReport AccountCreditBureauFeesResponse `json:"creditBureauReport"`
	Invoice            AccountInvoiceFeesResponse      `json:"invoice"`
	Anticipation       AccountAnticipationFeesResponse `json:"anticipation"`
	Errors             []ErrorResponse                 `json:"errors,omitempty"`
}

func (AccountFeesResponse) IsFailure

func (a AccountFeesResponse) IsFailure() bool

func (AccountFeesResponse) IsNoContent

func (a AccountFeesResponse) IsNoContent() bool

func (AccountFeesResponse) IsSuccess

func (a AccountFeesResponse) IsSuccess() bool

type AccountInvoiceFeesResponse

type AccountInvoiceFeesResponse struct {
	FeeValue float64 `json:"feeValue"`
}

type AccountNotificationFeesResponse

type AccountNotificationFeesResponse struct {
	PhoneCallFeeValue float64 `json:"phoneCallFeeValue"`
	WhatsAppFeeValue  float64 `json:"whatsAppFeeValue"`
	MessagingFeeValue float64 `json:"messagingFeeValue"`
}

type AccountPaymentFeesResponse

type AccountPaymentFeesResponse struct {
	BankSlip   AccountBankSlipFeesResponse   `json:"bankSlip"`
	CreditCard AccountCreditCardFeesResponse `json:"creditCard"`
	DebitCard  AccountDebitCardFeesResponse  `json:"debitCard"`
	Pix        AccountPixPaymentFeesResponse `json:"pix"`
}

type AccountPixPaymentFeesResponse

type AccountPixPaymentFeesResponse struct {
	FixedFeeValue                 float64 `json:"fixedFeeValue"`
	FixedFeeValueWithDiscount     float64 `json:"fixedFeeValueWithDiscount"`
	PercentageFee                 float64 `json:"percentageFee"`
	MinimumFeeValue               float64 `json:"minimumFeeValue"`
	MaximumFeeValue               float64 `json:"maximumFeeValue"`
	DiscountExpiration            Date    `json:"discountExpiration,omitempty"`
	MonthlyCreditsWithoutFee      float64 `json:"monthlyCreditsWithoutFee"`
	CreditsReceivedOfCurrentMonth float64 `json:"creditsReceivedOfCurrentMonth"`
}

type AccountPixTransferFeesResponse

type AccountPixTransferFeesResponse struct {
	FeeValue       float64 `json:"feeValue"`
	DiscountValue  float64 `json:"discountValue"`
	ExpirationDate Date    `json:"expirationDate,omitempty"`
}

type AccountRegistrationStatusResponse

type AccountRegistrationStatusResponse struct {
	Id             string          `json:"id,omitempty"`
	CommercialInfo string          `json:"commercialInfo,omitempty"`
	Documentation  string          `json:"documentation,omitempty"`
	General        string          `json:"general,omitempty"`
	Errors         []ErrorResponse `json:"errors,omitempty"`
}

func (AccountRegistrationStatusResponse) IsFailure

func (AccountRegistrationStatusResponse) IsNoContent

func (a AccountRegistrationStatusResponse) IsNoContent() bool

func (AccountRegistrationStatusResponse) IsSuccess

type AccountResponse

type AccountResponse struct {
	Name          string          `json:"name,omitempty"`
	BirthDate     Date            `json:"birthDate,omitempty"`
	CpfCnpj       string          `json:"cpfCnpj,omitempty"`
	Email         string          `json:"email,omitempty"`
	Phone         string          `json:"phone,omitempty"`
	Status        AccountStatus   `json:"status,omitempty"`
	PersonType    PersonType      `json:"personType,omitempty"`
	MobilePhone   string          `json:"mobilePhone,omitempty"`
	Site          string          `json:"site,omitempty"`
	CompanyName   string          `json:"companyName,omitempty"`
	CompanyType   CompanyType     `json:"companyType,omitempty"`
	PostalCode    string          `json:"postalCode,omitempty"`
	Address       string          `json:"address,omitempty"`
	AddressNumber string          `json:"addressNumber,omitempty"`
	Complement    string          `json:"complement,omitempty"`
	Province      string          `json:"province,omitempty"`
	City          CityResponse    `json:"city,omitempty"`
	DenialReason  string          `json:"denialReason,omitempty"`
	Errors        []ErrorResponse `json:"errors,omitempty"`
}

func (AccountResponse) IsFailure

func (a AccountResponse) IsFailure() bool

func (AccountResponse) IsNoContent

func (a AccountResponse) IsNoContent() bool

func (AccountResponse) IsSuccess

func (a AccountResponse) IsSuccess() bool

type AccountStatementResponse

type AccountStatementResponse struct {
	Id                   string           `json:"id,omitempty"`
	PaymentId            string           `json:"paymentId,omitempty"`
	TransferId           string           `json:"transferId,omitempty"`
	BillId               string           `json:"billId,omitempty"`
	InvoiceId            string           `json:"invoiceId,omitempty"`
	PaymentDunningId     string           `json:"paymentDunningId,omitempty"`
	CreditBureauReportId string           `json:"creditBureauReportId,omitempty"`
	Type                 FinanceTransType `json:"type,omitempty"`
	Value                float64          `json:"value,omitempty"`
	Balance              float64          `json:"balance,omitempty"`
	Date                 Date             `json:"date,omitempty"`
	Description          string           `json:"description,omitempty"`
}

type AccountStatus

type AccountStatus string
const (
	AccountStatusApproved                    AccountStatus = "APPROVED"
	AccountStatusAwaitingActionAuthorization AccountStatus = "AWAITING_ACTION_AUTHORIZATION"
	AccountStatusDenied                      AccountStatus = "DENIED"
	AccountStatusPending                     AccountStatus = "PENDING"
)

type AccountTedTransferFeesResponse

type AccountTedTransferFeesResponse struct {
	FeeValue float64 `json:"feeValue"`
}

type AccountTransferFeesResponse

type AccountTransferFeesResponse struct {
	MonthlyTransfersWithoutFee int                            `json:"monthlyTransfersWithoutFee"`
	Ted                        AccountTedTransferFeesResponse `json:"ted"`
	Pix                        AccountPixTransferFeesResponse `json:"pix"`
}

type AccountType

type AccountType string
const (
	AccountTypeCheckingAccount    AccountType = "CHECKING_ACCOUNT"
	AccountTypeSalaryAccount      AccountType = "SALARY_ACCOUNT"
	AccountTypeInvestimentAccount AccountType = "INVESTIMENT_ACCOUNT"
	AccountTypeTypePaymentAccount AccountType = "PAYMENT_ACCOUNT"
)

type AccountWalletResponse

type AccountWalletResponse struct {
	Id string `json:"id,omitempty"`
}

type AgreementSignRequest

type AgreementSignRequest struct {
	// Determina se concorda ou discorda
	Agreed bool `json:"agreed"`
}

type AgreementSignResponse

type AgreementSignResponse struct {
	Agreed bool            `json:"agreed,omitempty"`
	Errors []ErrorResponse `json:"errors,omitempty"`
}

func (AgreementSignResponse) IsFailure

func (a AgreementSignResponse) IsFailure() bool

func (AgreementSignResponse) IsNoContent

func (a AgreementSignResponse) IsNoContent() bool

func (AgreementSignResponse) IsSuccess

func (a AgreementSignResponse) IsSuccess() bool

type Anticipation

type Anticipation interface {
	// Request (Solicitar antecipação)
	//
	// É possível solicitar uma antecipação de um parcelamento ou de uma cobrança avulsa. Em casos de parcelamento,
	// onde a forma de pagamento é por cartão, a antecipação poderá ser feita para o parcelamento completo ou para cada
	// parcela individualmente, e quando a forma de pagamento é por boleto, a antecipação será obrigatoriamente para
	// cada parcela individualmente.
	//
	// Para solicitar uma antecipação de cobrança avulsa, informe o ID da cobrança para o campo AnticipationRequest.Payment.
	// Para solicitar uma antecipação de parcelamentos, informe o ID do parcelamento para o campo AnticipationRequest.Installment.
	//
	// Para determinar se o envio de notas fiscais eletrônicas ou contratos de prestação de serviços é obrigatório,
	// verifique a propriedade AnticipationSimulateResponse.IsDocumentationRequired retornada na func Simulate
	//
	// # Resposta: 200
	//
	// AnticipationResponse = not nil
	//
	// Error = nil
	//
	// AnticipationResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// AnticipationResponse = not nil
	//
	// Error = nil
	//
	// AnticipationResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AnticipationResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AnticipationResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Solicitar antecipação: https://docs.asaas.com/reference/solicitar-antecipacao
	Request(ctx context.Context, body AnticipationRequest) (*AnticipationResponse, error)
	// Simulate (Simular antecipação)
	//
	// # Resposta: 200
	//
	// AnticipationSimulateResponse = not nil
	//
	// Error = nil
	//
	// AnticipationSimulateResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// AnticipationSimulateResponse = not nil
	//
	// Error = nil
	//
	// AnticipationSimulateResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AnticipationSimulateResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AnticipationSimulateResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Simular antecipação: https://docs.asaas.com/reference/simular-antecipacao
	Simulate(ctx context.Context, body AnticipationSimulateRequest) (*AnticipationSimulateResponse, error)
	// AgreementSign (Concordar ou discordar do Aditivo aos Termos de Uso do ASAAS para contratação do Serviço de Antecipação)
	//
	// Possibilita concordar ou discordar do Aditivo aos Termos de Uso do ASAAS para contratação do Serviço de Antecipação.
	// Para prosseguir com uma antecipação primeiramente solicitamos que concorde com nosso termo de antecipação que
	// pode ser acessado nesse link https://ajuda.asaas.com/pt-BR/articles/1369992-termo-aditivo-antecipacao-de-recebiveis.
	//
	// Para concordar com o termo, informe o campo agreed como true e todas as antecipações aguardando assinatura
	// serão processadas. Para discordar do termo, informe o campo agreed como false e todas as antecipações aguardando
	// assinatura serão canceladas.
	//
	// # Resposta: 200
	//
	// AgreementSignResponse = not nil
	//
	// Error = nil
	//
	// AgreementSignResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AgreementSignResponse = not nil
	//
	// Error = nil
	//
	// AgreementSignResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AgreementSignResponse.Errors
	// preenchido com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AgreementSignResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// https://docs.asaas.com/reference/concordar-ou-discordar-do-aditivo-aos-termos-de-uso-do-asaas-para-contratacao-do-servico-de-antecipacao
	AgreementSign(ctx context.Context, body AgreementSignRequest) (*AgreementSignResponse, error)
	// GetById (Recuperar uma única antecipação)
	//
	// Para recuperar uma antecipação é necessário que você tenha o ID que o Asaas retornou no momento da solicitação.
	//
	// # Resposta: 200
	//
	// AnticipationResponse = not nil
	//
	// Error = nil
	//
	// AnticipationResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// AnticipationResponse = not nil
	//
	// Error = nil
	//
	// AnticipationResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// AnticipationResponse = not nil
	//
	// Error = nil
	//
	// AnticipationResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AnticipationResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AnticipationResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única antecipação: https://docs.asaas.com/reference/recuperar-uma-unica-antecipacao
	GetById(ctx context.Context, anticipationId string) (*AnticipationResponse, error)
	// GetLimits (Recuperar limites de antecipações)
	//
	// Permite você recuperar os limites de antecipações liberados na conta e também o limite disponível para antecipar.
	//
	// # Resposta: 200
	//
	// AnticipationLimitsResponse = not nil
	//
	// Error = nil
	//
	// AnticipationLimitsResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// AnticipationLimitsResponse = not nil
	//
	// Error = nil
	//
	// AnticipationLimitsResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo AnticipationLimitsResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// AnticipationLimitsResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar limites de antecipações: https://docs.asaas.com/reference/recuperar-limites-de-antecipacoes
	GetLimits(ctx context.Context) (*AnticipationLimitsResponse, error)
	// GetAll (Listar antecipações)
	//
	// Diferente da recuperação de uma antecipação específica, este método retorna uma lista paginada com todas as
	// antecipações para o filtro informado.
	//
	// # Resposta: 200
	//
	// Pageable(AnticipationResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(AnticipationResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(AnticipationResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar antecipações: https://docs.asaas.com/reference/listar-antecipacoes
	GetAll(ctx context.Context, filter GetAllAnticipationsRequest) (*Pageable[AnticipationResponse], error)
}

func NewAnticipation

func NewAnticipation(env Env, accessToken string) Anticipation

type AnticipationLimitResponse

type AnticipationLimitResponse struct {
	Total     float64 `json:"total,omitempty"`
	Available float64 `json:"available,omitempty"`
}

type AnticipationLimitsResponse

type AnticipationLimitsResponse struct {
	CreditCard AnticipationLimitResponse `json:"creditCard,omitempty"`
	BankSlip   AnticipationLimitResponse `json:"bankSlip,omitempty"`
	Errors     []ErrorResponse           `json:"errors,omitempty"`
}

func (AnticipationLimitsResponse) IsFailure

func (a AnticipationLimitsResponse) IsFailure() bool

func (AnticipationLimitsResponse) IsNoContent

func (a AnticipationLimitsResponse) IsNoContent() bool

func (AnticipationLimitsResponse) IsSuccess

func (a AnticipationLimitsResponse) IsSuccess() bool

type AnticipationRequest

type AnticipationRequest struct {
	// ID da cobrança a ser antecipada (REQUIRED se Installment não for informado)
	Payment string `json:"payment,omitempty"`
	// ID do parcelamento a ser antecipado (REQUIRED se Payment não for informado)
	Installment string `json:"installment,omitempty"`
	// Lista com uma ou mais notas fiscais eletrônicas, ou Contratos de Prestação de Serviços, com firma reconhecida em cartório
	Documents []*os.File `json:"documents,omitempty"`
}

type AnticipationResponse

type AnticipationResponse struct {
	Id                string             `json:"id,omitempty"`
	Installment       string             `json:"installment,omitempty"`
	Payment           string             `json:"payment,omitempty"`
	Status            AnticipationStatus `json:"status,omitempty"`
	AnticipationDate  Date               `json:"anticipationDate,omitempty"`
	DueDate           Date               `json:"dueDate,omitempty"`
	RequestDate       Date               `json:"requestDate,omitempty"`
	Fee               float64            `json:"fee,omitempty"`
	AnticipationDays  int                `json:"anticipationDays,omitempty"`
	NetValue          float64            `json:"netValue,omitempty"`
	Value             float64            `json:"value,omitempty"`
	TotalValue        float64            `json:"totalValue,omitempty"`
	DenialObservation string             `json:"denialObservation,omitempty"`
	Errors            []ErrorResponse    `json:"errors,omitempty"`
}

func (AnticipationResponse) IsFailure

func (a AnticipationResponse) IsFailure() bool

func (AnticipationResponse) IsNoContent

func (a AnticipationResponse) IsNoContent() bool

func (AnticipationResponse) IsSuccess

func (a AnticipationResponse) IsSuccess() bool

type AnticipationSimulateRequest

type AnticipationSimulateRequest struct {
	// ID da cobrança a ser antecipada (REQUIRED se Installment não for informado)
	Payment string `json:"payment,omitempty"`
	// ID do parcelamento a ser antecipado (REQUIRED se Payment não for informado)
	Installment string `json:"installment,omitempty"`
}

type AnticipationSimulateResponse

type AnticipationSimulateResponse struct {
	Payment                 string          `json:"payment,omitempty"`
	Installment             string          `json:"installment,omitempty"`
	AnticipationDate        Date            `json:"anticipationDate,omitempty"`
	DueDate                 Date            `json:"dueDate,omitempty"`
	Fee                     float64         `json:"fee,omitempty"`
	AnticipationDays        int             `json:"anticipationDays,omitempty"`
	NetValue                float64         `json:"netValue,omitempty"`
	Value                   float64         `json:"value,omitempty"`
	TotalValue              float64         `json:"totalValue,omitempty"`
	IsDocumentationRequired bool            `json:"isDocumentationRequired,omitempty"`
	Errors                  []ErrorResponse `json:"errors,omitempty"`
}

func (AnticipationSimulateResponse) IsFailure

func (a AnticipationSimulateResponse) IsFailure() bool

func (AnticipationSimulateResponse) IsNoContent

func (a AnticipationSimulateResponse) IsNoContent() bool

func (AnticipationSimulateResponse) IsSuccess

func (a AnticipationSimulateResponse) IsSuccess() bool

type AnticipationStatus

type AnticipationStatus string
const (
	AnticipationStatusPending   AnticipationStatus = "PENDING"
	AnticipationStatusDenied    AnticipationStatus = "DENIED"
	AnticipationStatusCredited  AnticipationStatus = "CREDITED"
	AnticipationStatusDebited   AnticipationStatus = "DEBITED"
	AnticipationStatusCancelled AnticipationStatus = "CANCELLED"
	AnticipationStatusOverdue   AnticipationStatus = "OVERDUE"
	AnticipationStatusScheduled AnticipationStatus = "SCHEDULED"
)

type BackAccountRequest

type BackAccountRequest struct {
	// Informações da instituição bancária
	Bank BankRequest `json:"bank,omitempty"`
	// Nome da conta bancária
	AccountName string `json:"accountName,omitempty"`
	// Nome do proprietário da conta bancária (REQUIRED)
	OwnerName string `json:"ownerName,omitempty"`
	// Data de nascimento do proprietário da conta. Somente quando a conta bancária não pertencer ao mesmo CPF ou CNPJ da conta Asaas.
	OwnerBirthDate Date `json:"ownerBirthDate,omitempty"`
	// CPF ou CNPJ do proprietário da conta bancária (REQUIRED)
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Número da agência sem dígito (REQUIRED)
	Agency string `json:"agency,omitempty"`
	// Número da conta bancária sem dígito (REQUIRED
	Account string `json:"account,omitempty"`
	// Dígito da conta bancária (REQUIRED
	AccountDigit string `json:"accountDigit,omitempty"`
	// Tipo da conta (REQUIRED)
	BankAccountType BankAccountType `json:"bankAccountType,omitempty"`
	// Identificador no Sistema de Pagamentos Brasileiro
	Ispb string `json:"ispb,omitempty"`
}

type BackAccountResponse

type BackAccountResponse struct {
	Bank           BankResponse `json:"bank,omitempty"`
	AccountName    string       `json:"accountName,omitempty"`
	OwnerName      string       `json:"ownerName,omitempty"`
	OwnerBirthDate Date         `json:"ownerBirthDate,omitempty"`
	CpfCnpj        string       `json:"cpfCnpj,omitempty"`
	Agency         string       `json:"agency,omitempty"`
	Account        string       `json:"account,omitempty"`
	AccountDigit   string       `json:"accountDigit,omitempty"`
	PixAddressKey  string       `json:"pixAddressKey,omitempty"`
}

type BankAccountType

type BankAccountType string
const (
	BankAccountTypeChecking BankAccountType = "CONTA_CORRENTE"
	BankAccountTypeSavings  BankAccountType = "CONTA_POUPANCA"
)

type BankRequest

type BankRequest struct {
	// Código de compensação do banco no sistema bancário (REQUIRED)
	Code string `json:"code,omitempty"`
}

type BankResponse

type BankResponse struct {
	Ispb string `json:"ispb,omitempty"`
	Code string `json:"code,omitempty"`
	Name string `json:"name,omitempty"`
}

type BillPayment

type BillPayment interface {
	// Create (Criar um pagamento de conta)
	//
	// Permite criar um pagamento de conta por meio da linha digitável do boleto.
	//
	// Para agendar seu pagamento de conta, informe o campo CreateBillPaymentRequest.ScheduleDate com a data desejada para pagamento.
	// Ao escolher um dia não útil, o pagamento será realizado no próximo dia útil. Caso não informado, o pagamento
	// irá ocorrer no dia de vencimento do boleto.
	//
	// Caso solicite o dia atual, é necessário se atentar ao horário limite para pagamentos, que é de até 14h00.
	// Se o pedido for feito depois disso será pago apenas no dia útil seguinte.
	//
	// # Resposta: 200
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo BillPaymentResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// BillPaymentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar um pagamento de conta: https://docs.asaas.com/reference/criar-um-pagamento-de-conta
	Create(ctx context.Context, body CreateBillPaymentRequest) (*BillPaymentResponse, error)
	// Simulate (Simular um pagamento de conta)
	//
	// Permite a simulação de um pagamento de conta por meio da linha digitável ou código de barras do boleto.
	//
	// # Resposta: 200
	//
	// BillPaymentSimulateResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentSimulateResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// BillPaymentSimulateResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentSimulateResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo BillPaymentSimulateResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// BillPaymentSimulateResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Simular um pagamento de conta: https://docs.asaas.com/reference/simular-um-pagamento-de-conta
	Simulate(ctx context.Context, body BillPaymentSimulateRequest) (*BillPaymentSimulateResponse, error)
	// CancelById (Cancelar pagamento de contas)
	//
	// Permite o cancelamento do pagamento de conta. Utilize a propriedade BillPaymentResponse.CanBeCancelled do objeto
	// BillPaymentResponse para verificar se o pagamento de conta pode ser cancelado.
	//
	// Ao ser cancelado o pagamento da conta não será realizado.
	//
	// # Resposta: 200
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo BillPaymentResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// BillPaymentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Cancelar pagamento de contas: https://docs.asaas.com/reference/cancelar-pagamento-de-contas
	CancelById(ctx context.Context, billPaymentId string) (*BillPaymentResponse, error)
	// GetById (Recuperar um único pagamento de conta)
	//
	// Para recuperar um pagamento de conta específico é necessário que você tenha o ID que o Asaas retornou no
	// momento da sua criação.
	//
	// # Resposta: 200
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// BillPaymentResponse = not nil
	//
	// Error = nil
	//
	// BillPaymentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo BillPaymentResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// BillPaymentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar um único pagamento de conta: https://docs.asaas.com/reference/recuperar-um-unico-pagamento-de-conta
	GetById(ctx context.Context, billPaymentId string) (*BillPaymentResponse, error)
	// GetAll (Listar pagamento de contas)
	//
	// Diferente da recuperação de um pagamento de conta específico, este método retorna uma lista paginada
	// com todos os pagamentos de conta.
	//
	// # Resposta: 200
	//
	// Pageable(BillPaymentResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(BillPaymentResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(BillPaymentResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar pagamento de contas: https://docs.asaas.com/reference/listar-pagamento-de-contas
	GetAll(ctx context.Context, filter PageableDefaultRequest) (*Pageable[BillPaymentResponse], error)
}

func NewBillPayment

func NewBillPayment(env Env, accessToken string) BillPayment

type BillPaymentBankSlipInfoResponse

type BillPaymentBankSlipInfoResponse struct {
	IdentificationField  string  `json:"identificationField,omitempty"`
	Value                float64 `json:"value,omitempty"`
	DueDate              Date    `json:"dueDate,omitempty"`
	CompanyName          string  `json:"companyName,omitempty"`
	Bank                 string  `json:"bank,omitempty"`
	BeneficiaryName      string  `json:"beneficiaryName,omitempty"`
	BeneficiaryCpfCnpj   string  `json:"beneficiaryCpfCnpj,omitempty"`
	AllowChangeValue     bool    `json:"allowChangeValue,omitempty"`
	MinValue             float64 `json:"minValue,omitempty"`
	MaxValue             float64 `json:"maxValue,omitempty"`
	DiscountValue        float64 `json:"discountValue,omitempty"`
	InterestValue        float64 `json:"interestValue,omitempty"`
	FineValue            float64 `json:"fineValue,omitempty"`
	OriginalValue        float64 `json:"originalValue,omitempty"`
	TotalDiscountValue   float64 `json:"totalDiscountValue,omitempty"`
	TotalAdditionalValue float64 `json:"totalAdditionalValue,omitempty"`
	IsOverdue            bool    `json:"isOverdue,omitempty"`
}

type BillPaymentResponse

type BillPaymentResponse struct {
	Id                    string            `json:"id,omitempty"`
	IdentificationField   string            `json:"identificationField,omitempty"`
	Status                BillPaymentStatus `json:"status,omitempty"`
	Discount              float64           `json:"discount,omitempty"`
	Interest              float64           `json:"interest,omitempty"`
	Fine                  float64           `json:"fine,omitempty"`
	Value                 float64           `json:"value,omitempty"`
	Fee                   float64           `json:"fee,omitempty" `
	Description           string            `json:"description,omitempty"`
	CompanyName           string            `json:"companyName,omitempty"`
	TransactionReceiptUrl string            `json:"transactionReceiptUrl,omitempty"`
	CanBeCancelled        bool              `json:"canBeCancelled,omitempty"`
	FailReasons           string            `json:"failReasons,omitempty"`
	DueDate               Date              `json:"dueDate,omitempty"`
	ScheduleDate          Date              `json:"scheduleDate,omitempty"`
	PaymentDate           Date              `json:"paymentDate,omitempty"`
	Errors                []ErrorResponse   `json:"errors,omitempty"`
}

func (BillPaymentResponse) IsFailure

func (b BillPaymentResponse) IsFailure() bool

func (BillPaymentResponse) IsNoContent

func (b BillPaymentResponse) IsNoContent() bool

func (BillPaymentResponse) IsSuccess

func (b BillPaymentResponse) IsSuccess() bool

type BillPaymentSimulateRequest

type BillPaymentSimulateRequest struct {
	// Linha digitável do boleto (REQUIRED se BarCode não for informado)
	IdentificationField string `json:"identificationField,omitempty"`
	// Código de barras do boleto (REQUIRED se IdentificationField não for informado)
	BarCode string `json:"barCode,omitempty"`
}

type BillPaymentSimulateResponse

type BillPaymentSimulateResponse struct {
	MinimumScheduleDate Date                            `json:"minimumScheduleDate,omitempty"`
	Fee                 float64                         `json:"fee,omitempty" `
	BankSlipInfo        BillPaymentBankSlipInfoResponse `json:"bankSlipInfo,omitempty" `
	Errors              []ErrorResponse                 `json:"errors,omitempty"`
}

func (BillPaymentSimulateResponse) IsFailure

func (b BillPaymentSimulateResponse) IsFailure() bool

func (BillPaymentSimulateResponse) IsNoContent

func (b BillPaymentSimulateResponse) IsNoContent() bool

func (BillPaymentSimulateResponse) IsSuccess

func (b BillPaymentSimulateResponse) IsSuccess() bool

type BillPaymentStatus

type BillPaymentStatus string
const (
	BillPaymentStatusPending        BillPaymentStatus = "PENDING"
	BillPaymentStatusBankProcessing BillPaymentStatus = "BANK_PROCESSING"
	BillPaymentStatusBankPaid       BillPaymentStatus = "PAID"
	BillPaymentStatusFailed         BillPaymentStatus = "FAILED"
	BillPaymentStatusCancelled      BillPaymentStatus = "CANCELLED"
)

type BillingType

type BillingType string
const (
	BillingTypeBankSlip   BillingType = "BOLETO"
	BillingTypeCreditCard BillingType = "CREDIT_CARD"
	BillingTypeUndefined  BillingType = "UNDEFINED"
	BillingTypeDebitCard  BillingType = "DEBIT_CARD"
	BillingTypeTransfer   BillingType = "TRANSFER"
	BillingTypeDeposit    BillingType = "DEPOSIT"
	BillingTypePix        BillingType = "PIX"
)

type CallbackRequest

type CallbackRequest struct {
	// URL que o cliente será redirecionado após o pagamento com sucesso da fatura ou link de pagamento (REQUIRED)
	SuccessUrl string `json:"successUrl,omitempty"`
	// Definir se o cliente será redirecionado automaticamente ou será apenas informado com um botão para retornar ao site. O padrão é true, caso queira desativar informar false
	AutoRedirect *bool `json:"autoRedirect,omitempty"`
}

type Charge

type Charge interface {
	// Create (Cria uma nova cobrança)
	//
	// É possível escolher entre as formas de pagamento com boleto, cartão de crédito,
	// pix ou permitir que o cliente escolha a forma que desejar.
	//
	// O CreateChargeRequest.BillingType BillingTypeBankSlip habilita o pagamento em PIX e Boleto. Em BillingTypePix,
	// apenas o pagamento em PIX, e em BillingTypeCreditCard, em cartão de crédito e débito (na fatura).
	//
	// Não é possível gerar uma cobrança com dois BillingType diferentes (BillingTypePix e BillingTypeCreditCard,
	// por exemplo, para não gerar o boleto, apenas esses dois tipos de cobrança).
	//
	// Caso não queira receber pagamento em PIX ou em Cartão de débito, é possível desabilitar dentro de sua interface
	// em Minha Conta > Configuração > Configurações do Sistema.
	//
	// Caso queira desabilitar em subcontas white label, entre em contato com o nosso time de
	// integração em suporte-tecnico@asaas.com.br
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar uma cobrança: https://docs.asaas.com/reference/criar-nova-cobranca
	//
	// Criar uma cobrança parcelada: https://docs.asaas.com/reference/criar-uma-cobranca-parcelada
	//
	// Criar cobrança com cartão de crédito: https://docs.asaas.com/reference/criar-nova-cobranca-com-cartao-de-credito
	Create(ctx context.Context, body CreateChargeRequest) (*ChargeResponse, error)
	// PayWithCreditCard (Pagar uma cobrança com cartão de crédito)
	//
	// Este endpoint paga uma cobrança com o cartão de crédito informado na hora que você chamá-lo.
	// Não é possível agendar um pagamento
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Pagar uma cobrança com cartão de crédito: https://docs.asaas.com/reference/pagar-uma-cobranca-com-cartao-de-credito
	PayWithCreditCard(ctx context.Context, chargeId string, body PayWithCreditCardRequest) (*ChargeResponse, error)
	// UpdateById (Atualizar cobrança existente)
	//
	// Somente é possível atualizar cobranças aguardando pagamento ou vencidas. Uma vez criada, não é possível alterar
	// o cliente ao qual a cobrança pertence.
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar cobrança existente: https://docs.asaas.com/reference/atualizar-cobranca-existente
	UpdateById(ctx context.Context, chargeId string, body UpdateChargeRequest) (*ChargeResponse, error)
	// DeleteById (Excluir cobrança)
	//
	// Somente cobranças aguardando pagamento ou vencidas podem ser removidas. Ao excluir uma cobrança,
	// nenhuma nova notificação será enviada e seu cliente não poderá mais pagá-la.
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Excluir cobrança: https://docs.asaas.com/reference/remover-cobranca
	DeleteById(ctx context.Context, chargeId string) (*DeleteResponse, error)
	// RestoreById (Restaurar cobrança removida)
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Restaurar cobrança removida: https://docs.asaas.com/reference/restaurar-cobranca-removida
	RestoreById(ctx context.Context, chargeId string) (*ChargeResponse, error)
	// RefundById (Estornar cobrança)
	//
	// É possível estornar cobranças via cartão de crédito recebidas ou confirmadas. Ao fazer isto o saldo correspondente
	// é debitado de sua conta no Asaas e a cobrança cancelada no cartão do seu cliente. O cancelamento pode levar até 10
	// dias úteis para aparecer na fatura de seu cliente. Cobranças recebidas via Pix, permitem o estorno integral ou
	// vários estornos parciais. A soma desses estornos não poderão ultrapassar o valor total da cobrança recebida.
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Estornar cobrança: https://docs.asaas.com/reference/estornar-cobranca
	RefundById(ctx context.Context, chargeId string, body RefundRequest) (*ChargeResponse, error)
	// ReceiveInCashById (Confirmar recebimento em dinheiro)
	//
	// Quando um cliente fizer o pagamento de uma cobrança diretamente para você, sem que esse pagamento seja processado
	// pelo Asaas, utilize este método para definir a cobrança como recebida em dinheiro. Esta opção permite manter
	// seu histórico consistente no sistema, mas não gera saldo ou faz qualquer alteração financeira em sua conta.
	// Ao confirmar um recebimento em dinheiro de uma cobrança que possua uma negativação em andamento uma taxa de
	// ativação de serviço de negativação poderá ser cobrada. Verifique essa taxa no campo receivedInCashFeeValue
	// localizada no retorno do objeto NegativityResponse.
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Confirmar recebimento em dinheiro: https://docs.asaas.com/reference/confirmar-recebimento-em-dinheiro
	ReceiveInCashById(ctx context.Context, chargeId string, body ChargeReceiveInCashRequest) (*ChargeResponse, error)
	// UndoReceivedInCashById (Desfazer confirmação de recebimento em dinheiro)
	//
	// Permite desfazer uma cobrança marcada como recebida em dinheiro.
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Desfazer confirmação de recebimento em dinheiro: https://docs.asaas.com/reference/desfazer-confirmacao-de-recebimento-em-dinheiro
	UndoReceivedInCashById(ctx context.Context, chargeId string) (*ChargeResponse, error)
	// UploadDocumentById (Fazer upload de documentos da cobrança)
	//
	// Permite anexar um documento dentro da cobrança, que será disponibilizado ao pagador diretamente na fatura Asaas
	// para download.
	//
	// # Resposta: 200
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeDocumentResponse.Errors preenchido
	// com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeDocumentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Fazer upload de documentos da cobrança: https://docs.asaas.com/reference/fazer-upload-de-documentos-da-cobranca
	UploadDocumentById(ctx context.Context, chargeId string, body UploadChargeDocumentRequest) (*ChargeDocumentResponse,
		error)
	// UpdateDocumentDefinitionsById (Atualizar definições de um documento da cobrança)
	//
	// Permite atualizar tipo de arquivo e definição de disponibilização do arquivo após o pagamento de um documento
	// anexado em uma cobrança.
	//
	// # Resposta: 200
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeDocumentResponse.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeDocumentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar definições de um documento da cobrança: https://docs.asaas.com/reference/atualizar-definicoes-de-um-documento-da-cobranca
	UpdateDocumentDefinitionsById(ctx context.Context, chargeId, docId string, body UpdateChargeDocumentDefinitionsRequest) (
		*ChargeDocumentResponse, error)
	// DeleteDocumentById (Excluir documento de uma cobrança)
	//
	// Para excluir o documento de uma cobrança, é necessário que você tenha o ID que o Asaas retornou no momento do
	// upload do documento.
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Excluir documento de uma cobrança: https://docs.asaas.com/reference/excluir-documento-de-uma-cobranca
	DeleteDocumentById(ctx context.Context, chargeId, docId string) (*DeleteResponse, error)
	// GetById (Recuperar uma única cobrança)
	//
	// Para recuperar uma cobrança específica é necessário que você tenha o ID que o Asaas retornou no momento da
	// criação dela.
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única cobrança: https://docs.asaas.com/reference/recuperar-uma-unica-cobranca
	GetById(ctx context.Context, chargeId string) (*ChargeResponse, error)
	// GetCreationLimit (Recuperando limites de cobranças)
	//
	// Permite você recuperar o limite de criação de cobranças configurado na conta, quantidade de cobranças criadas no
	// dia e se é possível criar mais cobranças.
	//
	// # Resposta: 200
	//
	// ChargeCreationLimitResponse = not nil
	//
	// Error = nil
	//
	// ChargeCreationLimitResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 401/500
	//
	// ChargeCreationLimitResponse = not nil
	//
	// Error = nil
	//
	// ChargeCreationLimitResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeCreationLimitResponse.Errors preenchido
	// com as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeCreationLimitResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperando limites de cobranças: https://docs.asaas.com/reference/recuperando-limites-de-cobrancças
	GetCreationLimit(ctx context.Context) (*ChargeCreationLimitResponse, error)
	// GetStatusById (Recuperar status de uma cobrança)
	//
	// # Resposta: 200
	//
	// ChargeStatusResponse = not nil
	//
	// Error = nil
	//
	// ChargeStatusResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeStatusResponse = not nil
	//
	// Error = nil
	//
	// ChargeStatusResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// ChargeStatusResponse = not nil
	//
	// Error = nil
	//
	// ChargeStatusResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeStatusResponse.Errors preenchido com as
	// informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeStatusResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única cobrança: https://docs.asaas.com/reference/recuperar-uma-unica-cobranca
	GetStatusById(ctx context.Context, chargeId string) (*ChargeStatusResponse, error)
	// GetIdentificationFieldById (Obter linha digitável do boleto)
	//
	// A linha digitável do boleto é a representação numérica do código de barras.
	// Essa informação pode ser disponibilizada ao seu cliente para pagamento do boleto diretamente no Internet Banking.
	// Ao gerar uma cobrança com as formas de pagamento BOLETO ou UNDEFINED, a linha digitável pode ser recuperada.
	// Para recuperar a linha digitável do boleto, é necessário informar o ID da cobrança que o Asaas retornou no momento
	// da criação. Como retorno, você receberá a linha digitável.
	//
	// # Resposta: 200
	//
	// IdentificationFieldResponse = not nil
	//
	// Error = nil
	//
	// IdentificationFieldResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// IdentificationFieldResponse = not nil
	//
	// Error = nil
	//
	// IdentificationFieldResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// IdentificationFieldResponse = not nil
	//
	// Error = nil
	//
	// IdentificationFieldResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo IdentificationFieldResponse.Errors preenchido
	// com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// IdentificationFieldResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Obter linha digitável do boleto: https://docs.asaas.com/reference/obter-linha-digitavel-do-boleto
	GetIdentificationFieldById(ctx context.Context, chargeId string) (*IdentificationFieldResponse, error)
	// GetPixQrCodeById (Obter QR Code para pagamentos via pix)
	//
	// O recebimento via pix é um meio rápido, eficaz e seguro para que sua empresa receba as cobranças de seus clientes.
	// Ao gerar uma cobrança com as formas de pagamento PIX, BOLETO ou UNDEFINED o pagamento via Pix é habilitado.
	// Uma das maiores vantagens dessa forma de pagamento é que ocorre de forma instantânea, ou seja, assim que o
	// pagamento for realizado o saldo é disponibilizado em sua conta Asaas. Você pode ler mais sobre o Pix aqui.
	//
	// # Resposta: 200
	//
	// ChargePixQrCodeResponse = not nil
	//
	// Error = nil
	//
	// ChargePixQrCodeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargePixQrCodeResponse = not nil
	//
	// Error = nil
	//
	// ChargePixQrCodeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// ChargePixQrCodeResponse = not nil
	//
	// Error = nil
	//
	// ChargePixQrCodeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargePixQrCodeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargePixQrCodeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Obter QR Code para pagamentos via pix: https://docs.asaas.com/reference/obter-qr-code-para-pagamentos-via-pix
	GetPixQrCodeById(ctx context.Context, chargeId string) (*ChargePixQrCodeResponse, error)
	// GetDocumentById (Recuperar um único documento da cobrança)
	//
	// Para recuperar um único documento e suas informações, é necessário que você tenha o ID que o Asaas retornou no
	// momento do upload do documento.
	//
	// # Resposta: 200
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// ChargeDocumentResponse = not nil
	//
	// Error = nil
	//
	// ChargeDocumentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeDocumentResponse.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeDocumentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar um único documento da cobrança: https://docs.asaas.com/reference/recuperar-um-unico-documento-da-cobranca
	GetDocumentById(ctx context.Context, chargeId, docId string) (*ChargeDocumentResponse, error)
	// GetAll (Listar cobranças)
	//
	// Diferente da recuperação de uma cobrança específica, este método retorna uma lista paginada com todas as
	// cobranças para os filtros informados.
	//
	// # Resposta: 200
	//
	// Pageable(ChargeResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(ChargeResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(ChargeResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar cobranças: https://docs.asaas.com/reference/listar-cobrancas
	GetAll(ctx context.Context, filter GetAllChargesRequest) (*Pageable[ChargeResponse], error)
	// GetAllDocumentsById (Listar documentos de uma cobrança)
	//
	// Para listar os documentos de uma cobrança, é necessário que você tenha o ID da cobrança retornado pelo Asaas.
	//
	// # Resposta: 200
	//
	// Pageable(ChargeDocumentResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(ChargeDocumentResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(ChargeDocumentResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar documentos de uma cobrança: https://docs.asaas.com/reference/listar-documentos-de-uma-cobranca
	GetAllDocumentsById(ctx context.Context, chargeId string, filter PageableDefaultRequest) (
		*Pageable[ChargeDocumentResponse], error)
}

func NewCharge

func NewCharge(env Env, accessCode string) Charge

type ChargeCreationLimitResponse

type ChargeCreationLimitResponse struct {
	Creation ChargeCreationResponse `json:"creation,omitempty"`
	Errors   []ErrorResponse        `json:"errors,omitempty"`
}

func (ChargeCreationLimitResponse) IsFailure

func (c ChargeCreationLimitResponse) IsFailure() bool

func (ChargeCreationLimitResponse) IsNoContent

func (c ChargeCreationLimitResponse) IsNoContent() bool

func (ChargeCreationLimitResponse) IsSuccess

func (c ChargeCreationLimitResponse) IsSuccess() bool

type ChargeCreationResponse

type ChargeCreationResponse struct {
	Daily DailyCreationLimitResponse `json:"daily,omitempty"`
}

type ChargeDocumentResponse

type ChargeDocumentResponse struct {
	Id                    string              `json:"id,omitempty"`
	Name                  string              `json:"name,omitempty"`
	AvailableAfterPayment bool                `json:"availableAfterPayment,omitempty"`
	Type                  DocumentType        `json:"type,omitempty"`
	File                  *ChargeFileResponse `json:"file,omitempty"`
	Deleted               bool                `json:"deleted,omitempty"`
	Errors                []ErrorResponse     `json:"errors,omitempty"`
}

func (ChargeDocumentResponse) IsFailure

func (c ChargeDocumentResponse) IsFailure() bool

func (ChargeDocumentResponse) IsNoContent

func (c ChargeDocumentResponse) IsNoContent() bool

func (ChargeDocumentResponse) IsSuccess

func (c ChargeDocumentResponse) IsSuccess() bool

type ChargeFileResponse

type ChargeFileResponse struct {
	PublicId     string `json:"publicId,omitempty"`
	OriginalName string `json:"originalName,omitempty"`
	Size         int    `json:"size,omitempty"`
	Extension    string `json:"extension,omitempty"`
	PreviewUrl   string `json:"previewUrl,omitempty"`
	DownloadUrl  string `json:"downloadUrl,omitempty"`
}

type ChargePixQrCodeResponse

type ChargePixQrCodeResponse struct {
	EncodedImage   string          `json:"encodedImage,omitempty"`
	Payload        string          `json:"payload,omitempty"`
	ExpirationDate Date            `json:"expirationDate,omitempty"`
	Errors         []ErrorResponse `json:"errors,omitempty"`
}

func (ChargePixQrCodeResponse) IsFailure

func (c ChargePixQrCodeResponse) IsFailure() bool

func (ChargePixQrCodeResponse) IsNoContent

func (c ChargePixQrCodeResponse) IsNoContent() bool

func (ChargePixQrCodeResponse) IsSuccess

func (c ChargePixQrCodeResponse) IsSuccess() bool

type ChargeReceiveInCashRequest

type ChargeReceiveInCashRequest struct {
	// Data em que o cliente efetuou o pagamento (REQUIRED)
	PaymentDate Date `json:"paymentDate,omitempty"`
	// Valor pago pelo cliente (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// Enviar ou não notificação de pagamento confirmado para o cliente
	NotifyCustomer bool `json:"notifyCustomer,omitempty"`
}

type ChargeResponse

type ChargeResponse struct {
	Id                    string              `json:"id,omitempty"`
	Customer              string              `json:"customer,omitempty"`
	Installment           string              `json:"installment,omitempty"`
	Status                ChargeStatus        `json:"status,omitempty"`
	PaymentLink           string              `json:"paymentLink,omitempty"`
	DueDate               Date                `json:"dueDate,omitempty"`
	Value                 float64             `json:"value,omitempty"`
	NetValue              float64             `json:"netValue,omitempty"`
	BillingType           BillingType         `json:"billingType,omitempty"`
	CanBePaidAfterDueDate bool                `json:"canBePaidAfterDueDate,omitempty"`
	PixTransaction        string              `json:"pixTransaction,omitempty"`
	Description           string              `json:"description,omitempty"`
	ExternalReference     string              `json:"externalReference,omitempty"`
	OriginalValue         string              `json:"originalValue,omitempty"`
	InterestValue         string              `json:"interestValue,omitempty"`
	OriginalDueDate       Date                `json:"originalDueDate,omitempty"`
	PaymentDate           Date                `json:"paymentDate,omitempty"`
	ClientPaymentDate     Date                `json:"clientPaymentDate,omitempty"`
	InstallmentNumber     int                 `json:"installmentCount,omitempty"`
	TransactionReceiptUrl string              `json:"transactionReceiptUrl,omitempty"`
	NossoNumero           string              `json:"nossoNumero,omitempty"`
	InvoiceUrl            string              `json:"invoiceUrl,omitempty"`
	BankSlipUrl           string              `json:"bankSlipUrl,omitempty"`
	InvoiceNumber         string              `json:"invoiceNumber,omitempty"`
	CreditCard            *CreditCardResponse `json:"creditCard,omitempty"`
	Discount              *DiscountResponse   `json:"discount,omitempty"`
	Fine                  *FineResponse       `json:"fine,omitempty"`
	Interest              *InterestResponse   `json:"interest,omitempty"`
	Deleted               bool                `json:"deleted,omitempty"`
	PostalService         bool                `json:"postalService,omitempty"`
	Anticipated           bool                `json:"anticipated,omitempty"`
	Anticipable           bool                `json:"anticipable,omitempty"`
	Refunds               []RefundResponse    `json:"refunds,omitempty"`
	DateCreated           Date                `json:"dateCreated,omitempty"`
	Errors                []ErrorResponse     `json:"errors,omitempty"`
}

func (ChargeResponse) IsFailure

func (c ChargeResponse) IsFailure() bool

func (ChargeResponse) IsNoContent

func (c ChargeResponse) IsNoContent() bool

func (ChargeResponse) IsSuccess

func (c ChargeResponse) IsSuccess() bool

type ChargeStatus

type ChargeStatus string
const (
	ChargeStatusPending                    ChargeStatus = "PENDING"
	ChargeStatusReceived                   ChargeStatus = "RECEIVED"
	ChargeStatusConfirmed                  ChargeStatus = "CONFIRMED"
	ChargeStatusOverdue                    ChargeStatus = "OVERDUE"
	ChargeStatusRefunded                   ChargeStatus = "REFUNDED"
	ChargeStatusReceivedInCash             ChargeStatus = "RECEIVED_IN_CASH"
	ChargeStatusRefundRequested            ChargeStatus = "REFUND_REQUESTED"
	ChargeStatusRefundInProgress           ChargeStatus = "REFUND_IN_PROGRESS"
	ChargeStatusChargebackRequested        ChargeStatus = "CHARGEBACK_REQUESTED"
	ChargeStatusChargebackDispute          ChargeStatus = "CHARGEBACK_DISPUTE"
	ChargeStatusAwaitingChargebackReversal ChargeStatus = "AWAITING_CHARGEBACK_REVERSAL"
	ChargeStatusDunningRequested           ChargeStatus = "DUNNING_REQUESTED"
	ChargeStatusDunningReceived            ChargeStatus = "DUNNING_RECEIVED"
	ChargeStatusAwaitingRiskAnalysis       ChargeStatus = "AWAITING_RISK_ANALYSIS"
)

type ChargeStatusResponse

type ChargeStatusResponse struct {
	Status ChargeStatus    `json:"status,omitempty"`
	Errors []ErrorResponse `json:"errors,omitempty"`
}

func (ChargeStatusResponse) IsFailure

func (c ChargeStatusResponse) IsFailure() bool

func (ChargeStatusResponse) IsNoContent

func (c ChargeStatusResponse) IsNoContent() bool

func (ChargeStatusResponse) IsSuccess

func (c ChargeStatusResponse) IsSuccess() bool

type ChargeType

type ChargeType string
const (
	ChargeTypeDetached    ChargeType = "DETACHED"
	ChargeTypeRecurrent   ChargeType = "RECURRENT"
	ChargeTypeInstallment ChargeType = "INSTALLMENT"
)

type ChargebackReason

type ChargebackReason string
const (
	ChargebackReason1  ChargebackReason = "ABSENCE_OF_PRINT"
	ChargebackReason2  ChargebackReason = "ABSENT_CARD_FRAUD"
	ChargebackReason3  ChargebackReason = "CARD_ACTIVATED_PHONE_TRANSACTION"
	ChargebackReason4  ChargebackReason = "CARD_FRAUD"
	ChargebackReason5  ChargebackReason = "CARD_RECOVERY_BULLETIN"
	ChargebackReason6  ChargebackReason = "COMMERCIAL_DISAGREEMENT"
	ChargebackReason7  ChargebackReason = "COPY_NOT_RECEIVED"
	ChargebackReason8  ChargebackReason = "CREDIT_OR_DEBIT_PRESENTATION_ERROR"
	ChargebackReason9  ChargebackReason = "DIFFERENT_PAY_METHOD"
	ChargebackReason10 ChargebackReason = "FRAUD"
	ChargebackReason11 ChargebackReason = "INCORRECT_TRANSACTION_VALUE"
	ChargebackReason12 ChargebackReason = "INVALID_CURRENCY"
	ChargebackReason13 ChargebackReason = "INVALID_DATA"
	ChargebackReason14 ChargebackReason = "LATE_PRESENTATION"
	ChargebackReason15 ChargebackReason = "LOCAL_REGULATORY_OR_LEGAL_DISPUTE"
	ChargebackReason16 ChargebackReason = "MULTIPLE_ROCS"
	ChargebackReason17 ChargebackReason = "ORIGINAL_CREDIT_TRANSACTION_NOT_ACCEPTED"
	ChargebackReason18 ChargebackReason = "OTHER_ABSENT_CARD_FRAUD"
	ChargebackReason19 ChargebackReason = "PROCESS_ERROR"
	ChargebackReason20 ChargebackReason = "RECEIVED_COPY_ILLEGIBLE_OR_INCOMPLETE"
	ChargebackReason21 ChargebackReason = "RECURRENCE_CANCELED"
	ChargebackReason22 ChargebackReason = "REQUIRED_AUTHORIZATION_NOT_GRANTED"
	ChargebackReason23 ChargebackReason = "RIGHT_OF_FULL_RECOURSE_FOR_FRAUD"
	ChargebackReason24 ChargebackReason = "SALE_CANCELED"
	ChargebackReason25 ChargebackReason = "SERVICE_DISAGREEMENT_OR_DEFECTIVE_PRODUCT"
	ChargebackReason26 ChargebackReason = "SERVICE_NOT_RECEIVED"
	ChargebackReason27 ChargebackReason = "SPLIT_SALE"
	ChargebackReason28 ChargebackReason = "TRANSFERS_OF_DIVERSE_RESPONSIBILITIES"
	ChargebackReason29 ChargebackReason = "UNQUALIFIED_CAR_RENTAL_DEBIT"
	ChargebackReason30 ChargebackReason = "USA_CARDHOLDER_DISPUTE"
	ChargebackReason31 ChargebackReason = "VISA_FRAUD_MONITORING_PROGRAM"
	ChargebackReason32 ChargebackReason = "WARNING_BULLETIN_FILE"
)

type ChargebackStatus

type ChargebackStatus string
const (
	ChargebackStatusRequested ChargebackStatus = "REQUESTED"
	ChargebackStatusInDispute ChargebackStatus = "IN_DISPUTE"
	ChargebackStatusLost      ChargebackStatus = "LOST"
	ChargebackStatusReversed  ChargebackStatus = "REVERSED"
	ChargebackStatusDone      ChargebackStatus = "DONE"
)

type ChargesAvailableForDunningResponse

type ChargesAvailableForDunningResponse struct {
	Payment         string                             `json:"payment,omitempty"`
	Customer        string                             `json:"customer,omitempty"`
	BillingType     BillingType                        `json:"billingType,omitempty"`
	Status          ChargeStatus                       `json:"status,omitempty"`
	Value           float64                            `json:"value,omitempty"`
	DueDate         Date                               `json:"dueDate,omitempty"`
	TypeSimulations []NegativityTypeSimulationResponse `json:"typeSimulations,omitempty"`
}

type CityResponse

type CityResponse struct {
	Id           int    `json:"id,omitempty"`
	IbgeCode     string `json:"ibgeCode,omitempty"`
	Name         string `json:"name,omitempty"`
	DistrictCode string `json:"districtCode,omitempty"`
	District     string `json:"district,omitempty"`
	State        string `json:"state,omitempty"`
}

type CompanyType

type CompanyType string
const (
	CompanyTypeMei         CompanyType = "MEI"
	CompanyTypeLimited     CompanyType = "LIMITED"
	CompanyTypeIndividual  CompanyType = "INDIVIDUAL"
	CompanyTypeAssociation CompanyType = "ASSOCIATION"
)

type CreateBillPaymentRequest

type CreateBillPaymentRequest struct {
	// Linha digitável do boleto (REQUIRED)
	IdentificationField string `json:"identificationField,omitempty"`
	// Data de agendamento do pagamento
	ScheduleDate Date `json:"scheduleDate,omitempty"`
	// Descrição do pagamento de conta
	Description string `json:"description,omitempty"`
	// Desconto atribuído ao pagamento
	Discount float64 `json:"discount,omitempty"`
	// Juros atribuído ao pagamento
	Interest float64 `json:"interest,omitempty"`
	// Multa atribuída ao pagamento
	Fine float64 `json:"fine,omitempty"`
	// Valor da conta caso seja do tipo que não possui essa informação (Ex: faturas de cartão de crédito)
	Value float64 `json:"value,omitempty"`
	// Data de vencimento da conta caso seja do tipo que não possui essa informação
	DueDate Date `json:"dueDate,omitempty"`
}

type CreateChargeRequest

type CreateChargeRequest struct {
	// Identificador único do cliente no Asaas (REQUIRED)
	Customer string `json:"customer,omitempty"`
	// Forma de pagamento (Default: BillingTypeUndefined)
	BillingType BillingType `json:"billingType,omitempty"`
	// Valor da cobrança (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// Data de vencimento da cobrança (REQUIRED)
	DueDate Date `json:"dueDate,omitempty"`
	// Descrição da cobrança (máx. 500 caracteres)
	Description string `json:"description,omitempty"`
	// Campo livre para busca
	ExternalReference string `json:"externalReference,omitempty"`
	// Informações de desconto
	Discount *DiscountRequest `json:"discount,omitempty"`
	// Informações de juros para pagamento após o vencimento
	Interest *InterestRequest `json:"interest,omitempty"`
	// Informações de multa para pagamento após o vencimento
	Fine *FineRequest `json:"fine,omitempty"`
	// Define se a cobrança será enviada via Correios
	PostalService bool `json:"postalService,omitempty"`
	// Configurações do split
	Split []SplitRequest `json:"split,omitempty"`
	// Informações de redirecionamento automático após pagamento na tela de fatura
	Callback *CallbackRequest `json:"callback,omitempty"`
	// Informações do cartão de crédito (REQUIRED se BillingType = BillingTypeCreditCard e se CreditCardToken não for informado)
	CreditCard *CreditCardRequest `json:"creditCard,omitempty"`
	// Informações do titular do cartão de crédito (REQUIRED se BillingType = BillingTypeCreditCard e se CreditCardToken não for informado)
	CreditCardHolderInfo *CreditCardHolderInfoRequest `json:"creditCardHolderInfo,omitempty"`
	// Token do cartão de crédito para uso da funcionalidade de tokenização de cartão de crédito
	CreditCardToken string `json:"creditCardToken,omitempty"`
	// Número de parcelas (somente no caso de cobrança parcelada)
	InstallmentCount int `json:"installmentCount,omitempty"`
	// Valor de cada parcela (somente no caso de cobrança parcelada)
	InstallmentValue float64 `json:"installmentValue,omitempty"`
	// Realizar apenas a Pré-Autorização da cobrança
	AuthorizeOnly bool `json:"authorizeOnly,omitempty"`
	// IP de onde o cliente está fazendo a compra. Não deve ser informado o IP do seu servidor (REQUIRED se BillingType = BillingTypeCreditCard)
	RemoteIp string `json:"remoteIp,omitempty"`
}

type CreateCustomerRequest

type CreateCustomerRequest struct {
	// Nome do cliente (REQUIRED)
	Name string `json:"name,omitempty"`
	// CPF ou CNPJ do cliente (REQUIRED)
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Email do cliente
	Email string `json:"email,omitempty"`
	// Fone fixo
	Phone string `json:"phone,omitempty"`
	// Fone celular
	MobilePhone string `json:"mobilePhone,omitempty"`
	// Logradouro
	Address string `json:"address,omitempty"`
	// Número do endereço
	AddressNumber string `json:"addressNumber,omitempty"`
	// Complemento do endereço
	Complement string `json:"complement,omitempty"`
	// Bairro
	Province string `json:"province,omitempty"`
	// CEP do endereço
	PostalCode string `json:"postalCode,omitempty"`
	// Identificador do cliente no seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// True para desabilitar o envio de notificações de cobrança
	NotificationDisabled bool `json:"notificationDisabled,omitempty"`
	// Emails adicionais para envio de notificações de cobrança separados por ","
	AdditionalEmails string `json:"additionalEmails,omitempty"`
	// Inscrição municipal do cliente
	MunicipalInscription string `json:"municipalInscription,omitempty"`
	// Inscrição estadual do cliente
	StateInscription string `json:"stateInscription,omitempty"`
	// Observações adicionais
	Observations string `json:"observations,omitempty"`
	// Nome do grupo ao qual o cliente pertence
	GroupName string `json:"groupName,omitempty"`
	// Empresa
	Company string `json:"company,omitempty"`
}

type CreateInvoiceSettingRequest

type CreateInvoiceSettingRequest struct {
	// Identificador único do serviço municipal.
	MunicipalServiceId string `json:"municipalServiceId,omitempty"`
	// Código de serviço municipal. (REQUIRED)
	MunicipalServiceCode string `json:"municipalServiceCode,omitempty"`
	// Nome do serviço municipal. Se não for informado, será utilizado o MunicipalServiceCode como nome para identificação.
	MunicipalServiceName string `json:"municipalServiceName,omitempty"`
	// Atualizar o valor da cobrança com os impostos da nota já descontados.
	UpdatePayment bool `json:"updatePayment,omitempty"`
	// Deduções. As deduções não alteram o valor total da nota fiscal, mas alteram a base de cálculo do ISS.
	Deductions float64 `json:"deductions,omitempty"`
	// Quando a nota fiscal será emitida. (REQUIRED)
	EffectiveDatePeriod EffectiveDatePeriod `json:"effectiveDatePeriod,omitempty"`
	// Emitir apenas para cobranças pagas.
	ReceivedOnly bool `json:"receivedOnly,omitempty"`
	// Quantidade de dias antes do vencimento da cobrança.
	DaysBeforeDueDate int `json:"daysBeforeDueDate,omitempty"`
	// Observações adicionais da nota fiscal.
	Observations string `json:"observations,omitempty"`
	// Impostos da nota fiscal.
	Taxes InvoiceTaxesRequest `json:"taxes,omitempty"`
}

type CreateNegativityRequest

type CreateNegativityRequest struct {
	// Identificador único da cobrança a ser recuperada no Asaas (REQUIRED)
	Payment string `json:"payment,omitempty"`
	// Tipo de negativação (REQUIRED)
	Type NegativityType `json:"type,omitempty"`
	// Descrição do produto ou serviço prestado
	Description string `json:"description,omitempty"`
	// Nome do cliente (REQUIRED)
	CustomerName string `json:"customerName,omitempty"`
	// CPF ou CNPJ do cliente (REQUIRED)
	CustomerCpfCnpj string `json:"customerCpfCnpj,omitempty"`
	// Telefone principal do cliente (REQUIRED)
	CustomerPrimaryPhone string `json:"customerPrimaryPhone,omitempty"`
	// Telefone secundário do cliente
	CustomerSecondaryPhone string `json:"customerSecondaryPhone,omitempty"`
	// CEP do endereço do cliente (REQUIRED)
	CustomerPostalCode string `json:"customerPostalCode,omitempty"`
	// Logradouro do cliente (REQUIRED)
	CustomerAddress string `json:"customerAddress,omitempty"`
	// Número do endereço do cliente (REQUIRED)
	CustomerAddressNumber string `json:"customerAddressNumber,omitempty"`
	// Complemento do endereço do cliente
	CustomerComplement string `json:"customerComplement,omitempty"`
	// Bairro do cliente (REQUIRED)
	CustomerProvince string `json:"customerProvince,omitempty"`
	// Nota fiscal e/ou contrato com firma reconhecida em cartório
	Documents *FileRequest `json:"documents,omitempty"`
}

type CreatePaymentLinkRequest

type CreatePaymentLinkRequest struct {
	// Nome do link de pagamentos (REQUIRED)
	Name string `json:"name,omitempty"`
	// Descrição do link de pagamentos
	Description string `json:"description,omitempty"`
	// Forma de pagamento (Default: BillingTypeUndefined)
	BillingType BillingType `json:"billingType,omitempty"`
	// Forma de cobrança (Default: ChargeTypeDetached)
	ChargeType ChargeType `json:"chargeType,omitempty"`
	// Data de encerramento, a partir desta data o seu link de pagamentos será desativado automaticamente
	EndDate Date `json:"endDate,omitempty"`
	// Valor do link de pagamentos, caso não informado o pagador poderá informar o quanto deseja pagar
	Value float64 `json:"value,omitempty"`
	// Caso seja possível o pagamento via boleto bancário, define a quantidade de dias úteis que o seu cliente poderá pagar o boleto após gerado
	DueDateLimitDays int `json:"dueDateLimitDays"`
	// Periodicidade da cobrança (REQUIRED se ChargeType = ChargeTypeRecurrent)
	SubscriptionCycle SubscriptionCycle `json:"subscriptionCycle,omitempty"`
	// Quantidade máxima de parcelas que seu cliente poderá parcelar o valor do link de pagamentos (REQUIRED se ChargeType = ChargeTypeInstallment)
	MaxInstallmentCount int `json:"maxInstallmentCount,omitempty"`
	// Define se os clientes cadastrados pelo link de pagamentos terão as notificações habilitadas. Caso não seja informado o valor padrão será true
	NotificationEnabled bool `json:"notificationEnabled,omitempty"`
	// Informações de redirecionamento automático após pagamento do link de pagamento
	Callback *CallbackRequest `json:"callback,omitempty"`
}

type CreatePixKeyStaticRequest

type CreatePixKeyStaticRequest struct {
	// Chave que receberá os pagamentos do QrCode
	AddressKey string `json:"addressKey,omitempty"`
	// Descrição do QrCode
	Description string `json:"description,omitempty"`
	// Valor do QrCode, caso não informado o pagador poderá escolher o valor
	Value float64 `json:"value,omitempty"`
	// Formato do QrCode
	Format QrCodeFormat `json:"format,omitempty"`
	// Data/Hora de expiração do QrCode, após desta data todos os pagamentos serão recusados.
	ExpirationDate Datetime `json:"expirationDate,omitempty"`
	// Determina a data de expiração em segundos.
	ExpirationSeconds int `json:"expirationSeconds,omitempty"`
	// Define se o QrCode pode ser pago múltiplas vezes, caso não informado o valor padrão é true.
	AllowsMultiplePayments *bool `json:"allowsMultiplePayments"`
}

type CreateSubaccountRequest

type CreateSubaccountRequest struct {
	// Nome da subconta (REQUIRED)
	Name string `json:"name,omitempty"`
	// E-mail da subconta (REQUIRED)
	Email string `json:"email,omitempty"`
	// E-mail para login da subconta, caso não informado será utilizado o email da subconta
	LoginEmail string `json:"loginEmail,omitempty"`
	// CPF ou CNPJ do proprietário da subconta
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Data de nascimento (somente quando Pessoa Física)
	BirthDate Date `json:"birthDate,omitempty"`
	// Tipo da empresa (somente quando Pessoa Jurídica)
	CompanyType CompanyType `json:"companyType,omitempty"`
	// Fone fixo
	Phone string `json:"phone,omitempty"`
	// Fone celular (REQUIRED)
	MobilePhone string `json:"mobilePhone,omitempty"`
	// Enviar URL referente ao site da conta filha
	Site string `json:"site,omitempty"`
	// Logradouro (REQUIRED)
	Address string `json:"address,omitempty"`
	// Número do endereço (REQUIRED)
	AddressNumber string `json:"addressNumber,omitempty"`
	// Complemento do endereço
	Complement string `json:"complement,omitempty"`
	// Bairro (REQUIRED)
	Province string `json:"province,omitempty"`
	// CEP do endereço (REQUIRED)
	PostalCode string `json:"postalCode,omitempty"`
	// Array com as configurações de webhooks desejadas
	Webhooks []CreateSubaccountWebhookRequest `json:"webhooks,omitempty"`
}

type CreateSubaccountWebhookRequest

type CreateSubaccountWebhookRequest struct {
	// URL que receberá as informações de sincronização (REQUIRED)
	Url string `json:"url,omitempty"`
	// E-mail para receber as notificações em caso de erros na fila (REQUIRED)
	Email string `json:"email,omitempty"`
	// Versão utilizada da API. Utilize "3" para a versão v3 (REQUIRED)
	ApiVersion string `json:"apiVersion,omitempty"`
	// Habilitar ou não o webhook
	Enabled bool `json:"enabled"`
	// Situação da fila de sincronização
	Interrupted bool `json:"interrupted"`
	// Token de autenticação
	AuthToken string `json:"authToken,omitempty"`
	// Tipo de webhook
	Type WebhookType `json:"type,omitempty"`
}

type CreateSubscriptionRequest

type CreateSubscriptionRequest struct {
	// Identificador único do cliente no Asaas (REQUIRED)
	Customer string `json:"customer,omitempty"`
	// Forma de pagamento (Default: BillingTypeUndefined)
	BillingType BillingType `json:"billingType,omitempty"`
	// Valor da assinatura (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// Vencimento da primeira mensalidade (REQUIRED)
	NextDueDate Date `json:"nextDueDate,omitempty"`
	// Informações de desconto
	Discount *DiscountRequest `json:"discount,omitempty"`
	// Informações de juros para pagamento após o vencimento
	Interest *InterestRequest `json:"interest,omitempty"`
	// Informações de multa para pagamento após o vencimento
	Fine *FineRequest `json:"fine,omitempty"`
	// Periodicidade da cobrança (REQUIRED)
	Cycle SubscriptionCycle `json:"cycle,omitempty"`
	// Descrição da assinatura (máx. 500 caracteres)
	Description string `json:"description,omitempty"`
	// Informações do cartão de crédito (REQUIRED se BillingType = BillingTypeCreditCard e se CreditCardToken não for informado)
	CreditCard *CreditCardRequest `json:"creditCard,omitempty"`
	// Informações do titular do cartão de crédito (REQUIRED se BillingType = BillingTypeCreditCard e se CreditCardToken não for informado)
	CreditCardHolderInfo *CreditCardHolderInfoRequest `json:"creditCardHolderInfo,omitempty"`
	// Token do cartão de crédito para uso da funcionalidade de tokenização de cartão de crédito
	CreditCardToken string `json:"creditCardToken,omitempty"`
	// Data limite para vencimento das mensalidades
	EndDate Date `json:"endDate,omitempty"`
	// Número máximo de mensalidades a serem geradas para esta assinatura
	MaxPayments int `json:"maxPayments,omitempty"`
	// Identificador da assinatura no seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Informações de split
	Split []SplitRequest `json:"split,omitempty"`
	// IP de onde o cliente está fazendo a compra. Não deve ser informado o IP do seu servidor (REQUIRED se BillingType = BillingTypeCreditCard)
	RemoteIp string `json:"remoteIp,omitempty"`
}

type CreditBureau

type CreditBureau interface {
	// GetReport (Realizar consulta)
	//
	// As consultas junto ao Serasa Experian são realizadas no momento da solicitação, para evitar possíveis
	// perdas de conexão, sugerimos um timeout de 30 segundos ou mais.
	//
	// Ao realizar a consulta será retornado o atributo CreditBureauReportResponse.ReportFile contendo o PDF
	// da consulta em Base64, este campo apenas é retornado no momento da criação da consulta, caso precise obter
	// novamente será necessário realizar o download por meio da url presente no campo
	// CreditBureauReportResponse.DownloadUrl.
	//
	// Para realizar a consulta você terá que informar um CPF ou CNPJ e o estado onde deseja realizar a consulta.
	//
	// Caso queira informar um cliente já cadastrado na sua conta Asaas:
	//
	// - Este deverá possuir um CPF ou CNPJ já cadastrado
	//
	// - O envio do estado se torna opcional caso já conste no cadastro do cliente
	//
	// # Resposta: 200
	//
	// CreditBureauReportResponse = not nil
	//
	// Error = nil
	//
	// CreditBureauReportResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// CreditBureauReportResponse = not nil
	//
	// Error = nil
	//
	// CreditBureauReportResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo CreditBureauReportResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// CreditBureauReportResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Realizar consulta: https://docs.asaas.com/reference/realizar-consulta
	GetReport(ctx context.Context, body GetReportRequest) (*CreditBureauReportResponse, error)
	// GetReportById (Recuperar uma consulta)
	//
	// Para recuperar uma consulta específica é necessário que você tenha o ID que o Asaas retornou no momento
	// da criação dela.
	//
	// # Resposta: 200
	//
	// CreditBureauReportResponse = not nil
	//
	// Error = nil
	//
	// CreditBureauReportResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// CreditBureauReportResponse = not nil
	//
	// Error = nil
	//
	// CreditBureauReportResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// CreditBureauReportResponse = not nil
	//
	// Error = nil
	//
	// CreditBureauReportResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo CreditBureauReportResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// CreditBureauReportResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma consulta: https://docs.asaas.com/reference/recuperar-uma-consulta
	GetReportById(ctx context.Context, creditBureauReportId string) (*CreditBureauReportResponse, error)
	// GetAllReports (Listar consultas)
	//
	// Diferente da recuperação de uma consulta específica, este método retorna uma lista paginada com todas as
	// consultas para os filtros informados.
	//
	// # Resposta: 200
	//
	// Pageable(CreditBureauReportResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(CreditBureauReportResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(CreditBureauReportResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar consultas: https://docs.asaas.com/reference/listar-consultas
	GetAllReports(ctx context.Context, filter GetAllReportsRequest) (*Pageable[CreditBureauReportResponse], error)
}

func NewCreditBureau

func NewCreditBureau(env Env, accessToken string) CreditBureau

type CreditBureauReportResponse

type CreditBureauReportResponse struct {
	Id          string          `json:"id,omitempty"`
	Customer    string          `json:"customer,omitempty"`
	CpfCnpj     string          `json:"cpfCnpj,omitempty"`
	State       string          `json:"state,omitempty"`
	DownloadUrl string          `json:"downloadUrl,omitempty"`
	ReportFile  string          `json:"reportFile,omitempty"`
	DateCreated Date            `json:"dateCreated,omitempty"`
	Errors      []ErrorResponse `json:"errors,omitempty"`
}

func (CreditBureauReportResponse) IsFailure

func (c CreditBureauReportResponse) IsFailure() bool

func (CreditBureauReportResponse) IsNoContent

func (c CreditBureauReportResponse) IsNoContent() bool

func (CreditBureauReportResponse) IsSuccess

func (c CreditBureauReportResponse) IsSuccess() bool

type CreditCard

type CreditCard interface {
	Tokenize(ctx context.Context, body CreditCardTokenizeRequest) (*CreditCardTokenizeResponse, error)
}

func NewCreditCard

func NewCreditCard(env Env, accessToken string) CreditCard

type CreditCardHolderInfoRequest

type CreditCardHolderInfoRequest struct {
	Name              string `json:"name,omitempty"`
	CpfCnpj           string `json:"cpfCnpj,omitempty"`
	Email             string `json:"email,omitempty"`
	Phone             string `json:"phone,omitempty"`
	MobilePhone       string `json:"mobilePhone,omitempty"`
	PostalCode        string `json:"postalCode,omitempty"`
	AddressNumber     string `json:"addressNumber,omitempty"`
	AddressComplement string `json:"addressComplement,omitempty"`
}

type CreditCardRequest

type CreditCardRequest struct {
	HolderName  string `json:"holderName,omitempty"`
	Number      string `json:"number,omitempty"`
	ExpiryMonth string `json:"expiryMonth,omitempty"`
	ExpiryYear  string `json:"expiryYear,omitempty"`
	Ccv         string `json:"ccv,omitempty"`
}

type CreditCardResponse

type CreditCardResponse struct {
	CreditCardNumber string `json:"creditCardNumber,omitempty"`
	CreditCardBrand  string `json:"creditCardBrand,omitempty"`
	CreditCardToken  string `json:"creditCardToken,omitempty"`
}

type CreditCardTokenizeRequest

type CreditCardTokenizeRequest struct {
	Customer             string                      `json:"customer,omitempty"`
	CreditCard           CreditCardRequest           `json:"creditCard,omitempty"`
	CreditCardHolderInfo CreditCardHolderInfoRequest `json:"creditCardHolderInfo,omitempty"`
}

type CreditCardTokenizeResponse

type CreditCardTokenizeResponse struct {
	CreditCardNumber string          `json:"creditCardNumber,omitempty"`
	CreditCardBrand  string          `json:"creditCardBrand,omitempty"`
	CreditCardToken  string          `json:"creditCardToken,omitempty"`
	Errors           []ErrorResponse `json:"errors,omitempty"`
}

func (CreditCardTokenizeResponse) IsFailure

func (c CreditCardTokenizeResponse) IsFailure() bool

func (CreditCardTokenizeResponse) IsNoContent

func (c CreditCardTokenizeResponse) IsNoContent() bool

func (CreditCardTokenizeResponse) IsSuccess

func (c CreditCardTokenizeResponse) IsSuccess() bool

type Customer

type Customer interface {
	// Create (Criar novo cliente)
	//
	// Possibilita criar um novo cliente. Para ser possível criar uma cobrança, antes é necessário criar o cliente
	// ao qual ela irá pertencer. Você deve utilizar o ID retornado nesta requisição na criação da cobrança.
	//
	// # Resposta: 200
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo CustomerResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// CustomerResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar novo cliente: https://docs.asaas.com/reference/criar-novo-cliente
	Create(ctx context.Context, body CreateCustomerRequest) (*CustomerResponse, error)
	// UpdateById (Atualizar cliente existente)
	//
	// Permite atualizar as informações de um cliente já existente.
	//
	// # Resposta: 200
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo CustomerResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// CustomerResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar cliente existente: https://docs.asaas.com/reference/atualizar-cliente-existente
	UpdateById(ctx context.Context, customerId string, body UpdateCustomerRequest) (*CustomerResponse, error)
	// DeleteById (Remover cliente)
	//
	// Ao remover um cliente, as assinaturas e cobranças aguardando pagamento ou vencidas pertencentes a ela também
	// são removidas.
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover cliente: https://docs.asaas.com/reference/remover-cliente
	DeleteById(ctx context.Context, customerId string) (*DeleteResponse, error)
	// RestoreById (Restaurar cliente removido)
	//
	// # Resposta: 200
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo CustomerResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// CustomerResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Restaurar cliente removido: https://docs.asaas.com/reference/restaurar-cliente-removido
	RestoreById(ctx context.Context, customerId string) (*CustomerResponse, error)
	// GetById (Recuperar um único cliente)
	//
	// Para recuperar um cliente específico é necessário que você tenha o ID que o Asaas retornou no momento da criação dele.
	//
	// # Resposta: 200
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// CustomerResponse = not nil
	//
	// Error = nil
	//
	// CustomerResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo CustomerResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// CustomerResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar um único cliente: https://docs.asaas.com/reference/recuperar-um-unico-cliente
	GetById(ctx context.Context, customerId string) (*CustomerResponse, error)
	// GetAll (Listar clientes)
	//
	// Diferente da recuperação de um cliente específico, este método retorna uma lista paginada com todos os
	// clientes para os filtros informados.
	//
	// # Resposta: 200
	//
	// Pageable(CustomerResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(CustomerResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(CustomerResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar clientes: https://docs.asaas.com/reference/listar-clientes
	GetAll(ctx context.Context, filter GetAllCustomersRequest) (*Pageable[CustomerResponse], error)
}

func NewCustomer

func NewCustomer(env Env, accessToken string) Customer

type CustomerResponse

type CustomerResponse struct {
	Id                    string          `json:"id,omitempty"`
	Name                  string          `json:"name,omitempty"`
	Email                 string          `json:"email,omitempty"`
	Phone                 string          `json:"phone,omitempty"`
	MobilePhone           string          `json:"mobilePhone,omitempty"`
	Address               string          `json:"address,omitempty"`
	AddressNumber         string          `json:"addressNumber,omitempty"`
	Complement            string          `json:"complement,omitempty"`
	Province              string          `json:"province,omitempty"`
	PostalCode            string          `json:"postalCode,omitempty"`
	CpfCnpj               string          `json:"cpfCnpj,omitempty"`
	PersonType            PersonType      `json:"personType,omitempty"`
	Deleted               bool            `json:"deleted,omitempty"`
	AdditionalEmails      string          `json:"additionalEmails,omitempty"`
	ExternalReference     string          `json:"externalReference,omitempty"`
	NotificationDisabled  bool            `json:"notificationDisabled,omitempty"`
	MunicipalInscription  string          `json:"municipalInscription,omitempty"`
	StateInscription      string          `json:"stateInscription,omitempty"`
	CanDelete             bool            `json:"canDelete,omitempty"`
	CannotBeDeletedReason string          `json:"cannotBeDeletedReason,omitempty"`
	CanEdit               bool            `json:"canEdit,omitempty"`
	CannotEditReason      string          `json:"cannotEditReason,omitempty"`
	ForeignCustomer       bool            `json:"foreignCustomer,omitempty"`
	City                  int             `json:"city,omitempty"`
	State                 string          `json:"state,omitempty"`
	Country               string          `json:"country,omitempty"`
	Observations          string          `json:"observations,omitempty"`
	Errors                []ErrorResponse `json:"errors,omitempty"`
	DateCreated           Date            `json:"dateCreated,omitempty"`
}

func (CustomerResponse) IsFailure

func (c CustomerResponse) IsFailure() bool

func (CustomerResponse) IsNoContent

func (c CustomerResponse) IsNoContent() bool

func (CustomerResponse) IsSuccess

func (c CustomerResponse) IsSuccess() bool

type DailyCreationLimitResponse

type DailyCreationLimitResponse struct {
	Limit      int  `json:"limit,omitempty"`
	Used       int  `json:"used,omitempty"`
	WasReached bool `json:"wasReached,omitempty"`
}

type Date

type Date time.Time

func DateNow

func DateNow() Date

func NewDate

func NewDate(year int, month time.Month, day int, loc *time.Location) Date

func (Date) Day

func (d Date) Day() int

func (Date) Format

func (d Date) Format() string

func (Date) IsZero

func (d Date) IsZero() bool

func (Date) Location

func (d Date) Location() *time.Location

func (Date) MarshalJSON

func (d Date) MarshalJSON() ([]byte, error)

func (Date) Month

func (d Date) Month() time.Month

func (Date) Time

func (d Date) Time() time.Time

func (*Date) UnmarshalJSON

func (d *Date) UnmarshalJSON(b []byte) error

func (Date) Year

func (d Date) Year() int

type Datetime

type Datetime time.Time

func DatetimeNow

func DatetimeNow() Datetime

func NewDatetime

func NewDatetime(year int, month time.Month, day, hour, min, sec, nSec int, loc *time.Location) Datetime

func NewDatetimePointer

func NewDatetimePointer(year int, month time.Month, day, hour, min, sec, nSec int, loc *time.Location) Datetime

func (Datetime) Day

func (d Datetime) Day() int

func (Datetime) Format

func (d Datetime) Format() string

func (Datetime) Hour

func (d Datetime) Hour() int

func (Datetime) IsZero

func (d Datetime) IsZero() bool

func (Datetime) Location

func (d Datetime) Location() *time.Location

func (Datetime) MarshalJSON

func (d Datetime) MarshalJSON() ([]byte, error)

func (Datetime) Minute

func (d Datetime) Minute() int

func (Datetime) Month

func (d Datetime) Month() time.Month

func (Datetime) Nanosecond

func (d Datetime) Nanosecond() int

func (Datetime) Second

func (d Datetime) Second() int

func (Datetime) Time

func (d Datetime) Time() time.Time

func (Datetime) Year

func (d Datetime) Year() int

type DecodePixQrCodeResponse

type DecodePixQrCodeResponse struct {
	Payload                     string                   `json:"payload,omitempty"`
	Type                        PixTransactionType       `json:"type,omitempty"`
	TransactionOriginType       PixTransactionOriginType `json:"transactionOriginType,omitempty"`
	PixKey                      string                   `json:"pix,omitempty"`
	ConciliationIdentifier      string                   `json:"conciliationIdentifier,omitempty"`
	EndToEndIdentifier          string                   `json:"endToEndIdentifier,omitempty"`
	DueDate                     Date                     `json:"dueDate,omitempty"`
	ExpirationDate              Date                     `json:"expirationDate,omitempty"`
	Finality                    PixTransactionFinality   `json:"finality,omitempty"`
	Value                       float64                  `json:"value,omitempty"`
	ChangeValue                 float64                  `json:"changeValue,omitempty"`
	Interest                    float64                  `json:"interest,omitempty"`
	Fine                        float64                  `json:"fine,omitempty"`
	Discount                    float64                  `json:"discount,omitempty"`
	TotalValue                  float64                  `json:"totalValue,omitempty"`
	CanBePaidWithDifferentValue bool                     `json:"canBePaidWithDifferentValue,omitempty"`
	CanBeModifyChangeValue      bool                     `json:"canBeModifyChangeValue,omitempty"`
	Receiver                    *PixReceiverResponse     `json:"receiver,omitempty"`
	Payer                       *PixPayerResponse        `json:"payer,omitempty"`
	Description                 string                   `json:"description,omitempty"`
	Errors                      []ErrorResponse          `json:"errors,omitempty"`
	CanBePaid                   bool                     `json:"canBePaid,omitempty"`
	CannotBePaidReason          string                   `json:"cannotBePaidReason,omitempty"`
}

func (DecodePixQrCodeResponse) IsFailure

func (d DecodePixQrCodeResponse) IsFailure() bool

func (DecodePixQrCodeResponse) IsNoContent

func (d DecodePixQrCodeResponse) IsNoContent() bool

func (DecodePixQrCodeResponse) IsSuccess

func (d DecodePixQrCodeResponse) IsSuccess() bool

type DeleteNumericResponse

type DeleteNumericResponse struct {
	Id      int             `json:"id,omitempty"`
	Deleted bool            `json:"deleted,omitempty"`
	Errors  []ErrorResponse `json:"errors,omitempty"`
}

func (DeleteNumericResponse) IsFailure

func (d DeleteNumericResponse) IsFailure() bool

func (DeleteNumericResponse) IsNoContent

func (d DeleteNumericResponse) IsNoContent() bool

func (DeleteNumericResponse) IsSuccess

func (d DeleteNumericResponse) IsSuccess() bool

type DeleteResponse

type DeleteResponse struct {
	Id      string          `json:"id,omitempty"`
	Deleted bool            `json:"deleted,omitempty"`
	Errors  []ErrorResponse `json:"errors,omitempty"`
}

func (DeleteResponse) IsFailure

func (d DeleteResponse) IsFailure() bool

func (DeleteResponse) IsNoContent

func (d DeleteResponse) IsNoContent() bool

func (DeleteResponse) IsSuccess

func (d DeleteResponse) IsSuccess() bool

type DeleteWhiteLabelSubaccountRequest

type DeleteWhiteLabelSubaccountRequest struct {
	// Motivo da remoção (REQUIRED)
	RemoveReason string `json:"removeReason,omitempty"`
}

type DeleteWhiteLabelSubaccountResponse

type DeleteWhiteLabelSubaccountResponse struct {
	Observations string          `json:"observations,omitempty"`
	Errors       []ErrorResponse `json:"errors,omitempty"`
}

func (DeleteWhiteLabelSubaccountResponse) IsFailure

func (DeleteWhiteLabelSubaccountResponse) IsNoContent

func (d DeleteWhiteLabelSubaccountResponse) IsNoContent() bool

func (DeleteWhiteLabelSubaccountResponse) IsSuccess

type DiscountRequest

type DiscountRequest struct {
	// Valor percentual ou fixo de desconto a ser aplicado sobre o valor da cobrança
	Value float64 `json:"value,omitempty"`
	// Dias antes do vencimento para aplicar desconto. Ex: 0 = até o vencimento, 1 = até um dia antes, 2 = até dois dias antes, e assim por diante
	DueDateLimitDays int          `json:"dueDateLimitDays,omitempty"`
	Type             DiscountType `json:"type,omitempty"`
}

type DiscountResponse

type DiscountResponse struct {
	Value            float64      `json:"value,omitempty"`
	DueDateLimitDays int          `json:"dueDateLimitDays,omitempty"`
	Type             DiscountType `json:"type,omitempty"`
}

type DiscountType

type DiscountType string
const (
	DiscountTypeFixed      DiscountType = "FIXED"
	DiscountTypePercentage DiscountType = "PERCENTAGE"
)

type DocumentResponsibleResponse

type DocumentResponsibleResponse struct {
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

type DocumentType

type DocumentType string
const (
	DocumentTypeInvoice     DocumentType = "INVOICE"
	DocumentTypeContract    DocumentType = "CONTRACT"
	DocumentTypeDocument    DocumentType = "DOCUMENT"
	DocumentTypeSpreadsheet DocumentType = "SPREADSHEET"
	DocumentTypeProgram     DocumentType = "PROGRAM"
	DocumentTypeOther       DocumentType = "OTHER"
)

type EffectiveDatePeriod

type EffectiveDatePeriod string
const (
	EffectiveDatePeriodOnPaymentConfirmation EffectiveDatePeriod = "ON_PAYMENT_CONFIRMATION"
	EffectiveDatePeriodOnPaymentDueDate      EffectiveDatePeriod = "ON_PAYMENT_DUE_DATE"
	EffectiveDatePeriodBeforePaymentDueDate  EffectiveDatePeriod = "BEFORE_PAYMENT_DUE_DATE"
	EffectiveDatePeriodOnDueDateMonth        EffectiveDatePeriod = "ON_DUE_DATE_MONTH"
	EffectiveDatePeriodOnNextMonth           EffectiveDatePeriod = "ON_NEXT_MONTH"
)

type Env

type Env int
const (
	EnvSandbox    Env = iota
	EnvProduction Env = iota
)

func (Env) BaseUrl

func (a Env) BaseUrl() string

func (Env) String

func (a Env) String() string

type ErrorResponse

type ErrorResponse struct {
	Code        string `json:"code,omitempty"`
	Description string `json:"description,omitempty"`
}

type FileMimeType

type FileMimeType string
const (
	FileMimeTypePdf  FileMimeType = "application/pdf"
	FileMimeTypeText FileMimeType = "text/plain"
	FileMimeTypeAvif FileMimeType = "image/avif"
	FileMimeTypeCss  FileMimeType = "text/css; charset=utf-8"
	FileMimeTypeGif  FileMimeType = "image/gif"
	FileMimeTypeHtml FileMimeType = "text/html; charset=utf-8"
	FileMimeTypeJpeg FileMimeType = "image/jpeg"
	FileMimeTypeJs   FileMimeType = "text/javascript; charset=utf-8"
	FileMimeTypeJson FileMimeType = "application/json"
	FileMimeTypePng  FileMimeType = "image/png"
	FileMimeTypeSvg  FileMimeType = "image/svg+xml"
	FileMimeTypeWasm FileMimeType = "application/wasm"
	FileMimeTypeWebp FileMimeType = "image/webp"
	FileMimeTypeXml  FileMimeType = "text/xml; charset=utf-8"
)

func (FileMimeType) String

func (f FileMimeType) String() string

type FileRequest

type FileRequest struct {
	Name string       `json:"name"`
	Mime FileMimeType `json:"mime"`
	Data []byte       `json:"data"`
}

func (FileRequest) MarshalJSON

func (f FileRequest) MarshalJSON() ([]byte, error)

type FileTextPlainResponse

type FileTextPlainResponse struct {
	Data   string          `json:"data,omitempty"`
	Errors []ErrorResponse `json:"errors,omitempty"`
}

func (FileTextPlainResponse) IsFailure

func (f FileTextPlainResponse) IsFailure() bool

func (FileTextPlainResponse) IsNoContent

func (f FileTextPlainResponse) IsNoContent() bool

func (FileTextPlainResponse) IsSuccess

func (f FileTextPlainResponse) IsSuccess() bool

type FinanceTransType

type FinanceTransType string
const (
	FinanceTransTypeAsaasCardRecharge                                FinanceTransType = "ASAAS_CARD_RECHARGE"
	FinanceTransTypeAsaasCardRechargeReversal                        FinanceTransType = "ASAAS_CARD_RECHARGE_REVERSAL"
	FinanceTransTypeAsaasCardTransaction                             FinanceTransType = "ASAAS_CARD_TRANSACTION"
	FinanceTransTypeAsaasCardCashback                                FinanceTransType = "ASAAS_CARD_CASHBACK"
	FinanceTransTypeAsaasCardTransactionFee                          FinanceTransType = "ASAAS_CARD_TRANSACTION_FEE"
	FinanceTransTypeAsaasCardTransactionFeeRefund                    FinanceTransType = "ASAAS_CARD_TRANSACTION_FEE_REFUND"
	FinanceTransTypeAsaasCardTransactionPartialRefundCancellation    FinanceTransType = "ASAAS_CARD_TRANSACTION_PARTIAL_REFUND_CANCELLATION"
	FinanceTransTypeAsaasCardTransactionRefund                       FinanceTransType = "ASAAS_CARD_TRANSACTION_REFUND"
	FinanceTransTypeAsaasCardTransactionRefundCancellation           FinanceTransType = "ASAAS_CARD_TRANSACTION_REFUND_CANCELLATION"
	FinanceTransTypeAsaasMoneyPaymentAnticipationFeeRefund           FinanceTransType = "ASAAS_MONEY_PAYMENT_ANTICIPATION_FEE_REFUND"
	FinanceTransTypeAsaasMoneyPaymentCompromisedBalance              FinanceTransType = "ASAAS_MONEY_PAYMENT_COMPROMISED_BALANCE"
	FinanceTransTypeAsaasMoneyPaymentCompromisedBalanceRefund        FinanceTransType = "ASAAS_MONEY_PAYMENT_COMPROMISED_BALANCE_REFUND"
	FinanceTransTypeAsaasMoneyPaymentFinancingFee                    FinanceTransType = "ASAAS_MONEY_PAYMENT_FINANCING_FEE"
	FinanceTransTypeAsaasMoneyPaymentFinancingFeeRefund              FinanceTransType = "ASAAS_MONEY_PAYMENT_FINANCING_FEE_REFUND"
	FinanceTransTypeAsaasMoneyTransactionCashback                    FinanceTransType = "ASAAS_MONEY_TRANSACTION_CASHBACK"
	FinanceTransTypeAsaasMoneyTransactionCashbackRefund              FinanceTransType = "ASAAS_MONEY_TRANSACTION_CASHBACK_REFUND"
	FinanceTransTypeAsaasMoneyTransactionChargeback                  FinanceTransType = "ASAAS_MONEY_TRANSACTION_CHARGEBACK"
	FinanceTransTypeAsaasMoneyTransactionChargebackReversal          FinanceTransType = "ASAAS_MONEY_TRANSACTION_CHARGEBACK_REVERSAL"
	FinanceTransTypeBillPayment                                      FinanceTransType = "BILL_PAYMENT"
	FinanceTransTypeBillPaymentCancelled                             FinanceTransType = "BILL_PAYMENT_CANCELLED"
	FinanceTransTypeBillPaymentRefunded                              FinanceTransType = "BILL_PAYMENT_REFUNDED"
	FinanceTransTypeBillPaymentFee                                   FinanceTransType = "BILL_PAYMENT_FEE"
	FinanceTransTypeBillPaymentFeeCancelled                          FinanceTransType = "BILL_PAYMENT_FEE_CANCELLED"
	FinanceTransTypeChargeback                                       FinanceTransType = "CHARGEBACK"
	FinanceTransTypeChargebackReversal                               FinanceTransType = "CHARGEBACK_REVERSAL"
	FinanceTransTypeChargedFeeRefund                                 FinanceTransType = "CHARGED_FEE_REFUND"
	FinanceTransTypeContractualEffectSettlement                      FinanceTransType = "CONTRACTUAL_EFFECT_SETTLEMENT"
	FinanceTransTypeContractualEffectSettlementReversal              FinanceTransType = "CONTRACTUAL_EFFECT_SETTLEMENT_REVERSAL"
	FinanceTransTypeCredit                                           FinanceTransType = "CREDIT"
	FinanceTransTypeCreditBureauReport                               FinanceTransType = "CREDIT_BUREAU_REPORT"
	FinanceTransTypeCustomerCommissionSettlementCredit               FinanceTransType = "CUSTOMER_COMMISSION_SETTLEMENT_CREDIT"
	FinanceTransTypeCustomerCommissionSettlementDebit                FinanceTransType = "CUSTOMER_COMMISSION_SETTLEMENT_DEBIT"
	FinanceTransTypeDebit                                            FinanceTransType = "DEBIT"
	FinanceTransTypeDebitReversal                                    FinanceTransType = "DEBIT_REVERSAL"
	FinanceTransTypeDebtRecoveryNegotiationFinancialCharges          FinanceTransType = "DEBT_RECOVERY_NEGOTIATION_FINANCIAL_CHARGES"
	FinanceTransTypeFreePaymentUse                                   FinanceTransType = "FREE_PAYMENT_USE"
	FinanceTransTypeInternalTransferCredit                           FinanceTransType = "INTERNAL_TRANSFER_CREDIT"
	FinanceTransTypeInternalTransferDebit                            FinanceTransType = "INTERNAL_TRANSFER_DEBIT"
	FinanceTransTypeInternalTransferReversal                         FinanceTransType = "INTERNAL_TRANSFER_REVERSAL"
	FinanceTransTypeInvoiceFee                                       FinanceTransType = "INVOICE_FEE"
	FinanceTransTypePartialPayment                                   FinanceTransType = "PARTIAL_PAYMENT"
	FinanceTransTypePaymentDunningCancellationFee                    FinanceTransType = "PAYMENT_DUNNING_CANCELLATION_FEE"
	FinanceTransTypePaymentDunningReceivedFee                        FinanceTransType = "PAYMENT_DUNNING_RECEIVED_FEE"
	FinanceTransTypePaymentDunningReceivedInCashFee                  FinanceTransType = "PAYMENT_DUNNING_RECEIVED_IN_CASH_FEE"
	FinanceTransTypePaymentDunningRequestFee                         FinanceTransType = "PAYMENT_DUNNING_REQUEST_FEE"
	FinanceTransTypePaymentFee                                       FinanceTransType = "PAYMENT_FEE"
	FinanceTransTypePaymentFeeReversal                               FinanceTransType = "PAYMENT_FEE_REVERSAL"
	FinanceTransTypePaymentMessagingNotificationFee                  FinanceTransType = "PAYMENT_MESSAGING_NOTIFICATION_FEE"
	FinanceTransTypePaymentReceived                                  FinanceTransType = "PAYMENT_RECEIVED"
	FinanceTransTypePaymentCustodyBlock                              FinanceTransType = "PAYMENT_CUSTODY_BLOCK"
	FinanceTransTypePaymentCustodyBlockReversal                      FinanceTransType = "PAYMENT_CUSTODY_BLOCK_REVERSAL"
	FinanceTransTypePaymentRefundCancelled                           FinanceTransType = "PAYMENT_REFUND_CANCELLED"
	FinanceTransTypePaymentReversal                                  FinanceTransType = "PAYMENT_REVERSAL"
	FinanceTransTypePaymentSmsNotificationFee                        FinanceTransType = "PAYMENT_SMS_NOTIFICATION_FEE"
	FinanceTransTypePaymentInstantTextMessageFee                     FinanceTransType = "PAYMENT_INSTANT_TEXT_MESSAGE_FEE"
	FinanceTransTypePhoneCallNotificationFee                         FinanceTransType = "PHONE_CALL_NOTIFICATION_FEE"
	FinanceTransTypePixTransactionCredit                             FinanceTransType = "PIX_TRANSACTION_CREDIT"
	FinanceTransTypePixTransactionCreditFee                          FinanceTransType = "PIX_TRANSACTION_CREDIT_FEE"
	FinanceTransTypePixTransactionCreditRefund                       FinanceTransType = "PIX_TRANSACTION_CREDIT_REFUND"
	FinanceTransTypePixTransactionCreditRefundCancellation           FinanceTransType = "PIX_TRANSACTION_CREDIT_REFUND_CANCELLATION"
	FinanceTransTypePixTransactionDebit                              FinanceTransType = "PIX_TRANSACTION_DEBIT"
	FinanceTransTypePixTransactionDebitFee                           FinanceTransType = "PIX_TRANSACTION_DEBIT_FEE"
	FinanceTransTypePixTransactionDebitRefund                        FinanceTransType = "PIX_TRANSACTION_DEBIT_REFUND"
	FinanceTransTypePostalServiceFee                                 FinanceTransType = "POSTAL_SERVICE_FEE"
	FinanceTransTypeProductInvoiceFee                                FinanceTransType = "PRODUCT_INVOICE_FEE"
	FinanceTransTypeConsumerInvoiceFee                               FinanceTransType = "CONSUMER_INVOICE_FEE"
	FinanceTransTypePromotionalCodeCredit                            FinanceTransType = "PROMOTIONAL_CODE_CREDIT"
	FinanceTransTypePromotionalCodeDebit                             FinanceTransType = "PROMOTIONAL_CODE_DEBIT"
	FinanceTransTypeReceivableAnticipationGrossCredit                FinanceTransType = "RECEIVABLE_ANTICIPATION_GROSS_CREDIT"
	FinanceTransTypeReceivableAnticipationDebit                      FinanceTransType = "RECEIVABLE_ANTICIPATION_DEBIT"
	FinanceTransTypeReceivableAnticipationFee                        FinanceTransType = "RECEIVABLE_ANTICIPATION_FEE"
	FinanceTransTypeReceivableAnticipationPartnerSettlement          FinanceTransType = "RECEIVABLE_ANTICIPATION_PARTNER_SETTLEMENT"
	FinanceTransTypeRefundRequestCancelled                           FinanceTransType = "REFUND_REQUEST_CANCELLED"
	FinanceTransTypeRefundRequestFee                                 FinanceTransType = "REFUND_REQUEST_FEE"
	FinanceTransTypeRefundRequestFeeReversal                         FinanceTransType = "REFUND_REQUEST_FEE_REVERSAL"
	FinanceTransTypeReversal                                         FinanceTransType = "REVERSAL"
	FinanceTransTypeTransfer                                         FinanceTransType = "TRANSFER"
	FinanceTransTypeTransferFee                                      FinanceTransType = "TRANSFER_FEE"
	FinanceTransTypeTransferReversal                                 FinanceTransType = "TRANSFER_REVERSAL"
	FinanceTransTypeMobilePhoneRecharge                              FinanceTransType = "MOBILE_PHONE_RECHARGE"
	FinanceTransTypeRefundMobilePhoneRecharge                        FinanceTransType = "REFUND_MOBILE_PHONE_RECHARGE"
	FinanceTransTypeCancelMobilePhoneRecharge                        FinanceTransType = "CANCEL_MOBILE_PHONE_RECHARGE"
	FinanceTransTypeInstantTextMessageFee                            FinanceTransType = "INSTANT_TEXT_MESSAGE_FEE"
	FinanceTransTypeAsaasCardBalanceRefund                           FinanceTransType = "ASAAS_CARD_BALANCE_REFUND"
	FinanceTransTypeAsaasMoneyPaymentAnticipationFee                 FinanceTransType = "ASAAS_MONEY_PAYMENT_ANTICIPATION_FEE"
	FinanceTransTypeBacenJudicialLock                                FinanceTransType = "BACEN_JUDICIAL_LOCK"
	FinanceTransTypeBacenJudicialUnlock                              FinanceTransType = "BACEN_JUDICIAL_UNLOCK"
	FinanceTransTypeBacenJudicialTransfer                            FinanceTransType = "BACEN_JUDICIAL_TRANSFER"
	FinanceTransTypeAsaasDebitCardRequestFee                         FinanceTransType = "ASAAS_DEBIT_CARD_REQUEST_FEE"
	FinanceTransTypeAsaasPrepaidCardRequestFee                       FinanceTransType = "ASAAS_PREPAID_CARD_REQUEST_FEE"
	FinanceTransTypeExternalSettlementContractualEffectBatchCredit   FinanceTransType = "EXTERNAL_SETTLEMENT_CONTRACTUAL_EFFECT_BATCH_CREDIT"
	FinanceTransTypeExternalSettlementContractualEffectBatchReversal FinanceTransType = "EXTERNAL_SETTLEMENT_CONTRACTUAL_EFFECT_BATCH_REVERSAL"
	FinanceTransTypeAsaasCardBillPayment                             FinanceTransType = "ASAAS_CARD_BILL_PAYMENT"
	FinanceTransTypeAsaasCardBillPaymentRefund                       FinanceTransType = "ASAAS_CARD_BILL_PAYMENT_REFUND"
	FinanceTransTypeChildAccountKnownYourCustomerBatchFee            FinanceTransType = "CHILD_ACCOUNT_KNOWN_YOUR_CUSTOMER_BATCH_FEE"
	FinanceTransTypeContractedCustomerPlanFee                        FinanceTransType = "CONTRACTED_CUSTOMER_PLAN_FEE"
)

type FineRequest

type FineRequest struct {
	// Percentual de multa sobre o valor da cobrança para pagamento após o vencimento
	Value float64  `json:"value,omitempty"`
	Type  FineType `json:"type,omitempty"`
}

type FineResponse

type FineResponse struct {
	Value float64  `json:"value,omitempty"`
	Type  FineType `json:"type,omitempty"`
}

type FineType

type FineType string
const (
	FineTypeFixed      FineType = "FIXED"
	FineTypePercentage FineType = "PERCENTAGE"
)

type FiscalInfo

type FiscalInfo interface {
	// Save (Criar e atualizar informações fiscais)
	//
	// # Resposta: 200
	//
	// FiscalInfoResponse = not nil
	//
	// Error = nil
	//
	// FiscalInfoResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// FiscalInfoResponse = not nil
	//
	// Error = nil
	//
	// FiscalInfoResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo FiscalInfoResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// FiscalInfoResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar e atualizar informações fiscais: https://docs.asaas.com/reference/criar-e-atualizar-informacoes-fiscais
	Save(ctx context.Context, body SaveFiscalInfoRequest) (*FiscalInfoResponse, error)
	// Get (Recuperar informações fiscais)
	//
	// Permite verificar as configurações para emissão de notas fiscais. Caso ainda não tenha sido cadastrada,
	// será retornado HTTP 404.
	//
	// # Resposta: 200/404
	//
	// FiscalInfoResponse = not nil
	//
	// Error = nil
	//
	// Se FiscalInfoResponse.IsSuccess() for true quer dizer que possui os valores de resposta de sucesso segunda a documentação.
	//
	// Se FiscalInfoResponse.IsNoContent() for true quer dizer não recuperou nenhum dado.
	//
	// # Resposta: 401/500
	//
	// FiscalInfoResponse = not nil
	//
	// Error = nil
	//
	// FiscalInfoResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo FiscalInfoResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// FiscalInfoResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar informações fiscais: https://docs.asaas.com/reference/recuperar-informacoes-fiscais
	Get(ctx context.Context) (*FiscalInfoResponse, error)
	// GetMunicipalSettings (Listar configurações municipais)
	//
	// Algumas configurações para emissão de notas fiscais dependem da prefeitura onde a nota fiscal é emitida.
	//
	// # Resposta: 200
	//
	// MunicipalSettingsResponse = not nil
	//
	// Error = nil
	//
	// MunicipalSettingsResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// MunicipalSettingsResponse = not nil
	//
	// Error = nil
	//
	// MunicipalSettingsResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo MunicipalSettingsResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// MunicipalSettingsResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar configurações municipais: https://docs.asaas.com/reference/listar-configuracoes-municipais
	GetMunicipalSettings(ctx context.Context) (*MunicipalSettingsResponse, error)
	// GetAllServices (Listar serviços municipais)
	//
	// # Resposta: 200
	//
	// Pageable(FiscalInfoServiceResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(FiscalInfoServiceResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(FiscalInfoServiceResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar serviços municipais: https://docs.asaas.com/reference/listar-servicos-municipais
	GetAllServices(ctx context.Context, filter GetAllServicesRequest) (*Pageable[FiscalInfoServiceResponse], error)
}

func NewFiscalInfo

func NewFiscalInfo(env Env, accessToken string) FiscalInfo

type FiscalInfoResponse

type FiscalInfoResponse struct {
	SimplesNacional          bool            `json:"simplesNacional,omitempty"`
	RpsSerie                 string          `json:"rpsSerie,omitempty"`
	RpsNumber                int             `json:"rpsNumber,omitempty"`
	LoteNumber               int             `json:"loteNumber,omitempty"`
	Username                 string          `json:"username,omitempty"`
	PasswordSent             bool            `json:"passwordSent,omitempty"`
	AccessTokenSent          bool            `json:"accessTokenSent,omitempty"`
	CertificateSent          bool            `json:"certificateSent,omitempty"`
	SpecialTaxRegime         string          `json:"specialTaxRegime,omitempty"`
	Email                    string          `json:"email,omitempty"`
	ServiceListItem          string          `json:"serviceListItem,omitempty"`
	Cnae                     string          `json:"cnae,omitempty"`
	CulturalProjectsPromoter bool            `json:"culturalProjectsPromoter,omitempty"`
	MunicipalInscription     string          `json:"municipalInscription,omitempty"`
	UseNationalPortal        bool            `json:"useNationalPortal,omitempty"`
	Errors                   []ErrorResponse `json:"errors,omitempty"`
}

func (FiscalInfoResponse) IsFailure

func (f FiscalInfoResponse) IsFailure() bool

func (FiscalInfoResponse) IsNoContent

func (f FiscalInfoResponse) IsNoContent() bool

func (FiscalInfoResponse) IsSuccess

func (f FiscalInfoResponse) IsSuccess() bool

type FiscalInfoServiceResponse

type FiscalInfoServiceResponse struct {
	Id          string  `json:"id,omitempty"`
	Description string  `json:"description,omitempty"`
	IssTax      float64 `json:"issTax,omitempty"`
}

type GetAccountStatementRequest

type GetAccountStatementRequest struct {
	// Data inicial da lista
	StartDate Date `json:"startDate,omitempty"`
	// Data final da lista
	FinishDate Date `json:"finishDate,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
	// Ordenação do resultado
	Order Order `json:"order,omitempty"`
}

type GetAllAnticipationsRequest

type GetAllAnticipationsRequest struct {
	// Filtrar antecipações de uma cobrança
	Payment string `json:"payment,omitempty"`
	// Filtrar antecipações de um parcelamento
	Installment string `json:"installment,omitempty"`
	// Filtrar por status
	Status AnticipationStatus `json:"status,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllChargesBySubscriptionRequest

type GetAllChargesBySubscriptionRequest struct {
	// Filtrar por status das cobranças
	Status ChargeStatus `json:"status,omitempty"`
}

type GetAllChargesRequest

type GetAllChargesRequest struct {
	// Filtrar pelo Identificador único do cliente
	Customer string `json:"customer,omitempty"`
	// Filtrar pelo Identificador único da assinatura
	Subscription string `json:"subscription,omitempty"`
	// Filtrar pelo Identificador único do parcelamento
	Installment string `json:"installment,omitempty"`
	// Filtrar pelo nome do grupo de cliente
	CustomerGroupName string `json:"customerGroupName,omitempty"`
	// Filtrar por forma de pagamento
	BillingType BillingType `json:"billingType,omitempty"`
	// Filtrar por status
	Status ChargeStatus `json:"status,omitempty"`
	// Filtrar pelo Identificador do seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Filtro para retornar cobranças que possuem ou não nota fiscal.
	InvoiceStatus InvoiceStatus `json:"invoiceStatus,omitempty"`
	// Filtrar pela data estimada de crédito.
	EstimatedCreditDate Date `json:"estimatedCreditDate,omitempty"`
	// Filtrar recebimentos originados de um QrCode estático utilizando o id gerado na hora da criação do QrCode.
	PixQrCodeId string `json:"pixQrCodeId,omitempty"`
	// Filtrar registros antecipados ou não
	Anticipated *bool `json:"anticipated,omitempty"`
	// Filtrar pela data de pagamento
	PaymentDate Date `json:"paymentDate,omitempty"`
	// Filtrar a partir da data de criação inicial
	DateCreatedGe Date `json:"dateCreated[ge],omitempty"`
	// Filtrar a partir da data de criação final
	DateCreatedLe Date `json:"dateCreated[le],omitempty"`
	// Filtrar a partir da data de recebimento inicial
	PaymentDateGe Date `json:"paymentDate[ge],omitempty"`
	// Filtrar a partir da data de recebimento final
	PaymentDateLe Date `json:"paymentDate[le],omitempty"`
	// Filtrar a partir da data estimada de crédito inicial
	EstimatedCreditDateGE Date `json:"estimatedCreditDate[ge],omitempty"`
	// Filtrar a partir da data estimada de crédito final
	EstimatedCreditDateLE Date `json:"estimatedCreditDate[le],omitempty"`
	// Filtrar a partir da data de vencimento inicial
	DueDateGe Date `json:"dueDate[ge],omitempty"`
	// Filtrar a partir da data de vencimento final
	DueDateLe Date `json:"dueDate[le],omitempty"`
	// Filtrar pelo endereço de e-mail do usuário que criou a cobrança.
	User string `json:"user,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllCustomersRequest

type GetAllCustomersRequest struct {
	// Filtrar por nome
	Name string `json:"name,omitempty"`
	// Filtrar por email
	Email string `json:"email,omitempty"`
	// Filtrar por CPF ou CNPJ
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Filtrar por grupo
	GroupName string `json:"groupName,omitempty"`
	// Filtrar pelo Identificador do seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllInvoicesRequest

type GetAllInvoicesRequest struct {
	// Filtrar a partir de uma data de emissão
	EffectiveDateGE Date `json:"effectiveDate[ge],omitempty"`
	// Filtrar até uma data de emissão
	EffectiveDateLE Date `json:"effectiveDate[le],omitempty"`
	// Filtrar pela cobrança
	Payment string `json:"payment,omitempty"`
	// Filtrar pelo parcelamento
	Installment string `json:"installment,omitempty"`
	// Filtrar pelo identificador único do cliente
	Customer string `json:"customer,omitempty"`
	// Identificador da nota fiscal no seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Status da nota fiscal
	Status InvoiceStatus `json:"status,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllNegativitiesRequest

type GetAllNegativitiesRequest struct {
	// Status da negativação
	Status NegativityStatus `json:"status,omitempty"`
	// Tipo de negativação
	Type NegativityType `json:"type,omitempty"`
	// Filtrar por negativações de uma determinada cobrança
	Payment string `json:"payment,omitempty"`
	// Filtrar a partir da data de solicitação inicial
	RequestStartDate Date `json:"requestStartDate,omitempty"`
	// Filtrar a partir da data de solicitação final
	RequestEndDate Date `json:"requestEndDate,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllPaymentLinksRequest

type GetAllPaymentLinksRequest struct {
	// Filtrar pelo nome do link de pagamento
	Name string `json:"name,omitempty"`
	// Filtrar por link de pagamentos ativos ou desativados
	Active *bool `json:"active,omitempty"`
	// True para recuperar também os links de pagamento removidos
	IncludeDeleted *bool `json:"includeDeleted,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllPixKeysRequest

type GetAllPixKeysRequest struct {
	// Filtrar pelo status atual da chave
	Status PixKeyStatus `json:"status,omitempty"`
	// Filtrar por um ou mais status das chaves
	StatusList string `json:"statusList,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllPixTransactionsRequest

type GetAllPixTransactionsRequest struct {
	// Status da transação
	Status PixTransactionStatus `json:"status,omitempty"`
	// Tipo da transação
	Type PixTransactionType `json:"type,omitempty"`
	// Tipo da transação
	EndToEndIdentifier string `json:"endToEndIdentifier,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllReportsRequest

type GetAllReportsRequest struct {
	// Filtrar a partir da data de criação
	StartDate Date `json:"startDate,omitempty"`
	// Filtrar até uma data de criação
	EndDate Date `json:"endDate,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllServicesRequest

type GetAllServicesRequest struct {
	// Nome do serviço
	Description string `json:"description,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllSubaccountsRequest

type GetAllSubaccountsRequest struct {
	// Filtrar pelo cpf ou cnpj da subconta
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Filtrar pelo email da subconta
	Email string `json:"email,omitempty"`
	// Filtrar pelo nome da subconta
	Name string `json:"name,omitempty"`
	// Filtrar pelo walletId da subconta
	WalletId string `json:"walletId,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllSubscriptionInvoicesRequest

type GetAllSubscriptionInvoicesRequest struct {
	// Filtrar a partir de uma data de emissão
	EffectiveDateGE Date `json:"effectiveDate[ge],omitempty"`
	// Filtrar até uma data de emissão
	EffectiveDateLE Date `json:"effectiveDate[le],omitempty"`
	// Identificador da nota fiscal no seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Status da nota fiscal
	Status InvoiceStatus `json:"status,omitempty"`
	// Filtrar pelo identificador único do cliente
	Customer string `json:"customer,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllSubscriptionsRequest

type GetAllSubscriptionsRequest struct {
	// Filtrar pelo Identificador único do cliente
	Customer string `json:"customer,omitempty"`
	// Filtrar pelo nome do grupo de cliente
	CustomerGroupName string `json:"customerGroupName,omitempty"`
	// Filtrar por forma de pagamento
	BillingType BillingType `json:"billingType,omitempty"`
	// Filtrar pelo status
	Status SubscriptionStatus `json:"status,omitempty"`
	// Envie true para retornar somente as assinaturas removidas
	DeletedOnly bool `json:"deletedOnly,omitempty"`
	// Envie true para recuperar também as assinaturas removidas
	IncludeDeleted bool `json:"includeDeleted,omitempty"`
	// Filtrar pelo Identificador do seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Ordem crescente ou decrescente
	Order Order `json:"order,omitempty"`
	// Por qual campo será ordenado
	Sort SortSubscriptionField `json:"sort,omitempty"`
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type GetAllTransfersRequest

type GetAllTransfersRequest struct {
	// Filtrar pela data de criação inicial
	DateCreatedGe Date `json:"dateCreated[ge],omitempty"`
	// Filtrar pela data de criação final
	DateCreatedLe Date `json:"dateCreated[le],omitempty"`
	// Filtrar pela data inicial de efetivação de transferência
	TransferDateGe Date `json:"transferDate[ge],omitempty"`
	// Filtrar pela data final de efetivação de transferência
	TransferDateLe Date `json:"transferDate[le],omitempty"`
	// Filtrar por tipo da transferência
	Type TransferType `json:"type,omitempty"`
}

type GetPaymentStatisticRequest

type GetPaymentStatisticRequest struct {
	// Filtrar pelo Identificador único do cliente
	Customer string `json:"customer,omitempty"`
	// Filtrar por forma de pagamento
	BillingType BillingType `json:"billingType,omitempty"`
	// Filtrar por status
	Status ChargeStatus `json:"status,omitempty"`
	// Filtrar registros antecipados ou não
	Anticipated *bool `json:"anticipated,omitempty"`
	// Filtrar a partir da data de vencimento inicial
	DueDateGe Date `json:"dueDate[ge],omitempty"`
	// Filtrar a partir da data de vencimento final
	DueDateLe Date `json:"dueDate[le],omitempty"`
	// Filtrar a partir da data de criação inicial
	DateCreatedGe Date `json:"dateCreated[ge],omitempty"`
	// Filtrar a partir da data de criação final
	DateCreatedLe Date `json:"dateCreated[le],omitempty"`
	// Filtrar a partir da data estimada de crédito inicial
	EstimatedCreditDateGe Date `json:"estimatedCreditDate[ge],omitempty"`
	// Filtrar a partir da data estimada de crédito final
	EstimatedCreditDateLe Date `json:"estimatedCreditDate[le],omitempty"`
	// Filtrar pelo Identificador do seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
}

type GetReportRequest

type GetReportRequest struct {
	// Identificador único do cliente no Asaas (REQUIRED se CpfCnpj não for informado)
	Customer string `json:"customer,omitempty"`
	// CPF ou CNPJ do cliente. Informe este campo caso seu cliente não esteja cadastrado no Asaas (REQUIRED se Customer não for informado)
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Estado em que deseja realizar a consulta. (REQUIRED)
	State string `json:"state,omitempty"`
}

type IdentificationFieldResponse

type IdentificationFieldResponse struct {
	IdentificationField string          `json:"identificationField,omitempty"`
	NossoNumero         string          `json:"nossoNumero,omitempty"`
	BarCode             string          `json:"barCode,omitempty"`
	Errors              []ErrorResponse `json:"errors,omitempty"`
}

func (IdentificationFieldResponse) IsFailure

func (i IdentificationFieldResponse) IsFailure() bool

func (IdentificationFieldResponse) IsNoContent

func (i IdentificationFieldResponse) IsNoContent() bool

func (IdentificationFieldResponse) IsSuccess

func (i IdentificationFieldResponse) IsSuccess() bool

type Installment

type Installment interface {
	// UpdateSplitsById (Atualizar splits do parcelamento)
	//
	// # Resposta: 200
	//
	// UpdateInstallmentSplitsResponse = not nil
	//
	// Error = nil
	//
	// UpdateInstallmentSplitsResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// UpdateInstallmentSplitsResponse = not nil
	//
	// Error = nil
	//
	// UpdateInstallmentSplitsResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// UpdateInstallmentSplitsResponse = not nil
	//
	// Error = nil
	//
	// UpdateInstallmentSplitsResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo UpdateInstallmentSplitsResponse.Errors
	// preenchido com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// UpdateInstallmentSplitsResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar splits do parcelamento: https://docs.asaas.com/reference/atualizar-split-do-parcelamento
	UpdateSplitsById(ctx context.Context, installmentId string, body UpdateSplitsRequest) (*UpdateInstallmentSplitsResponse,
		error)
	// RefundById (Estornar parcelamento)
	//
	// É possível estornar um parcelamento via cartão de crédito recebido ou confirmado. Como já ocorre no processo de
	// estorno de uma cobrança avulsa por cartão de crédito, o saldo correspondente do parcelamento é debitado de sua
	// conta no Asaas e a cobrança é cancelada no cartão do seu cliente. O cancelamento pode levar até 10 dias úteis
	// para aparecer na fatura de seu cliente.
	//
	// # Resposta: 200
	//
	// InstallmentResponse = not nil
	//
	// Error = nil
	//
	// InstallmentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InstallmentResponse = not nil
	//
	// Error = nil
	//
	// InstallmentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// InstallmentResponse = not nil
	//
	// Error = nil
	//
	// InstallmentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InstallmentResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InstallmentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Estornar parcelamento: https://docs.asaas.com/reference/estornar-parcelamento
	RefundById(ctx context.Context, installmentId string) (*InstallmentResponse, error)
	// DeleteById (Remover parcelamento)
	//
	// Somente é possível remover parcelamentos com cobranças aguardando pagamento ou vencidas e que não possuem
	// processo de antecipação ou de negativação.
	//
	// # Resposta: 200
	//
	// DeleteNumericResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteNumericResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteNumericResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteNumericResponse = not nil
	//
	// Error = nil
	//
	// DeleteNumericResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteNumericResponse = not nil
	//
	// Error = nil
	//
	// DeleteNumericResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteNumericResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteNumericResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover parcelamento: https://docs.asaas.com/reference/remover-parcelamento
	DeleteById(ctx context.Context, installmentId string) (*DeleteNumericResponse, error)
	// GetById (Recuperar um único parcelamento)
	//
	// O identificador único do parcelamento no Asaas pode ser obtido por meio do atributo installment,
	// retornado no momento da criação de uma cobrança parcelada.
	//
	// # Resposta: 200
	//
	// InstallmentResponse = not nil
	//
	// Error = nil
	//
	// InstallmentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InstallmentResponse = not nil
	//
	// Error = nil
	//
	// InstallmentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// InstallmentResponse = not nil
	//
	// Error = nil
	//
	// InstallmentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InstallmentResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InstallmentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar um único parcelamento: https://docs.asaas.com/reference/repurar-um-unico-parcelamento
	GetById(ctx context.Context, installmentId string) (*InstallmentResponse, error)
	// GetPaymentBookById (Gerar carnê de parcelamento)
	//
	// Para gerar os carnês de um parcelamento em formato PDF, é necessário que você tenha o ID do
	// parcelamento retornado pelo Asaas.
	//
	// # Resposta: 200
	//
	// FileTextPlainResponse = not nil
	//
	// Error = nil
	//
	// FileTextPlainResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// FileTextPlainResponse = not nil
	//
	// Error = nil
	//
	// FileTextPlainResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// FileTextPlainResponse = not nil
	//
	// Error = nil
	//
	// FileTextPlainResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo FileTextPlainResponse.Errors preenchido
	// com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// FileTextPlainResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Gerar carnê de parcelamento: https://docs.asaas.com/reference/gerar-carne-de-parcelamento
	GetPaymentBookById(ctx context.Context, installmentId string, filter InstallmentPaymentBookRequest) (
		*FileTextPlainResponse, error)
	// GetAll (Listar parcelamentos)
	//
	// Diferente da recuperação de um parcelamento específico, este método retorna uma lista paginada com
	// todos seus parcelamentos.
	//
	// # Resposta: 200
	//
	// Pageable(InstallmentResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(InstallmentResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(InstallmentResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar parcelamentos: https://docs.asaas.com/reference/listar-parcelamentos
	GetAll(ctx context.Context, filter PageableDefaultRequest) (*Pageable[InstallmentResponse], error)
}

func NewInstallment

func NewInstallment(env Env, accessToken string) Installment

type InstallmentChargebackResponse

type InstallmentChargebackResponse struct {
	Status ChargebackStatus `json:"status,omitempty"`
	Reason ChargebackReason `json:"reason,omitempty"`
}

type InstallmentPaymentBookRequest

type InstallmentPaymentBookRequest struct {
	// Filtrar pelo nome da coluna
	Sort SortPaymentBookField `json:"sort,omitempty"`
	// Ordenação da coluna
	Order Order `json:"order,omitempty"`
}

type InstallmentResponse

type InstallmentResponse struct {
	Id                    string                         `json:"id,omitempty"`
	Customer              string                         `json:"customer,omitempty"`
	Value                 float64                        `json:"value,omitempty"`
	NetValue              float64                        `json:"netValue,omitempty"`
	PaymentValue          float64                        `json:"paymentValue,omitempty"`
	InstallmentCount      int                            `json:"installmentCount,omitempty"`
	BillingType           BillingType                    `json:"billingType,omitempty"`
	PaymentDate           Date                           `json:"paymentDate,omitempty"`
	Description           string                         `json:"description,omitempty"`
	ExpirationDay         int                            `json:"expirationDay,omitempty"`
	Deleted               bool                           `json:"deleted,omitempty"`
	PaymentLink           string                         `json:"paymentLink,omitempty"`
	TransactionReceiptUrl string                         `json:"transactionReceiptUrl,omitempty"`
	Chargeback            *InstallmentChargebackResponse `json:"chargeback,omitempty"`
	DateCreated           Date                           `json:"dateCreated,omitempty"`
	Errors                []ErrorResponse                `json:"errors,omitempty"`
}

func (InstallmentResponse) IsFailure

func (i InstallmentResponse) IsFailure() bool

func (InstallmentResponse) IsNoContent

func (i InstallmentResponse) IsNoContent() bool

func (InstallmentResponse) IsSuccess

func (i InstallmentResponse) IsSuccess() bool

type InterestRequest

type InterestRequest struct {
	// Percentual de juros ao mês sobre o valor da cobrança para pagamento após o vencimento
	Value float64 `json:"value,omitempty"`
}

type InterestResponse

type InterestResponse struct {
	Value float64      `json:"value,omitempty"`
	Type  InterestType `json:"type,omitempty"`
}

type InterestType

type InterestType string
const (
	InterestTypeFixed      InterestType = "FIXED"
	InterestTypePercentage InterestType = "PERCENTAGE"
)

type Invoice

type Invoice interface {
	// Schedule (Agendar nota fiscal)
	//
	// # Resposta: 200
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Agendar nota fiscal: https://docs.asaas.com/reference/agendar-nota-fiscal
	Schedule(ctx context.Context, body ScheduleInvoiceRequest) (*InvoiceResponse, error)
	// AuthorizeById (Emitir uma nota fiscal)
	//
	// Para emitir uma nota fiscal específica é necessário que você tenha o ID que o Asaas retornou no momento
	// da criação dela.
	//
	// # Resposta: 200
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Cancelar uma nota fiscal: https://docs.asaas.com/reference/emitir-uma-nota-fiscal
	AuthorizeById(ctx context.Context, invoiceId string) (*InvoiceResponse, error)
	// CancelById (Cancelar uma nota fiscal)
	//
	// Para cancelar uma nota fiscal específica é necessário que você tenha o ID que o Asaas retornou no momento
	// da criação dela.
	//
	// # Resposta: 200
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Cancelar uma nota fiscal: https://docs.asaas.com/reference/cancelar-uma-nota-fiscal
	CancelById(ctx context.Context, invoiceId string) (*InvoiceResponse, error)
	// UpdateById (Atualizar nota fiscal)
	//
	// É possível atualizar notas fiscais que ainda não tenham sido emitidas, ou seja, estão
	// com status InvoiceStatusScheduled ou InvoiceStatusError.
	//
	// # Resposta: 200
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar nota fiscal: https://docs.asaas.com/reference/atualizar-nota-fiscal
	UpdateById(ctx context.Context, invoiceId string, body UpdateInvoiceRequest) (*InvoiceResponse, error)
	// GetById (Recuperar uma nota fiscal)
	//
	// # Resposta: 200
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// InvoiceResponse = not nil
	//
	// Error = nil
	//
	// InvoiceResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma nota fiscal: https://docs.asaas.com/reference/recuperar-uma-nota-fiscal
	GetById(ctx context.Context, invoiceId string) (*InvoiceResponse, error)
	// GetAll (Listar notas fiscais)
	//
	// Diferente da recuperação de uma nota fiscal específica, este método retorna uma lista paginada com todas as notas
	// fiscais para os filtros informados.
	//
	// # Resposta: 200
	//
	// Pageable(InvoiceResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(InvoiceResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(InvoiceResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar notas fiscais: https://docs.asaas.com/reference/listar-notas-fiscais
	GetAll(ctx context.Context, filter GetAllInvoicesRequest) (*Pageable[InvoiceResponse], error)
}

func NewInvoice

func NewInvoice(env Env, accessToken string) Invoice

type InvoiceCustomizationResponse

type InvoiceCustomizationResponse struct {
	LogoUrl             string          `json:"logoFile,omitempty"`
	LogoBackgroundColor string          `json:"logoBackgroundColor,omitempty"`
	InfoBackgroundColor string          `json:"infoBackgroundColor,omitempty"`
	FontColor           string          `json:"fontColor,omitempty"`
	Enabled             bool            `json:"enabled,omitempty"`
	Status              string          `json:"status,omitempty"`
	Observations        string          `json:"observations,omitempty"`
	Errors              []ErrorResponse `json:"errors,omitempty"`
}

func (InvoiceCustomizationResponse) IsFailure

func (i InvoiceCustomizationResponse) IsFailure() bool

func (InvoiceCustomizationResponse) IsNoContent

func (i InvoiceCustomizationResponse) IsNoContent() bool

func (InvoiceCustomizationResponse) IsSuccess

func (i InvoiceCustomizationResponse) IsSuccess() bool

type InvoiceDaysBeforeDueDate

type InvoiceDaysBeforeDueDate int
const (
	InvoiceDaysBeforeDuedateFive    InvoiceDaysBeforeDueDate = 5
	InvoiceDaysBeforeDuedateTen     InvoiceDaysBeforeDueDate = 10
	InvoiceDaysBeforeDuedateFifteen InvoiceDaysBeforeDueDate = 15
	InvoiceDaysBeforeDuedateThirty  InvoiceDaysBeforeDueDate = 30
	InvoiceDaysBeforeDuedateSixty   InvoiceDaysBeforeDueDate = 60
)

type InvoiceResponse

type InvoiceResponse struct {
	Id                        string                `json:"id,omitempty"`
	Payment                   string                `json:"payment,omitempty"`
	Installment               string                `json:"installment,omitempty"`
	Customer                  string                `json:"customer,omitempty"`
	Status                    InvoiceStatus         `json:"status,omitempty"`
	Type                      string                `json:"type,omitempty"`
	StatusDescription         string                `json:"statusDescription,omitempty"`
	ServiceDescription        string                `json:"serviceDescription,omitempty"`
	PdfUrl                    string                `json:"pdfUrl,omitempty"`
	XmlUrl                    string                `json:"xmlUrl,omitempty"`
	RpsSerie                  string                `json:"rpsSerie,omitempty"`
	RpsNumber                 string                `json:"rpsNumber,omitempty"`
	Number                    string                `json:"number,omitempty"`
	ValidationCode            string                `json:"validationCode,omitempty"`
	Value                     float64               `json:"value,omitempty"`
	Deductions                float64               `json:"deductions,omitempty"`
	EffectiveDate             Date                  `json:"effectiveDate,omitempty"`
	Observations              string                `json:"observations,omitempty"`
	EstimatedTaxesDescription string                `json:"estimatedTaxesDescription,omitempty"`
	ExternalReference         string                `json:"externalReference,omitempty"`
	Taxes                     *InvoiceTaxesResponse `json:"taxes,omitempty"`
	MunicipalServiceId        string                `json:"municipalServiceId,omitempty"`
	MunicipalServiceCode      string                `json:"municipalServiceCode,omitempty"`
	MunicipalServiceName      string                `json:"municipalServiceName,omitempty"`
	Errors                    []ErrorResponse       `json:"errors,omitempty"`
}

func (InvoiceResponse) IsFailure

func (i InvoiceResponse) IsFailure() bool

func (InvoiceResponse) IsNoContent

func (i InvoiceResponse) IsNoContent() bool

func (InvoiceResponse) IsSuccess

func (i InvoiceResponse) IsSuccess() bool

type InvoiceSettingResponse

type InvoiceSettingResponse struct {
	MunicipalServiceId    string                `json:"municipalServiceId,omitempty"`
	MunicipalServiceCode  string                `json:"municipalServiceCode,omitempty"`
	MunicipalServiceName  string                `json:"municipalServiceName,omitempty"`
	Deductions            float64               `json:"deductions,omitempty"`
	InvoiceCreationPeriod string                `json:"invoiceCreationPeriod,omitempty"`
	DaysBeforeDueDate     int                   `json:"daysBeforeDueDate,omitempty"`
	ReceivedOnly          bool                  `json:"receivedOnly,omitempty"`
	Observations          string                `json:"observations,omitempty"`
	Taxes                 *InvoiceTaxesResponse `json:"taxes,omitempty"`
	Errors                []ErrorResponse       `json:"errors,omitempty"`
}

func (InvoiceSettingResponse) IsFailure

func (i InvoiceSettingResponse) IsFailure() bool

func (InvoiceSettingResponse) IsNoContent

func (i InvoiceSettingResponse) IsNoContent() bool

func (InvoiceSettingResponse) IsSuccess

func (i InvoiceSettingResponse) IsSuccess() bool

type InvoiceStatus

type InvoiceStatus string
const (
	InvoiceStatusScheduled              InvoiceStatus = "SCHEDULED"
	InvoiceStatusSynchronized           InvoiceStatus = "SYNCHRONIZED"
	InvoiceStatusAuthorized             InvoiceStatus = "AUTHORIZED"
	InvoiceStatusProcessingCancellation InvoiceStatus = "PROCESSING_CANCELLATION"
	InvoiceStatusCanceled               InvoiceStatus = "CANCELED"
	InvoiceStatusCancellationDenied     InvoiceStatus = "CANCELLATION_DENIED"
	InvoiceStatusError                  InvoiceStatus = "ERROR"
)

type InvoiceTaxesRequest

type InvoiceTaxesRequest struct {
	// Tomador da nota fiscal deve reter ISS ou não
	RetainIss bool `json:"retainIss"`
	// Alíquota ISS (REQUIRED)
	Iss float64 `json:"iss"`
	// Alíquota COFINS (REQUIRED)
	Confins float64 `json:"cofins"`
	// Alíquota CSLL (REQUIRED)
	Csll float64 `json:"csll"`
	// Alíquota INSS (REQUIRED)
	Inss float64 `json:"inss"`
	// Alíquota IR (REQUIRED)
	Ir float64 `json:"ir"`
	// Alíquota PIS (REQUIRED)
	Pis float64 `json:"pis"`
}

type InvoiceTaxesResponse

type InvoiceTaxesResponse struct {
	RetainIss bool    `json:"retainIss"`
	Iss       float64 `json:"iss"`
	Confins   float64 `json:"cofins"`
	Csll      float64 `json:"csll"`
	Inss      float64 `json:"inss"`
	Ir        float64 `json:"ir"`
	Pis       float64 `json:"pis"`
}

type MobilePhone

type MobilePhone interface {
	// Recharge (Solicitar recarga)
	//
	// # Resposta: 200
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo MobilePhoneRechargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// MobilePhoneRechargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Solicitar recarga: https://docs.asaas.com/reference/solicitar-recarga
	Recharge(ctx context.Context, body MobilePhoneRechargeRequest) (*MobilePhoneRechargeResponse, error)
	// CancelRechargeById (Cancelar uma recarga de celular)
	//
	// Permite o cancelamento da recarga de celular. Utilize a propriedade MobilePhoneRechargeResponse.CanBeCancelled
	// para verificar se a recarga pode ser cancelada.
	//
	// Ao ser cancelado a recarga não será realizada.
	//
	// # Resposta: 200
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo MobilePhoneRechargeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// MobilePhoneRechargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Cancelar uma recarga de celular: https://docs.asaas.com/reference/cancelar-uma-recarga-de-celular
	CancelRechargeById(ctx context.Context, rechargeId string) (*MobilePhoneRechargeResponse, error)
	// GetRechargeById (Recuperar uma única recarga de celular)
	//
	// Para recuperar uma recarga de celular em específico é necessário que você tenha o ID que o Asaas retornou no
	// momento da sua criação.
	//
	// # Resposta: 200
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// MobilePhoneRechargeResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneRechargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo MobilePhoneRechargeResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// MobilePhoneRechargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única recarga de celular: https://docs.asaas.com/reference/recuperar-uma-unica-recarga-de-celular
	GetRechargeById(ctx context.Context, rechargeId string) (*MobilePhoneRechargeResponse, error)
	// GetProviderByPhoneNumber (Buscar qual provedor o número pertence e os valores disponíveis para recarga)
	//
	// # Resposta: 200
	//
	// MobilePhoneProviderResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneProviderResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// MobilePhoneProviderResponse = not nil
	//
	// Error = nil
	//
	// MobilePhoneProviderResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo MobilePhoneProviderResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// MobilePhoneProviderResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// https://docs.asaas.com/reference/buscar-qual-provedor-o-numero-pertence-e-os-valores-disponiveis-para-recarga
	GetProviderByPhoneNumber(ctx context.Context, phoneNumber string) (*MobilePhoneProviderResponse, error)
	// GetAllRecharges (Listar recargas de celular)
	//
	// Diferente da recuperação de uma recarga de celular em específico, este método retorna uma lista paginada
	// com todas as recargas.
	//
	// # Resposta: 200
	//
	// Pageable(MobilePhoneRechargeResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(MobilePhoneRechargeResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(MobilePhoneRechargeResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar recargas de celular: https://docs.asaas.com/reference/listar-recargas-de-celular
	GetAllRecharges(ctx context.Context, filter PageableDefaultRequest) (*Pageable[MobilePhoneRechargeResponse], error)
}

func NewMobilePhone

func NewMobilePhone(env Env, accessToken string) MobilePhone

type MobilePhoneProviderResponse

type MobilePhoneProviderResponse struct {
	Name   string                             `json:"name,omitempty"`
	Values []MobilePhoneProviderValueResponse `json:"values,omitempty"`
	Errors []ErrorResponse                    `json:"errors,omitempty"`
}

func (MobilePhoneProviderResponse) IsFailure

func (m MobilePhoneProviderResponse) IsFailure() bool

func (MobilePhoneProviderResponse) IsNoContent

func (m MobilePhoneProviderResponse) IsNoContent() bool

func (MobilePhoneProviderResponse) IsSuccess

func (m MobilePhoneProviderResponse) IsSuccess() bool

type MobilePhoneProviderValueResponse

type MobilePhoneProviderValueResponse struct {
	Name        string  `json:"name,omitempty"`
	Description string  `json:"description,omitempty"`
	Bonus       string  `json:"bonus,omitempty"`
	MinValue    float64 `json:"minValue,omitempty"`
	MaxValue    float64 `json:"maxValue,omitempty"`
}

type MobilePhoneRechargeRequest

type MobilePhoneRechargeRequest struct {
	// Número do celular (REQUIRED)
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// Valor da recarga (REQUIRED)
	Value float64 `json:"value,omitempty"`
}

type MobilePhoneRechargeResponse

type MobilePhoneRechargeResponse struct {
	Id             string                    `json:"id,omitempty"`
	PhoneNumber    string                    `json:"phoneNumber,omitempty"`
	Value          float64                   `json:"value,omitempty"`
	Status         MobilePhoneRechargeStatus `json:"status,omitempty"`
	CanBeCancelled bool                      `json:"canBeCancelled,omitempty"`
	OperatorName   string                    `json:"operatorName,omitempty"`
	Errors         []ErrorResponse           `json:"errors,omitempty"`
}

func (MobilePhoneRechargeResponse) IsFailure

func (m MobilePhoneRechargeResponse) IsFailure() bool

func (MobilePhoneRechargeResponse) IsNoContent

func (m MobilePhoneRechargeResponse) IsNoContent() bool

func (MobilePhoneRechargeResponse) IsSuccess

func (m MobilePhoneRechargeResponse) IsSuccess() bool

type MobilePhoneRechargeStatus

type MobilePhoneRechargeStatus string
const (
	MobilePhoneRechargeStatusWaitingCriticalAction MobilePhoneRechargeStatus = "WAITING_CRITICAL_ACTION"
	MobilePhoneRechargeStatusPending               MobilePhoneRechargeStatus = "PENDING"
	MobilePhoneRechargeStatusConfirmed             MobilePhoneRechargeStatus = "CONFIRMED"
	MobilePhoneRechargeStatusCancelled             MobilePhoneRechargeStatus = "CANCELLED"
)

type MunicipalSettingsResponse

type MunicipalSettingsResponse struct {
	AuthenticationType       string                     `json:"authenticationType,omitempty"`
	SupportsCancellation     bool                       `json:"supportsCancellation,omitempty"`
	UsesSpecialTaxRegimes    bool                       `json:"usesSpecialTaxRegimes,omitempty"`
	UsesServiceListItem      bool                       `json:"usesServiceListItem,omitempty"`
	SpecialTaxRegimesList    []SpecialTaxRegimeResponse `json:"specialTaxRegimesList,omitempty"`
	MunicipalInscriptionHelp string                     `json:"municipalInscriptionHelp,omitempty"`
	SpecialTaxRegimeHelp     string                     `json:"specialTaxRegimeHelp,omitempty"`
	ServiceListItemHelp      string                     `json:"serviceListItemHelp,omitempty"`
	DigitalCertificatedHelp  string                     `json:"digitalCertificatedHelp,omitempty"`
	AccessTokenHelp          string                     `json:"accessTokenHelp,omitempty"`
	MunicipalServiceCodeHelp string                     `json:"municipalServiceCodeHelp,omitempty"`
	Errors                   []ErrorResponse            `json:"errors,omitempty"`
}

func (MunicipalSettingsResponse) IsFailure

func (f MunicipalSettingsResponse) IsFailure() bool

func (MunicipalSettingsResponse) IsNoContent

func (f MunicipalSettingsResponse) IsNoContent() bool

func (MunicipalSettingsResponse) IsSuccess

func (f MunicipalSettingsResponse) IsSuccess() bool

type Negativity

type Negativity interface {
	// Create (Criar uma negativação)
	//
	// Possibilita criar uma negativação a partir de uma cobrança. Para ser possível criar uma negativação, antes é
	// necessário entrar em contato com o seu gerente de conta Asaas e solicitar a permissão de criar negativações via API.
	//
	// # Resposta: 200
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo NegativityResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// NegativityResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar uma negativação: https://docs.asaas.com/reference/criar-uma-negativacao
	Create(ctx context.Context, body CreateNegativityRequest) (*NegativityResponse, error)
	// Simulate (Simular uma negativação)
	//
	// Possibilita a simulação da taxa cobrada, valor a ser recuperado e data prevista de início da negativação.
	//
	// # Resposta: 200
	//
	// NegativitySimulateResponse = not nil
	//
	// Error = nil
	//
	// NegativitySimulateResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// NegativitySimulateResponse = not nil
	//
	// Error = nil
	//
	// NegativitySimulateResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// NegativitySimulateResponse = not nil
	//
	// Error = nil
	//
	// NegativitySimulateResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo NegativitySimulateResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// NegativitySimulateResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Simular uma negativação: https://docs.asaas.com/reference/simular-uma-negativacao
	Simulate(ctx context.Context, chargeId string) (*NegativitySimulateResponse, error)
	// ResendDocumentsById (Reenviar documentos)
	//
	// Permite o reenvio dos documentos de uma negativação em caso de negação. Utilize a propriedade
	// NegativityResponse.IsNecessaryResendDocumentation retornado no objeto de negativação para verificar se é preciso o
	// reenvio da documentação.
	//
	// Após o reenvio sua negativação retornará para o status de NegativityStatusAwaitingApproval.
	//
	// # Resposta: 200
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo NegativityResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// NegativityResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Reenviar documentos: https://docs.asaas.com/reference/reenviar-documentos
	ResendDocumentsById(ctx context.Context, negativityId string, body NegativityResendDocumentsRequest) (
		*NegativityResponse, error)
	// CancelById (Cancelar negativação)
	//
	// Permite o cancelamento de uma negativação. Utilize a propriedade NegativityResponse.CanBeCancelled retornado
	// no objeto de negativação para verificar se a negativação pode ser cancelada.
	//
	// Caso a negativação já tenha sido iniciada, ao solicitar o cancelamento a negativação ficará com o status
	// de NegativityStatusAwaitingCancellation até que seja efetivamente cancelada (NegativityStatusCancelled).
	//
	// # Resposta: 200
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// NegativityResponse = not nil
	//
	// Error = nil
	//
	// NegativityResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo NegativityResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// NegativityResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	//Cancelar negativação: https://docs.asaas.com/reference/cancelar-negativacao
	CancelById(ctx context.Context, negativityId string) (*NegativityResponse, error)
	// GetById (Recuperar uma única cobrança)
	//
	// Para recuperar uma cobrança específica é necessário que você tenha o ID que o Asaas retornou no momento da
	// criação dela.
	//
	// # Resposta: 200
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// ChargeResponse = not nil
	//
	// Error = nil
	//
	// ChargeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo ChargeResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// ChargeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única cobrança: https://docs.asaas.com/reference/recuperar-uma-unica-cobranca
	GetById(ctx context.Context, negativityId string) (*NegativityResponse, error)
	// GetAll (Listar negativações)
	//
	// Diferente da recuperação de uma negativação específica, este método retorna uma lista paginada
	// com todas as negativações da conta.
	//
	// # Resposta: 200
	//
	// Pageable(NegativityResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(NegativityResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(NegativityResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar cobranças: https://docs.asaas.com/reference/listar-cobrancas
	GetAll(ctx context.Context, filter GetAllNegativitiesRequest) (*Pageable[NegativityResponse], error)
	// GetHistoryById (Listar histórico de eventos)
	//
	// Retorna uma lista paginada com os eventos que ocorreram desde do início da negativação da cobrança.
	//
	// # Resposta: 200
	//
	// Pageable(NegativityHistoryResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(NegativityHistoryResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(NegativityHistoryResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listas histórico de eventos: https://docs.asaas.com/reference/listas-historico-de-eventos
	GetHistoryById(ctx context.Context, negativityId string, filter PageableDefaultRequest) (
		*Pageable[NegativityHistoryResponse], error)
	// GetPaymentsById (Listar pagamentos recebidos)
	//
	// Retorna uma lista paginada com os pagamentos recebidos por meio da renegociação da dívida.
	//
	// # Resposta: 200
	//
	// Pageable(NegativityPaymentsResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(NegativityPaymentsResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(NegativityPaymentsResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar pagamentos recebidos: https://docs.asaas.com/reference/listar-pagamentos-recebidos
	GetPaymentsById(ctx context.Context, negativityId string, filter PageableDefaultRequest) (
		*Pageable[NegativityPaymentsResponse], error)
	// GetChargesAvailableForDunning (Listar cobranças disponíveis para negativação)
	//
	// Retorna uma lista paginada de cobranças possíveis de negativação em conjunto com uma simulação
	// de valores para cada tipo de negativação.
	//
	// # Resposta: 200
	//
	// Pageable(ChargesAvailableForDunningResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(ChargesAvailableForDunningResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(ChargesAvailableForDunningResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar cobranças disponíveis para negativação: https://docs.asaas.com/reference/listar-cobrancas-disponiveis-para-negativacao
	GetChargesAvailableForDunning(ctx context.Context, filter PageableDefaultRequest) (
		*Pageable[ChargesAvailableForDunningResponse], error)
}

func NewNegativity

func NewNegativity(env Env, accessToken string) Negativity

type NegativityHistoryResponse

type NegativityHistoryResponse struct {
	Status      NegativityStatus `json:"status,omitempty"`
	Description string           `json:"description,omitempty"`
	EventDate   Date             `json:"eventDate,omitempty"`
}

type NegativityPaymentsResponse

type NegativityPaymentsResponse struct {
	Value       float64 `json:"value,omitempty"`
	Description string  `json:"description,omitempty"`
	PaymentDate Date    `json:"paymentDate,omitempty"`
}

type NegativityResendDocumentsRequest

type NegativityResendDocumentsRequest struct {
	// Nota fiscal e/ou contrato com firma reconhecida em cartório (REQUIRED)
	Documents *os.File `json:"documents,omitempty"`
}

type NegativityResponse

type NegativityResponse struct {
	Id                             string           `json:"id,omitempty"`
	Payment                        string           `json:"payment,omitempty"`
	DunningNumber                  int              `json:"dunningNumber,omitempty"`
	Type                           NegativityType   `json:"type,omitempty"`
	Status                         NegativityStatus `json:"status,omitempty"`
	RequestDate                    Date             `json:"requestDate,omitempty"`
	Description                    string           `json:"description,omitempty"`
	Value                          float64          `json:"value,omitempty"`
	FeeValue                       float64          `json:"feeValue,omitempty"`
	NetValue                       float64          `json:"netValue,omitempty"`
	ReceivedInCashFeeValue         float64          `json:"receivedInCashFeeValue,omitempty"`
	CancellationFeeValue           float64          `json:"cancellationFeeValue,omitempty"`
	DenialReason                   string           `json:"denialReason,omitempty"`
	CanBeCancelled                 bool             `json:"canBeCancelled,omitempty"`
	CannotBeCancelledReason        string           `json:"cannotBeCancelledReason,omitempty"`
	IsNecessaryResendDocumentation bool             `json:"isNecessaryResendDocumentation,omitempty"`
	Errors                         []ErrorResponse  `json:"errors,omitempty"`
}

func (NegativityResponse) IsFailure

func (n NegativityResponse) IsFailure() bool

func (NegativityResponse) IsNoContent

func (n NegativityResponse) IsNoContent() bool

func (NegativityResponse) IsSuccess

func (n NegativityResponse) IsSuccess() bool

type NegativitySimulateResponse

type NegativitySimulateResponse struct {
	Payment         string                             `json:"payment,omitempty"`
	Value           float64                            `json:"value,omitempty"`
	TypeSimulations []NegativityTypeSimulationResponse `json:"typeSimulations,omitempty"`
	Errors          []ErrorResponse                    `json:"errors,omitempty"`
}

func (NegativitySimulateResponse) IsFailure

func (n NegativitySimulateResponse) IsFailure() bool

func (NegativitySimulateResponse) IsNoContent

func (n NegativitySimulateResponse) IsNoContent() bool

func (NegativitySimulateResponse) IsSuccess

func (n NegativitySimulateResponse) IsSuccess() bool

type NegativityStatus

type NegativityStatus string
const (
	NegativityStatusPending              NegativityStatus = "PENDING"
	NegativityStatusAwaitingApproval     NegativityStatus = "AWAITING_APPROVAL"
	NegativityStatusAwaitingCancellation NegativityStatus = "AWAITING_CANCELLATION"
	NegativityStatusProcessed            NegativityStatus = "PROCESSED"
	NegativityStatusPaid                 NegativityStatus = "PAID"
	NegativityStatusPartiallyPaid        NegativityStatus = "PARTIALLY_PAID"
	NegativityStatusDenied               NegativityStatus = "DENIED"
	NegativityStatusCancelled            NegativityStatus = "CANCELLED"
)

type NegativityType

type NegativityType string
const (
	NegativityTypeCreditBureau NegativityType = "CREDIT_BUREAU"
)

type NegativityTypeSimulationResponse

type NegativityTypeSimulationResponse struct {
	Type             NegativityType `json:"type,omitempty"`
	IsAllowed        bool           `json:"isAllowed,omitempty"`
	NotAllowedReason string         `json:"notAllowedReason,omitempty"`
	FeeValue         float64        `json:"feeValue,omitempty"`
	NetValue         float64        `json:"netValue,omitempty"`
	StartDate        Date           `json:"startDate,omitempty"`
}

type Notification

type Notification interface {
	// UpdateById (Atualizar notificação existente)
	//
	// # Resposta: 200
	//
	// NotificationResponse = not nil
	//
	// Error = nil
	//
	// NotificationResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// NotificationResponse = not nil
	//
	// Error = nil
	//
	// NotificationResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// NotificationResponse = not nil
	//
	// Error = nil
	//
	// NotificationResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo NotificationResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// NotificationResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar notificação existente: https://docs.asaas.com/reference/atualizar-notificacao-existente
	UpdateById(ctx context.Context, notificationId string, body UpdateNotificationRequest) (*NotificationResponse, error)
	// UpdateManyByCustomer (Atualizar notificações existentes em lote)
	//
	// É possível personalizar várias notificações, independente do canal de comunicação que utilizar (email, SMS e voz)
	// e quem deve receber a notificação(você e/ou seu cliente) enviando qual o id do cliente e as notificações
	// a serem atualizadas.
	//
	// # Resposta: 200
	//
	// UpdateManyNotificationsResponse = not nil
	//
	// Error = nil
	//
	// UpdateManyNotificationsResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/404/500
	//
	// UpdateManyNotificationsResponse = not nil
	//
	// Error = nil
	//
	// UpdateManyNotificationsResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo UpdateManyNotificationsResponse.Errors
	// preenchido com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição
	// conforme a documentação, diferente disso retornará uma mensagem padrão no index 0 do slice com campo
	// ErrorResponse.Code retornando a descrição status http (Ex: "401 Unauthorized") e no campo
	// ErrorResponse.Description retornará com o valor "response status code not expected".
	//
	// # Error
	//
	// UpdateManyNotificationsResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar notificações existentes em lote: https://docs.asaas.com/reference/atualizar-notificacoes-existentes-em-lote
	UpdateManyByCustomer(ctx context.Context, body UpdateManyNotificationsRequest) (*UpdateManyNotificationsResponse,
		error)
	// GetAllByCustomer (Recuperar notificações de um cliente)
	//
	// # Resposta: 200
	//
	// Pageable(NotificationResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(NotificationResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(NotificationResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar notificações de um cliente: https://docs.asaas.com/reference/recuperar-notificacoes-de-um-cliente
	GetAllByCustomer(ctx context.Context, customerId string) (*Pageable[NotificationResponse], error)
}

func NewNotification

func NewNotification(env Env, accessToken string) Notification

type NotificationEvent

type NotificationEvent string
const (
	NotificationEventPaymentCreated        NotificationEvent = "PAYMENT_CREATED"
	NotificationEventPaymentDuedateWarning NotificationEvent = "PAYMENT_DUEDATE_WARNING"
	NotificationEventPaymentReceived       NotificationEvent = "PAYMENT_RECEIVED"
	NotificationEventSendLinhaDigitavel    NotificationEvent = "SEND_LINHA_DIGITAVEL"
	NotificationEventPaymentOverdue        NotificationEvent = "PAYMENT_OVERDUE"
	NotificationEventPaymentUpdated        NotificationEvent = "PAYMENT_UPDATED"
)

type NotificationResponse

type NotificationResponse struct {
	Id                          string            `json:"id,omitempty"`
	Customer                    string            `json:"customer,omitempty"`
	Enabled                     bool              `json:"enabled,omitempty"`
	EmailEnabledForProvider     bool              `json:"emailEnabledForProvider,omitempty"`
	SmsEnabledForProvider       bool              `json:"smsEnabledForProvider,omitempty"`
	EmailEnabledForCustomer     bool              `json:"emailEnabledForCustomer,omitempty"`
	SmsEnabledForCustomer       bool              `json:"smsEnabledForCustomer,omitempty"`
	PhoneCallEnabledForCustomer bool              `json:"phoneCallEnabledForCustomer,omitempty"`
	WhatsappEnabledForCustomer  bool              `json:"whatsappEnabledForCustomer,omitempty"`
	Event                       NotificationEvent `json:"event,omitempty"`
	ScheduleOffset              int               `json:"scheduleOffset,omitempty"`
	Errors                      []ErrorResponse   `json:"errors,omitempty"`
	Deleted                     bool              `json:"deleted,omitempty"`
}

func (NotificationResponse) IsFailure

func (n NotificationResponse) IsFailure() bool

func (NotificationResponse) IsNoContent

func (n NotificationResponse) IsNoContent() bool

func (NotificationResponse) IsSuccess

func (n NotificationResponse) IsSuccess() bool

type Order

type Order string
const (
	OrderDesc Order = "desc"
	OrderAsc  Order = "asc"
)

type Pageable

type Pageable[T any] struct {
	HasMore    bool            `json:"hasMore"`
	TotalCount int             `json:"totalCount"`
	Limit      int             `json:"limit"`
	Offset     int             `json:"offset"`
	Data       []T             `json:"data"`
	Errors     []ErrorResponse `json:"errors,omitempty"`
}

func (Pageable[T]) IsFailure

func (p Pageable[T]) IsFailure() bool

func (Pageable[T]) IsNoContent

func (p Pageable[T]) IsNoContent() bool

func (Pageable[T]) IsSuccess

func (p Pageable[T]) IsSuccess() bool

type PageableDefaultRequest

type PageableDefaultRequest struct {
	// Elemento inicial da lista
	Offset int `json:"offset,omitempty"`
	// Número de elementos da lista (max: 100)
	Limit int `json:"limit,omitempty"`
}

type PayPixQrCodeRequest

type PayPixQrCodeRequest struct {
	// Payload do QRCode para pagamento (REQUIRED)
	QrCode PixQrCodeRequest `json:"qrCode,omitempty"`
	// Valor a ser pago (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// Descrição do pagamento
	Description string `json:"description,omitempty"`
	// Utilizada para realizar agendamento do pagamento
	ScheduleDate Date `json:"scheduleDate,omitempty"`
}

type PayWithCreditCardRequest

type PayWithCreditCardRequest struct {
	// Informações do cartão de crédito (REQUIRED se CreditCardToken não for informado)
	CreditCard *CreditCardRequest `json:"creditCard,omitempty"`
	// Informações do titular do cartão de crédito (REQUIRED se CreditCardToken não for informado)
	CreditCardHolderInfo *CreditCardHolderInfoRequest `json:"creditCardHolderInfo,omitempty"`
	// Token do cartão de crédito para uso da funcionalidade de tokenização de cartão de crédito. Caso informado, os campos acima não são obrigatórios.
	CreditCardToken string `json:"creditCardToken,omitempty"`
}
type PaymentImageDataLink struct {
	OriginalName string `json:"originalName,omitempty"`
	Size         int    `json:"size,omitempty"`
	Extension    string `json:"extension,omitempty"`
	PreviewUrl   string `json:"previewUrl,omitempty"`
	DownloadUrl  string `json:"downloadUrl,omitempty"`
}
type PaymentLink interface {
	// Create (Criar um link de pagamentos)
	//
	// Caso o seu cliente possa pagar via boleto bancário, será necessário informar o campo
	// CreatePaymentLinkRequest.DueDateLimitDays, que determina a quantidade de dias úteis para a realização do pagamento
	// após a geração do boleto.
	//
	// Se a forma de cobrança for Parcelamento, informe o campo CreatePaymentLinkRequest.MaxInstallmentCount para determinar
	// o limite máximo de parcelas que seu cliente poderá escolher para realizar o pagamento parcelado.
	//
	// Já se a forma de cobrança ser Assinatura, será necessário o envio do campo CreatePaymentLinkRequest.SubscriptionCycle
	// para determinar a periodicidade da geração das cobranças.
	//
	// Você poderá adicionar imagens ao seu link de pagamentos use SendImageById()
	//
	// # Resposta: 200
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar um link de pagamentos: https://docs.asaas.com/reference/criar-um-link-de-pagamentos
	Create(ctx context.Context, body CreatePaymentLinkRequest) (*PaymentLinkResponse, error)
	// SendImageById (Adicionar uma imagem a um link de pagamentos)
	//
	// Permite adicionar imagens ao seu link de pagamentos.
	//
	// # Resposta: 200
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkImageResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkImageResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Adicionar uma imagem a um link de pagamentos: https://docs.asaas.com/reference/adicionar-uma-imagem-a-um-link-de-pagamentos
	SendImageById(ctx context.Context, paymentLinkId string, body SendImagePaymentLinksRequest) (
		*PaymentLinkImageResponse, error)
	// UpdateById (Atualizar um link de pagamentos)
	//
	// Permite a atualização de um link de pagamentos já existente.
	//
	// # Resposta: 200
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar um link de pagamentos: https://docs.asaas.com/reference/atualizar-um-link-de-pagamentos
	UpdateById(ctx context.Context, paymentLinkId string, body UpdatePaymentLinkRequest) (*PaymentLinkResponse, error)
	// UpdateImageAsMainById (Definir imagem principal do link de pagamentos)
	//
	// Permite a alteração da imagem principal do seu link de pagamentos.
	//
	// # Resposta: 200
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkImageResponse.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkImageResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Definir imagem principal do link de pagamentos: https://docs.asaas.com/reference/definir-imagem-principal-do-link-de-pagamentos
	UpdateImageAsMainById(ctx context.Context, paymentLinkId, imageId string) (*PaymentLinkImageResponse, error)
	// DeleteById (Remover um link de pagamentos)
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkImageResponse.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover um link de pagamentos: https://docs.asaas.com/reference/remover-um-link-de-pagamentos
	DeleteById(ctx context.Context, paymentLinkId string) (*DeleteResponse, error)
	// DeleteImageById (Remover uma imagem do link de pagamentos)
	//
	// Permite a remoção de uma imagem do link de pagamentos.
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkImageResponse.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover uma imagem do link de pagamentos: https://docs.asaas.com/reference/remover-uma-imagem-do-link-de-pagamentos
	DeleteImageById(ctx context.Context, paymentLinkId, imageId string) (*DeleteResponse, error)
	// RestoreById (Restaurar um link de pagamentos)
	//
	// Possibilita a restauração de um link de pagamentos removido.
	//
	// # Resposta: 200
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Restaurar um link de pagamentos: https://docs.asaas.com/reference/restaurar-um-link-de-pagamentos
	RestoreById(ctx context.Context, paymentLinkId string) (*PaymentLinkResponse, error)
	// GetById (Recuperar um único link de pagamentos)
	//
	// Para recuperar um link de pagamentos específico é necessário que você tenha o ID que o Asaas retornou
	// no momento da sua criação.
	//
	// # Resposta: 200
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// PaymentLinkResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar um único link de pagamentos: https://docs.asaas.com/reference/recuperar-um-unico-link-de-pagamentos
	GetById(ctx context.Context, paymentLinkId string) (*PaymentLinkResponse, error)
	// GetImageById (Recuperar uma única imagem do link de pagamentos)
	//
	// Para recuperar a imagem de um link de pagamentos específico é necessário que você tenha o ID que o Asaas retornou
	// no momento da criação dele.
	//
	// # Resposta: 200
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// PaymentLinkImageResponse = not nil
	//
	// Error = nil
	//
	// PaymentLinkImageResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PaymentLinkImageResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PaymentLinkImageResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única imagem do link de pagamentos: https://docs.asaas.com/reference/recuperar-uma-unica-imagem-do-link-de-pagamentos
	GetImageById(ctx context.Context, paymentLinkId, imageId string) (*PaymentLinkImageResponse, error)
	// GetAll (Listar links de pagamentos)
	//
	// Diferente da recuperação de um link de pagamentos específico, este método retorna uma lista paginada com todos
	// os links de pagamentos para os filtros informados.
	//
	// # Resposta: 200
	//
	// Pageable(PaymentLinkResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(PaymentLinkResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(PaymentLinkResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar links de pagamentos: https://docs.asaas.com/reference/listar-links-de-pagamentos
	GetAll(ctx context.Context, filter GetAllPaymentLinksRequest) (*Pageable[PaymentLinkResponse], error)
	// GetImagesById (Listar imagens de um link de pagamentos)
	//
	// Este método retorna uma lista paginada com todas as imagens do link de pagamentos informado.
	//
	// # Resposta: 200
	//
	// Pageable(PaymentLinkImageResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(PaymentLinkImageResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(PaymentLinkImageResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar imagens de um link de pagamentos: https://docs.asaas.com/reference/listar-imagens-de-um-link-de-pagamentos
	GetImagesById(ctx context.Context, paymentLinkId string) (*Pageable[PaymentLinkImageResponse], error)
}
func NewPaymentLink(env Env, accessToken string) PaymentLink

type PaymentLinkImageResponse

type PaymentLinkImageResponse struct {
	Id     string               `json:"id,omitempty"`
	Main   bool                 `json:"main,omitempty"`
	Image  PaymentImageDataLink `json:"image,omitempty"`
	Errors []ErrorResponse      `json:"errors,omitempty"`
}

func (PaymentLinkImageResponse) IsFailure

func (p PaymentLinkImageResponse) IsFailure() bool

func (PaymentLinkImageResponse) IsNoContent

func (p PaymentLinkImageResponse) IsNoContent() bool

func (PaymentLinkImageResponse) IsSuccess

func (p PaymentLinkImageResponse) IsSuccess() bool

type PaymentLinkResponse

type PaymentLinkResponse struct {
	Id                  string            `json:"id,omitempty"`
	Name                string            `json:"name,omitempty"`
	Url                 string            `json:"url,omitempty"`
	Active              bool              `json:"active,omitempty"`
	BillingType         BillingType       `json:"billingType,omitempty"`
	ChargeType          ChargeType        `json:"chargeType,omitempty"`
	EndDate             Date              `json:"endDate,omitempty"`
	Value               float64           `json:"value,omitempty"`
	SubscriptionCycle   SubscriptionCycle `json:"subscriptionCycle,omitempty"`
	Description         string            `json:"description,omitempty"`
	MaxInstallmentCount int               `json:"maxInstallmentCount,omitempty"`
	DueDateLimitDays    int               `json:"dueDateLimitDays,omitempty"`
	NotificationEnabled bool              `json:"notificationEnabled,omitempty"`
	Errors              []ErrorResponse   `json:"errors,omitempty"`
}

func (PaymentLinkResponse) IsFailure

func (p PaymentLinkResponse) IsFailure() bool

func (PaymentLinkResponse) IsNoContent

func (p PaymentLinkResponse) IsNoContent() bool

func (PaymentLinkResponse) IsSuccess

func (p PaymentLinkResponse) IsSuccess() bool

type PaymentStatisticResponse

type PaymentStatisticResponse struct {
	Quantity int             `json:"quantity"`
	Value    float64         `json:"value"`
	NetValue float64         `json:"netValue"`
	Errors   []ErrorResponse `json:"errors,omitempty"`
}

func (PaymentStatisticResponse) IsFailure

func (s PaymentStatisticResponse) IsFailure() bool

func (PaymentStatisticResponse) IsNoContent

func (s PaymentStatisticResponse) IsNoContent() bool

func (PaymentStatisticResponse) IsSuccess

func (s PaymentStatisticResponse) IsSuccess() bool

type PersonType

type PersonType string
const (
	PersonTypePhysical  PersonType = "FISICA"
	PersonTypeJuridical PersonType = "JURIDICA"
)

type Pix

type Pix interface {
	// PayQrCode (Pagar um QRCode)
	//
	// # Resposta: 200
	//
	// PixTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixTransactionResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// PixTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixTransactionResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PixTransactionResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PixTransactionResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Pagar um QRCode: https://docs.asaas.com/reference/pagar-um-qrcode
	PayQrCode(ctx context.Context, body PayPixQrCodeRequest) (*PixTransactionResponse, error)
	// DecodeQrCode (Decodificar um QRCode para pagamento)
	//
	//  Permite decodificar um QRCode através de seu payload.
	//
	// # Resposta: 200
	//
	// DecodePixQrCodeResponse = not nil
	//
	// Error = nil
	//
	// DecodePixQrCodeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// DecodePixQrCodeResponse = not nil
	//
	// Error = nil
	//
	// DecodePixQrCodeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DecodePixQrCodeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DecodePixQrCodeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Decodificar um QRCode para pagamento: https://docs.asaas.com/reference/decodificar-um-qrcode-para-pagamento
	DecodeQrCode(ctx context.Context, body PixQrCodeRequest) (*DecodePixQrCodeResponse, error)
	// CancelTransactionById (Cancelar uma transação agendada)
	//
	//  Permite decodificar um QRCode através de seu payload.
	//
	// # Resposta: 200
	//
	// PixCancelTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixCancelTransactionResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// PixCancelTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixCancelTransactionResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PixCancelTransactionResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PixCancelTransactionResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Cancelar uma transação agendada: https://docs.asaas.com/reference/cancelar-uma-transacao-agendada
	CancelTransactionById(ctx context.Context, pixTransactionId string) (*PixCancelTransactionResponse, error)
	// CreateKey (Criar uma chave)
	//
	// Permite a manipulação de chaves aleatórias da sua conta Asaas.
	//
	// # Resposta: 200
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PixKeyResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PixKeyResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar uma chave: https://docs.asaas.com/reference/criar-uma-chave
	CreateKey(ctx context.Context) (*PixKeyResponse, error)
	// CreateStaticKey (Criar QRCode estático)
	//
	// Permite criar um QrCode estático para uma determinada chave. Caso não informado o campo valor, o pagador poderá
	// escolher o valor a ser pago.
	//
	// # Resposta: 200
	//
	// QrCodeResponse = not nil
	//
	// Error = nil
	//
	// QrCodeResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// QrCodeResponse = not nil
	//
	// Error = nil
	//
	// QrCodeResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo QrCodeResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// QrCodeResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar QRCode estático: https://docs.asaas.com/reference/criar-qrcode-estaticoe
	CreateStaticKey(ctx context.Context, body CreatePixKeyStaticRequest) (*QrCodeResponse, error)
	// DeleteKeyById (Remover chave)
	//
	// # Resposta: 200
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// Se PixKeyResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso PixKeyResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PixKeyResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PixKeyResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover chave: https://docs.asaas.com/reference/remover-chave
	DeleteKeyById(ctx context.Context, pixKeyId string) (*PixKeyResponse, error)
	// GetKeyById (Recuperar uma única chave)
	//
	// # Resposta: 200
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// PixKeyResponse = not nil
	//
	// Error = nil
	//
	// PixKeyResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PixKeyResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PixKeyResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única chave: https://docs.asaas.com/reference/recuperar-uma-unica-chave
	GetKeyById(ctx context.Context, pixKeyId string) (*PixKeyResponse, error)
	// GetTransactionById (Recuperar uma única transação)
	//
	// Para recuperar uma transação específica é necessário que você tenha o ID que o Asaas retornou no momento da
	// criação dela.
	//
	// # Resposta: 200
	//
	// PixTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixTransactionResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// PixTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixTransactionResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// PixTransactionResponse = not nil
	//
	// Error = nil
	//
	// PixTransactionResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo PixTransactionResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// PixTransactionResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única transação: https://docs.asaas.com/reference/recuperar-uma-unica-transacao
	GetTransactionById(ctx context.Context, pixTransactionId string) (*PixTransactionResponse, error)
	// GetAllTransactions (Listar transações)
	//
	// # Resposta: 200
	//
	// Pageable(PixTransactionResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(PixTransactionResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(PixTransactionResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar transações: https://docs.asaas.com/reference/listar-transacoes
	GetAllTransactions(ctx context.Context, filter GetAllPixTransactionsRequest) (*Pageable[PixTransactionResponse], error)
	// GetAllKeys (Listar chaves)
	//
	// Podemos listar todas as chaves cadastradas na nossa conta ou somente as que estão em um determinado status.
	//
	// # Resposta: 200
	//
	// Pageable(PixKeyResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(PixKeyResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(PixKeyResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar chaves: https://docs.asaas.com/reference/listar-chaves
	GetAllKeys(ctx context.Context, filter GetAllPixKeysRequest) (*Pageable[PixKeyResponse], error)
}

func NewPix

func NewPix(env Env, accessToken string) Pix

type PixCancelTransactionResponse

type PixCancelTransactionResponse struct {
	Id                    string                      `json:"id,omitempty"`
	Payment               string                      `json:"payment,omitempty"`
	EndToEndIdentifier    string                      `json:"endToEndIdentifier,omitempty"`
	Type                  PixTransactionType          `json:"type,omitempty"`
	Status                PixTransactionStatus        `json:"status,omitempty"`
	Finality              PixTransactionFinality      `json:"finality,omitempty"`
	Value                 float64                     `json:"value,omitempty"`
	ChangeValue           float64                     `json:"changeValue,omitempty"`
	RefundedValue         float64                     `json:"refundedValue,omitempty"`
	EffectiveDate         Date                        `json:"effectiveDate,omitempty"`
	ScheduledDate         Date                        `json:"scheduledDate,omitempty"`
	OriginType            PixTransactionOriginType    `json:"originType,omitempty"`
	Description           string                      `json:"description,omitempty"`
	TransactionReceiptUrl string                      `json:"transactionReceiptUrl,omitempty"`
	RefusalReason         string                      `json:"refusalReason,omitempty"`
	CanBeCanceled         bool                        `json:"canBeCanceled,omitempty"`
	OriginalTransaction   string                      `json:"originalTransaction,omitempty"`
	ExternalAccount       *PixExternalAccountResponse `json:"externalAccount,omitempty"`
	QrCode                string                      `json:"qrCode,omitempty"`
	Errors                []ErrorResponse             `json:"errors,omitempty"`
}

func (PixCancelTransactionResponse) IsFailure

func (p PixCancelTransactionResponse) IsFailure() bool

func (PixCancelTransactionResponse) IsNoContent

func (p PixCancelTransactionResponse) IsNoContent() bool

func (PixCancelTransactionResponse) IsSuccess

func (p PixCancelTransactionResponse) IsSuccess() bool

type PixExternalAccountResponse

type PixExternalAccountResponse struct {
	Ispb           int    `json:"ispb,omitempty"`
	IspbName       string `json:"ispbName,omitempty"`
	Name           string `json:"name,omitempty"`
	CpfCnpj        string `json:"cpfCnpj,omitempty"`
	AddressKey     string `json:"addressKey,omitempty"`
	AddressKeyType string `json:"addressKeyType,omitempty"`
}

type PixKeyQrCodeResponse

type PixKeyQrCodeResponse struct {
	EncodedImage string `json:"encodedImage,omitempty"`
	Payload      string `json:"payload,omitempty"`
}

type PixKeyResponse

type PixKeyResponse struct {
	Id                    string                `json:"id,omitempty"`
	Key                   string                `json:"key,omitempty"`
	Type                  PixKeyType            `json:"type,omitempty"`
	Status                PixKeyStatus          `json:"status,omitempty"`
	CanBeDeleted          bool                  `json:"canBeDeleted,omitempty"`
	CannotBeDeletedReason string                `json:"cannotBeDeletedReason,omitempty"`
	QrCode                *PixKeyQrCodeResponse `json:"qrCode,omitempty"`
	Errors                []ErrorResponse       `json:"errors,omitempty"`
	DateCreated           Date                  `json:"dateCreated,omitempty"`
}

func (PixKeyResponse) IsFailure

func (p PixKeyResponse) IsFailure() bool

func (PixKeyResponse) IsNoContent

func (p PixKeyResponse) IsNoContent() bool

func (PixKeyResponse) IsSuccess

func (p PixKeyResponse) IsSuccess() bool

type PixKeyStatus

type PixKeyStatus string
const (
	PixKeyStatusAwaitingActivation      PixKeyStatus = "AWAITING_ACTIVATION"
	PixKeyStatusAwaitingActive          PixKeyStatus = "ACTIVE"
	PixKeyStatusAwaitingDeletion        PixKeyStatus = "AWAITING_DELETION"
	PixKeyStatusAwaitingAccountDeletion PixKeyStatus = "AWAITING_ACCOUNT_DELETION"
	PixKeyStatusAwaitingDeleted         PixKeyStatus = "AWAITING_DELETED"
	PixKeyStatusAwaitingError           PixKeyStatus = "AWAITING_ERROR"
)

type PixKeyType

type PixKeyType string
const (
	PixKeyTypeCpf   PixKeyType = "CPF"
	PixKeyTypeCnpj  PixKeyType = "CNPJ"
	PixKeyTypeEmail PixKeyType = "EMAIL"
	PixKeyTypePhone PixKeyType = "PHONE"
	PixKeyTypeEvp   PixKeyType = "EVP"
)

type PixPayerResponse

type PixPayerResponse struct {
	Name    string `json:"name,omitempty"`
	CpfCnpj string `json:"cpfCnpj,omitempty"`
}

type PixQrCodeRequest

type PixQrCodeRequest struct {
	// Payload do QRCode (REQUIRED)
	Payload string `json:"payload,omitempty"`
	// Valor do troco (para QRCode Troco)
	ChangeValue float64 `json:"changeValue,omitempty"`
}

type PixQrCodeResponse

type PixQrCodeResponse struct {
	Payer                  *PixPayerResponse `json:"payer,omitempty"`
	ConciliationIdentifier string            `json:"conciliationIdentifier,omitempty"`
	OriginalValue          float64           `json:"originalValue,omitempty"`
	DueDate                Date              `json:"dueDate,omitempty"`
	Interest               float64           `json:"interest,omitempty"`
	Fine                   float64           `json:"fine,omitempty"`
	Discount               float64           `json:"discount,omitempty"`
	ExpirationDate         Date              `json:"expirationDate,omitempty"`
}

type PixQrCodeType

type PixQrCodeType string
const (
	PixQrCodeTypeStatic  PixQrCodeType = "STATIC"
	PixQrCodeTypeDynamic PixQrCodeType = "DYNAMIC"
)

type PixReceiverResponse

type PixReceiverResponse struct {
	Ispb        int         `json:"ispb,omitempty"`
	IspbName    string      `json:"ispbName,omitempty"`
	Name        string      `json:"name,omitempty"`
	TradingName string      `json:"tradingName,omitempty"`
	CpfCnpj     string      `json:"cpfCnpj,omitempty"`
	PersonType  PersonType  `json:"personType,omitempty"`
	Agency      string      `json:"agency,omitempty"`
	Account     string      `json:"account,omitempty"`
	AccountType AccountType `json:"accountType,omitempty"`
}

type PixTransactionFinality

type PixTransactionFinality string
const (
	PixTransactionFinalityWithdrawal PixTransactionFinality = "WITHDRAWAL"
	PixTransactionFinalityChange     PixTransactionFinality = "CHANGE"
)

type PixTransactionOriginType

type PixTransactionOriginType string
const (
	PixTransactionOriginManual        PixTransactionOriginType = "MANUAL"
	PixTransactionOriginAddressKey    PixTransactionOriginType = "ADDRESS_KEY"
	PixTransactionOriginStaticQrcode  PixTransactionOriginType = "STATIC_QRCODE"
	PixTransactionOriginDynamicQrcode PixTransactionOriginType = "DYNAMIC_QRCODE"
	PixTransactionOriginExternalDebit PixTransactionOriginType = "EXTERNAL_DEBIT"
)

type PixTransactionResponse

type PixTransactionResponse struct {
	Id                    string                      `json:"id,omitempty"`
	Payment               string                      `json:"payment,omitempty"`
	EndToEndIdentifier    string                      `json:"endToEndIdentifier,omitempty"`
	Type                  PixTransactionType          `json:"type,omitempty"`
	Status                PixTransactionStatus        `json:"status,omitempty"`
	Finality              PixTransactionFinality      `json:"finality,omitempty"`
	Value                 float64                     `json:"value,omitempty"`
	ChangeValue           float64                     `json:"changeValue,omitempty"`
	RefundedValue         float64                     `json:"refundedValue,omitempty"`
	EffectiveDate         Date                        `json:"effectiveDate,omitempty"`
	ScheduledDate         Date                        `json:"scheduledDate,omitempty"`
	OriginType            PixTransactionOriginType    `json:"originType,omitempty"`
	Description           string                      `json:"description,omitempty"`
	TransactionReceiptUrl string                      `json:"transactionReceiptUrl,omitempty"`
	RefusalReason         string                      `json:"refusalReason,omitempty"`
	CanBeCanceled         bool                        `json:"canBeCanceled,omitempty"`
	OriginalTransaction   string                      `json:"originalTransaction,omitempty"`
	ExternalAccount       *PixExternalAccountResponse `json:"externalAccount,omitempty"`
	QrCode                *PixQrCodeResponse          `json:"qrCode,omitempty"`
	Errors                []ErrorResponse             `json:"errors,omitempty"`
}

func (PixTransactionResponse) IsFailure

func (p PixTransactionResponse) IsFailure() bool

func (PixTransactionResponse) IsNoContent

func (p PixTransactionResponse) IsNoContent() bool

func (PixTransactionResponse) IsSuccess

func (p PixTransactionResponse) IsSuccess() bool

type PixTransactionStatus

type PixTransactionStatus string
const (
	PixTransactionStatusAwaitingRequest PixTransactionStatus = "AWAITING_REQUEST"
	PixTransactionStatusDone            PixTransactionStatus = "DONE"
	PixTransactionStatusRequested       PixTransactionStatus = "REQUESTED"
	PixTransactionStatusScheduled       PixTransactionStatus = "SCHEDULED"
	PixTransactionStatusRefused         PixTransactionStatus = "REFUSED"
	PixTransactionStatusError           PixTransactionStatus = "ERROR"
	PixTransactionStatusCancelled       PixTransactionStatus = "CANCELLED"
)

type PixTransactionType

type PixTransactionType string
const (
	PixTransactionTypeDebit                   PixTransactionType = "DEBIT"
	PixTransactionTypeCredit                  PixTransactionType = "CREDIT"
	PixTransactionTypeCreditRefund            PixTransactionType = "CREDIT_REFUND"
	PixTransactionTypeDebitRefund             PixTransactionType = "DEBIT_REFUND"
	PixTransactionTypeDebitRefundCancellation PixTransactionType = "DEBIT_REFUND_CANCELLATION"
)

type QrCodeFormat

type QrCodeFormat string
const (
	QrCodeFormatAll     QrCodeFormat = "ALL"
	QrCodeFormatImage   QrCodeFormat = "IMAGE"
	QrCodeFormatPayload QrCodeFormat = "PAYLOAD"
)

type QrCodeResponse

type QrCodeResponse struct {
	Id                     string          `json:"id,omitempty"`
	EncodedImage           string          `json:"encodedImage,omitempty"`
	Payload                string          `json:"payload,omitempty"`
	AllowsMultiplePayments bool            `json:"allowsMultiplePayments,omitempty"`
	ExpirationDate         Date            `json:"expirationDate,omitempty"`
	Errors                 []ErrorResponse `json:"errors,omitempty"`
}

func (QrCodeResponse) IsFailure

func (q QrCodeResponse) IsFailure() bool

func (QrCodeResponse) IsNoContent

func (q QrCodeResponse) IsNoContent() bool

func (QrCodeResponse) IsSuccess

func (q QrCodeResponse) IsSuccess() bool

type RefundRequest

type RefundRequest struct {
	// Valor a ser estornado. Caso não informado sera utilizado o valor integral da cobrança
	Value float64 `json:"value,omitempty"`
	// Motivo do estorno
	Description string `json:"description,omitempty"`
}

type RefundResponse

type RefundResponse struct {
	Status                RefundStatus `json:"status,omitempty"`
	Value                 float64      `json:"value,omitempty"`
	Description           string       `json:"description,omitempty"`
	TransactionReceiptUrl string       `json:"transactionReceiptUrl,omitempty"`
	DateCreated           Date         `json:"dateCreated,omitempty"`
}

type RefundStatus

type RefundStatus string
const (
	RefundStatusPending   RefundStatus = "PENDING"
	RefundStatusCancelled RefundStatus = "CANCELLED"
	RefundStatusDone      RefundStatus = "DONE"
)

type Request

type Request[T any] interface {
	// contains filtered or unexported methods
}

func NewRequest

func NewRequest[T any](ctx context.Context, env Env, accessToken string) Request[T]

type SaveFiscalInfoRequest

type SaveFiscalInfoRequest struct {
	// Email para notificações de notas fiscais (REQUIRED)
	Email string `json:"email,omitempty"`
	// Inscrição municipal da empresa
	MunicipalInscription *string `json:"municipalInscription,omitempty"`
	// Indica se a empresa é optante pelo simples nacional
	SimplesNacional *bool `json:"simplesNacional,omitempty"`
	// Identifica se a empresa é classificada como incentivador cultural
	CulturalProjectsPromoter *bool `json:"culturalProjectsPromoter,omitempty"`
	// Código CNAE
	Cnae *string `json:"cnae,omitempty"`
	// Identificador do regime especial de tributação. Empresas do simples nacional geralmente optam pelo Microempresa Municipal
	SpecialTaxRegime *string `json:"specialTaxRegime,omitempty"`
	// Item da lista de serviço, conforme http://www.planalto.gov.br/ccivil_03/leis/LCP/Lcp116.htm
	ServiceListItem *string `json:"serviceListItem,omitempty"`
	// Número de Série utilizado pela sua empresa para emissão de notas fiscais. Na maioria das cidades o número de série utilizado é '1' ou 'E'
	RpsSerie *string `json:"rpsSerie,omitempty"`
	// Número do RPS utilizado na última nota fiscal emitida pela sua empresa. Se a sua última NF emitida tem RPS igual a '100', esse campo deve ser preenchido com '101'. Se você nunca emitiu notas fiscais pelo site da sua prefeitura, informe '1' nesse campo
	RpsNumber *int `json:"rpsNumber,omitempty"`
	// Número do Lote utilizado na última nota fiscal emitida pela sua empresa. Se o último lote utilizado na sua prefeitura for '25', esse campo deve ser preenchido com '26'. Informe esse campo apenas se sua prefeitura exigir a utilização de lotes
	LoteNumber *int `json:"loteNumber,omitempty"`
	// Usuário para acesso ao site da prefeitura da sua cidade
	Username *string `json:"username,omitempty"`
	// Senha para acesso ao site da prefeitura
	Password *string `json:"password,omitempty"`
	// Token de acesso ao site da prefeitura (Caso o acesso ao site da sua prefeitura seja através por Token)
	AccessToken *string `json:"accessToken,omitempty"`
	// Arquivo (.pfx ou .p12) do certificado digital da empresa (Caso o acesso ao site da sua prefeitura via certificado digital)
	CertificateFile *os.File `json:"certificateFile,omitempty"`
	// Senha do certificado digital enviado (Caso o acesso ao site da sua prefeitura via certificado digital)
	CertificatePassword *string `json:"certificatePassword,omitempty"`
}

type SaveInvoiceCustomizationRequest

type SaveInvoiceCustomizationRequest struct {
	// Cor de fundo do logo (REQUIRED)
	LogoBackgroundColor string `json:"logoBackgroundColor,omitempty"`
	// Cor de fundo das suas informações (REQUIRED)
	InfoBackgroundColor string `json:"infoBackgroundColor,omitempty"`
	// Cor da fonte das suas informações (REQUIRED)
	FontColor string `json:"fontColor,omitempty"`
	// True para habilitar a personalização
	Enabled bool `json:"enabled"`
	// Logo que aparecerá no topo da fatura
	LogoFile *os.File `json:"logoFile,omitempty"`
}

type SaveWebhookSettingRequest

type SaveWebhookSettingRequest struct {
	// URL que receberá as informações de sincronização (REQUIRED)
	Url string `json:"url,omitempty"`
	// Email para receber as notificações em caso de erros na fila (REQUIRED)
	Email string `json:"email,omitempty"`
	// Versão utilizada da API. Utilize "3" para a versão v3 (REQUIRED)
	ApiVersion string `json:"apiVersion,omitempty"`
	// Habilitar ou não o webhook
	Enabled *bool `json:"enabled"`
	// Situação da fila de sincronização
	Interrupted *bool `json:"interrupted"`
	// Token de autenticação
	AuthToken string `json:"authToken,omitempty"`
}

type ScheduleInvoiceRequest

type ScheduleInvoiceRequest struct {
	// ID da cobrança a ser antecipada (REQUIRED se Installment, Customer não for informado)
	Payment string `json:"payment,omitempty"`
	// ID do parcelamento a ser antecipado (REQUIRED se Payment, Customer não for informado)
	Installment string `json:"installment,omitempty"`
	// Identificador único do cliente no Asaas (REQUIRED se Payment, Installment não for informado)
	Customer string `json:"customer,omitempty"`
	// Descrição dos serviços da nota fiscal (REQUIRED)
	ServiceDescription string `json:"serviceDescription,omitempty"`
	// Observações adicionais da nota fiscal (REQUIRED)
	Observations string `json:"observations,omitempty"`
	// Identificador da nota fiscal no seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
	// Valor (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// Deduções. As deduções não alteram o valor total da nota fiscal, mas alteram a base de cálculo do ISS (REQUIRED)
	Deductions float64 `json:"deductions,omitempty"`
	// Data de emissão da nota fiscal (REQUIRED)
	EffectiveDate Date `json:"effectiveDate,omitempty"`
	// Identificador único do serviço municipal.
	MunicipalServiceId string `json:"municipalServiceId,omitempty"`
	// Código de serviço municipal
	MunicipalServiceCode string `json:"municipalServiceCode,omitempty"`
	// Nome do serviço municipal. Se não for informado, será utilizado o atributo MunicipalServiceCode como nome para identificação.
	MunicipalServiceName string `json:"municipalServiceName,omitempty"`
	// Atualizar o valor da cobrança com os impostos da nota já descontados.
	UpdatePayment bool `json:"updatePayment,omitempty"`
	// Impostos da nota fiscal (REQUIRED)
	Taxes InvoiceTaxesRequest `json:"taxes,omitempty"`
}

type SendImagePaymentLinksRequest

type SendImagePaymentLinksRequest struct {
	// True para ser a imagem principal
	Main bool `json:"main,omitempty"`
	// Imagem a ser enviada
	Image *os.File `json:"image,omitempty"`
}

type SendWhiteLabelDocumentRequest

type SendWhiteLabelDocumentRequest struct {
	// Tipo de documento (REQUIRED)
	Type SubaccountDocumentType `json:"type,omitempty"`
	// Arquivo (REQUIRED)
	DocumentFile *os.File `json:"documentFile,omitempty"`
}

type SortPaymentBookField

type SortPaymentBookField string

type SortSubscriptionField

type SortSubscriptionField string
const (
	SortSubscriptionFieldDateCreated SortSubscriptionField = "dateCreated"
)

type SpecialTaxRegimeResponse

type SpecialTaxRegimeResponse struct {
	Label string `json:"label,omitempty"`
	Value string `json:"value,omitempty"`
}

type SplitRefusalReason

type SplitRefusalReason string
const (
	SplitRefusalReason1 SplitRefusalReason = "RECEIVABLE_UNIT_AFFECTED_BY_EXTERNAL_CONTRACTUAL_EFFECT"
)

type SplitRequest

type SplitRequest struct {
	// Identificador da carteira (retornado no momento da criação da conta) (REQUIRED)
	WalletId string `json:"walletId,omitempty"`
	// Valor fixo a ser transferido para a conta quando a cobrança for recebida
	FixedValue float64 `json:"fixedValue,omitempty"`
	// Percentual sobre o valor líquido da cobrança a ser transferido quando for recebida
	PercentualValue float64 `json:"percentualValue,omitempty"`
	// (Somente parcelamentos). Valor que será feito split referente ao valor total que será parcelado.
	TotalFixedValue float64 `json:"totalFixedValue,omitempty"`
}

type SplitResponse

type SplitResponse struct {
	Id              string             `json:"id,omitempty"`
	WalletId        string             `json:"walletId,omitempty"`
	Status          SplitStatus        `json:"status,omitempty"`
	FixedValue      float64            `json:"fixedValue,omitempty"`
	PercentualValue float64            `json:"percentualValue,omitempty"`
	TotalValue      float64            `json:"totalValue,omitempty"`
	RefusalReason   SplitRefusalReason `json:"refusalReason,omitempty"`
}

type SplitStatisticResponse

type SplitStatisticResponse struct {
	Income  float64         `json:"income"`
	Outcome float64         `json:"outcome"`
	Errors  []ErrorResponse `json:"errors,omitempty"`
}

func (SplitStatisticResponse) IsFailure

func (s SplitStatisticResponse) IsFailure() bool

func (SplitStatisticResponse) IsNoContent

func (s SplitStatisticResponse) IsNoContent() bool

func (SplitStatisticResponse) IsSuccess

func (s SplitStatisticResponse) IsSuccess() bool

type SplitStatus

type SplitStatus string
const (
	SplitStatusPending        SplitStatus = "PENDING"
	SplitStatusAwaitingCredit SplitStatus = "AWAITING_CREDIT"
	SplitStatusCancelled      SplitStatus = "CANCELLED"
	SplitStatusDone           SplitStatus = "DONE"
	SplitStatusRefused        SplitStatus = "REFUSED"
)

type Subaccount

type Subaccount interface {
	// Create (Criar subconta)
	//
	// O objeto de retorno da API conterá a chave de API da subconta criada (SubaccountResponse.ApiKey) além do
	// SubaccountResponse.WalletId para Split de Cobranças ou Transferências.
	//
	// A chave de API (SubaccountResponse.ApiKey) será devolvida uma única vez, na resposta da chamada de criação
	// da subconta Asaas, portanto, assegure-se de gravar a informação nesse momento.
	// Caso não tenha realizado o armazenamento, entre em contato com nosso Suporte Técnico.
	//
	// # Resposta: 200
	//
	// SubaccountResponse = not nil
	//
	// Error = nil
	//
	// SubaccountResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// SubaccountResponse = not nil
	//
	// Error = nil
	//
	// SubaccountResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubaccountResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubaccountResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar subconta: https://docs.asaas.com/reference/criar-subconta
	Create(ctx context.Context, body CreateSubaccountRequest) (*SubaccountResponse, error)
	// SendWhiteLabelDocument (Enviar documentos via API)
	//
	// Quando houver o atributo onboardingUrl no objeto do documento, ele deverá ser enviado via link externo.
	// Não será aceito o envio via POST nesses casos.
	//
	// # Resposta: 200
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubaccountDocumentSentResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubaccountDocumentSentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Enviar documentos via API: https://docs.asaas.com/reference/enviar-documentos-via-api
	SendWhiteLabelDocument(ctx context.Context, documentId string, body SendWhiteLabelDocumentRequest) (
		*SubaccountDocumentSentResponse, error)
	// UpdateWhiteLabelDocumentSentById (Atualizar documento enviado)
	//
	// # Resposta: 200
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubaccountDocumentSentResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubaccountDocumentSentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar documento enviado: https://docs.asaas.com/reference/atualizar-documento-enviado
	UpdateWhiteLabelDocumentSentById(ctx context.Context, documentSentId string, body UpdateWhiteLabelDocumentSentRequest) (
		*SubaccountDocumentSentResponse, error)
	// DeleteWhiteLabelDocumentSentById (Remover documento enviado)
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover documento enviado: https://docs.asaas.com/reference/remover-documento-enviado
	DeleteWhiteLabelDocumentSentById(ctx context.Context, documentSentId string) (*DeleteResponse, error)
	// GetById (Recuperar uma única subconta)
	//
	// # Resposta: 200
	//
	// SubaccountResponse = not nil
	//
	// Error = nil
	//
	// SubaccountResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// SubaccountResponse = not nil
	//
	// Error = nil
	//
	// SubaccountResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// SubaccountResponse = not nil
	//
	// Error = nil
	//
	// SubaccountResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubaccountResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubaccountResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única subconta: https://docs.asaas.com/reference/recuperar-uma-unica-subconta
	GetById(ctx context.Context, subaccountId string) (*SubaccountResponse, error)
	// GetDocumentSentById (Visualizar documento enviado)
	//
	// # Resposta: 200
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// SubaccountDocumentSentResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentSentResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubaccountDocumentSentResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubaccountDocumentSentResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Visualizar documento enviado: https://docs.asaas.com/reference/visualizar-documento-enviado
	GetDocumentSentById(ctx context.Context, documentSentId string) (*SubaccountDocumentSentResponse, error)
	// GetAll (Listar subcontas)
	//
	// # Resposta: 200
	//
	// Pageable(SubaccountResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(SubaccountResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(SubaccountResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar subcontas: https://docs.asaas.com/reference/listar-subcontas
	GetAll(ctx context.Context, filter GetAllSubaccountsRequest) (*Pageable[SubaccountResponse], error)
	// GetPendingDocuments (Verificar documentos pendentes)
	//
	// Para recuperar os documentos pendentes e ter acesso ao onboardingUrl dos mesmos.
	//
	// # Resposta: 200
	//
	// SubaccountDocumentsResponse = not nil
	//
	// Error = nil
	//
	// Se SubaccountDocumentsResponse.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se SubaccountDocumentsResponse.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// SubaccountDocumentsResponse.IsNoContent() = true
	//
	// SubaccountDocumentsResponse.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// SubaccountDocumentsResponse = not nil
	//
	// Error = nil
	//
	// SubaccountDocumentsResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubaccountDocumentsResponse.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubaccountDocumentsResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Verificar documentos pendentes: https://docs.asaas.com/reference/verificar-documentos-pendentes
	GetPendingDocuments(ctx context.Context) (*SubaccountDocumentsResponse, error)
}

func NewSubaccount

func NewSubaccount(env Env, accessToken string) Subaccount

type SubaccountDocumentResponse

type SubaccountDocumentResponse struct {
	Id          string                      `json:"id,omitempty"`
	Status      SubaccountDocumentStatus    `json:"status,omitempty"`
	Type        SubaccountDocumentType      `json:"type,omitempty"`
	Title       string                      `json:"title,omitempty"`
	Description string                      `json:"description,omitempty"`
	Responsible DocumentResponsibleResponse `json:"responsible,omitempty"`
	Documents   []any                       `json:"documents,omitempty"`
}

type SubaccountDocumentSentResponse

type SubaccountDocumentSentResponse struct {
	Id     string                   `json:"id,omitempty"`
	Status SubaccountDocumentStatus `json:"status,omitempty"`
	Errors []ErrorResponse          `json:"errors,omitempty"`
}

func (SubaccountDocumentSentResponse) IsFailure

func (s SubaccountDocumentSentResponse) IsFailure() bool

func (SubaccountDocumentSentResponse) IsNoContent

func (s SubaccountDocumentSentResponse) IsNoContent() bool

func (SubaccountDocumentSentResponse) IsSuccess

func (s SubaccountDocumentSentResponse) IsSuccess() bool

type SubaccountDocumentStatus

type SubaccountDocumentStatus string
const (
	SubaccountDocumentStatusNotSent  SubaccountDocumentStatus = "NOT_SENT"
	SubaccountDocumentStatusPending  SubaccountDocumentStatus = "PENDING"
	SubaccountDocumentStatusApproved SubaccountDocumentStatus = "APPROVED"
	SubaccountDocumentStatusRejected SubaccountDocumentStatus = "REJECTED"
)

type SubaccountDocumentType

type SubaccountDocumentType string
const (
	SubaccountDocumentTypeIdentification          SubaccountDocumentType = "IDENTIFICATION"
	SubaccountDocumentTypeSocialContract          SubaccountDocumentType = "SOCIAL_CONTRACT"
	SubaccountDocumentTypeEntrepreneurRequirement SubaccountDocumentType = "ENTREPRENEUR_REQUIREMENT"
	SubaccountDocumentTypeMinutesOfElection       SubaccountDocumentType = "MINUTES_OF_ELECTION"
	SubaccountDocumentTypeCustom                  SubaccountDocumentType = "CUSTOM"
)

type SubaccountDocumentsResponse

type SubaccountDocumentsResponse struct {
	RejectReasons string                       `json:"rejectReasons,omitempty"`
	Data          []SubaccountDocumentResponse `json:"data,omitempty"`
	Errors        []ErrorResponse              `json:"errors,omitempty"`
}

func (SubaccountDocumentsResponse) IsFailure

func (s SubaccountDocumentsResponse) IsFailure() bool

func (SubaccountDocumentsResponse) IsNoContent

func (s SubaccountDocumentsResponse) IsNoContent() bool

func (SubaccountDocumentsResponse) IsSuccess

func (s SubaccountDocumentsResponse) IsSuccess() bool

type SubaccountResponse

type SubaccountResponse struct {
	Id            string                  `json:"id,omitempty"`
	Name          string                  `json:"name,omitempty"`
	PersonType    PersonType              `json:"personType,omitempty"`
	Email         string                  `json:"email,omitempty"`
	LoginEmail    string                  `json:"loginEmail,omitempty"`
	CpfCnpj       string                  `json:"cpfCnpj,omitempty"`
	BirthDate     Date                    `json:"birthDate,omitempty"`
	CompanyType   CompanyType             `json:"companyType,omitempty"`
	Phone         string                  `json:"phone,omitempty"`
	MobilePhone   string                  `json:"mobilePhone,omitempty"`
	Site          string                  `json:"site,omitempty"`
	Address       string                  `json:"address,omitempty"`
	AddressNumber string                  `json:"addressNumber,omitempty"`
	Complement    string                  `json:"complement,omitempty"`
	Province      string                  `json:"province,omitempty"`
	PostalCode    string                  `json:"postalCode,omitempty"`
	City          int                     `json:"city,omitempty"`
	Country       string                  `json:"country,omitempty"`
	ApiKey        string                  `json:"apiKey,omitempty"`
	WalletId      string                  `json:"walletId,omitempty"`
	AccountNumber AccountBankInfoResponse `json:"accountNumber,omitempty"`
	Errors        []ErrorResponse         `json:"errors,omitempty"`
}

func (SubaccountResponse) IsFailure

func (s SubaccountResponse) IsFailure() bool

func (SubaccountResponse) IsNoContent

func (s SubaccountResponse) IsNoContent() bool

func (SubaccountResponse) IsSuccess

func (s SubaccountResponse) IsSuccess() bool

type Subscription

type Subscription interface {
	// Create (Criar nova assinatura)
	//
	// Ao criar a assinatura a primeira mensalidade será gerada vencendo na data enviada no parâmetro nextDueDate.
	//
	// # Resposta: 200
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubscriptionResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubscriptionResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar nova assinatura: https://docs.asaas.com/reference/criar-nova-assinatura
	//
	// Criar assinatura com cartão de crédito: https://docs.asaas.com/reference/criar-assinatura-com-cartao-de-credito
	Create(ctx context.Context, body CreateSubscriptionRequest) (*SubscriptionResponse, error)
	// CreateInvoiceSettingById (Criar configuração para emissão de Notas Fiscais)
	//
	// # Resposta: 200
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceSettingResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceSettingResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Criar configuração para emissão de Notas Fiscais: https://docs.asaas.com/reference/criar-configuracao-para-emissao-de-notas-fiscais
	CreateInvoiceSettingById(ctx context.Context, subscriptionId string, body CreateInvoiceSettingRequest) (
		*InvoiceSettingResponse, error)
	// UpdateById (Atualizar assinatura existente)
	//
	// Ao atualizar uma assinatura, o parâmetro nextDueDate permite indicar o vencimento da próxima mensalidade a
	// ser gerada, ou seja, não atualiza o vencimento da mensalidade já gerada.
	//
	// Além disso, ao atualizar o valor da assinatura ou forma de pagamento serão somente afetadas
	// mensalidades futuras. Para atualizar as mensalidades já existentes com a nova forma de pagamento e/ou novo valor,
	// é necessário passar o parâmetro updatePendingPayments: true.
	//
	// # Resposta: 200
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubscriptionResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubscriptionResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar assinatura existente: https://docs.asaas.com/reference/atualizar-assinatura-existente
	UpdateById(ctx context.Context, subscriptionId string, body UpdateSubscriptionRequest) (*SubscriptionResponse, error)
	// UpdateInvoiceSettingsById (Atualizar configuração para emissão de Notas Fiscais)
	//
	// A nova configuração apenas será aplicada nas notas fiscais das próximas cobranças da assinatura,
	// ou as que ainda não possuem uma nota fiscal criada.
	//
	// # Resposta: 200
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceSettingResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceSettingResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Atualizar configuração para emissão de Notas Fiscais: https://docs.asaas.com/reference/atualizar-configuracao-para-emissao-de-notas-fiscais
	UpdateInvoiceSettingsById(ctx context.Context, subscriptionId string, body UpdateInvoiceSettingRequest) (
		*InvoiceSettingResponse, error)
	// DeleteById (Remover assinatura)
	//
	// Ao remover uma assinatura, as mensalidades aguardando pagamento ou vencidas também são removidas.
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover assinatura: https://docs.asaas.com/reference/remover-assinatura
	DeleteById(ctx context.Context, subscriptionId string) (*DeleteResponse, error)
	// DeleteInvoiceSettingById (Remover configuração para emissão de Notas Fiscais)
	//
	// Ao remover a configuração, todas as notas fiscais agendadas para as cobranças desta assinatura serão canceladas
	// e sua geração automática será interrompida.
	//
	// # Resposta: 200
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// Se DeleteResponse.IsSuccess() for true quer dizer que foi excluída.
	//
	// Se caso DeleteResponse.IsFailure() for true quer dizer que não foi excluída.
	//
	// # Resposta: 404
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// DeleteResponse = not nil
	//
	// Error = nil
	//
	// DeleteResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo DeleteResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// DeleteResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Remover configuração para emissão de Notas Fiscais: https://docs.asaas.com/reference/remover-configuracao-para-emissao-de-notas-fiscais
	DeleteInvoiceSettingById(ctx context.Context, subscriptionId string) (*DeleteResponse, error)
	// GetById (Recuperar uma única assinatura)
	//
	// Para recuperar uma assinatura específica é necessário que você tenha o ID que o Asaas retornou no momento da criação dela.
	//
	// Para recuperar as cobranças de uma assinatura utilize GetAllChargesBySubscription
	//
	// # Resposta: 200
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// SubscriptionResponse = not nil
	//
	// Error = nil
	//
	// SubscriptionResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo SubscriptionResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// SubscriptionResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única assinatura: https://docs.asaas.com/reference/recuperar-uma-unica-assinatura
	GetById(ctx context.Context, subscriptionId string) (*SubscriptionResponse, error)
	// GetInvoiceSettingById (Recuperar configuração para emissão de Notas Fiscais)
	//
	// Para recuperar a configuração de emissão de notas fiscais de uma assinatura é necessário que você tenha criada
	// ela anteriormente e possua o ID da assinatura que o Asaas retornou no momento da criação dela.
	//
	// # Resposta: 200
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// InvoiceSettingResponse = not nil
	//
	// Error = nil
	//
	// InvoiceSettingResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo InvoiceSettingResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// InvoiceSettingResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar configuração para emissão de Notas Fiscais: https://docs.asaas.com/reference/recuperar-configuracao-para-emissao-de-notas-fiscais
	GetInvoiceSettingById(ctx context.Context, subscriptionId string) (*InvoiceSettingResponse, error)
	// GetPaymentBookById (Gerar carnê de assinatura)
	//
	// Para gerar os carnês gerados a partir de uma assinatura em formato PDF, é necessário que você tenha o
	// ID da assinatura retornado pelo Asaas.
	//
	// # Resposta: 200
	//
	// FileTextPlainResponse = not nil
	//
	// Error = nil
	//
	// FileTextPlainResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// FileTextPlainResponse = not nil
	//
	// Error = nil
	//
	// FileTextPlainResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// FileTextPlainResponse = not nil
	//
	// Error = nil
	//
	// FileTextPlainResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo FileTextPlainResponse.Errors preenchido
	// com as informações de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// FileTextPlainResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Gerar carnê de assinatura: https://docs.asaas.com/reference/gerar-carne-de-assinatura
	GetPaymentBookById(ctx context.Context, subscriptionId string, filter SubscriptionPaymentBookRequest) (
		*FileTextPlainResponse, error)
	// GetAll (Listar assinaturas)
	//
	// Diferente da recuperação de uma assinatura específica, este método retorna uma lista paginada com todas
	// as assinaturas para os filtros informados.
	//
	// # Resposta: 200
	//
	// Pageable(SubscriptionResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(SubscriptionResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(SubscriptionResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar assinaturas: https://docs.asaas.com/reference/listar-assinaturas
	GetAll(ctx context.Context, filter GetAllSubscriptionsRequest) (*Pageable[SubscriptionResponse], error)
	// GetAllChargesBySubscription (Listar cobranças)
	//
	// Para listar as cobranças geradas a partir de uma assinatura utilize esse endpoint.
	//
	// # Resposta: 200
	//
	// Pageable(ChargeResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(ChargeResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(ChargeResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar cobranças de uma assinatura: https://docs.asaas.com/reference/listar-cobrancas-de-uma-assinatura
	GetAllChargesBySubscription(ctx context.Context, subscriptionId string, filter GetAllChargesBySubscriptionRequest) (
		*Pageable[ChargeResponse], error)
	// GetAllInvoicesBySubscription (Listar cobranças)
	//
	// Este método retorna uma lista paginada com todas as notas fiscais geradas a partir de cobranças da assinatura informada.
	//
	// É possível também filtrar o status e período de emissão das notas fiscais, como já apresentado na listagem notas fiscais
	//
	// # Resposta: 200
	//
	// Pageable(InvoiceResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(InvoiceResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(InvoiceResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar notas fiscais das cobranças de uma assinatura: https://docs.asaas.com/reference/listar-notas-fiscais-das-cobrancas-de-uma-assinatura
	GetAllInvoicesBySubscription(ctx context.Context, subscriptionId string, filter GetAllSubscriptionInvoicesRequest) (
		*Pageable[InvoiceResponse], error)
}

func NewSubscription

func NewSubscription(env Env, accessToken string) Subscription

type SubscriptionCycle

type SubscriptionCycle string
const (
	SubscriptionCycleWeekly       SubscriptionCycle = "WEEKLY"
	SubscriptionCycleBiweekly     SubscriptionCycle = "BIWEEKLY"
	SubscriptionCycleMonthly      SubscriptionCycle = "MONTHLY"
	SubscriptionCycleBimonthly    SubscriptionCycle = "BIMONTHLY"
	SubscriptionCycleQuarterly    SubscriptionCycle = "QUARTERLY"
	SubscriptionCycleSemiannually SubscriptionCycle = "SEMIANNUALLY"
	SubscriptionCycleYearly       SubscriptionCycle = "YEARLY"
)

type SubscriptionPaymentBookRequest

type SubscriptionPaymentBookRequest struct {
	// Mês final para geração do carnê (REQUIRED)
	Month int `json:"month"`
	// Ano final para geração do carnê (REQUIRED)
	Year int `json:"year"`
	// Filtrar pelo nome da coluna
	Sort SortPaymentBookField `json:"sort,omitempty"`
	// Ordenação da coluna
	Order Order `json:"order,omitempty"`
}

type SubscriptionResponse

type SubscriptionResponse struct {
	Id                string             `json:"id,omitempty"`
	Customer          string             `json:"customer,omitempty"`
	Status            SubscriptionStatus `json:"status,omitempty"`
	Refunds           []RefundResponse   `json:"refunds,omitempty"`
	BillingType       BillingType        `json:"billingType,omitempty"`
	Value             float64            `json:"value,omitempty"`
	NextDueDate       Date               `json:"nextDueDate,omitempty"`
	Cycle             SubscriptionCycle  `json:"cycle,omitempty"`
	Discount          *DiscountResponse  `json:"discount,omitempty"`
	Interest          *InterestResponse  `json:"interest,omitempty"`
	Fine              *FineResponse      `json:"fine,omitempty"`
	Description       string             `json:"description,omitempty"`
	EndDate           Date               `json:"endDate,omitempty"`
	MaxPayments       int                `json:"maxPayments,omitempty"`
	ExternalReference string             `json:"externalReference,omitempty"`
	Deleted           bool               `json:"deleted,omitempty"`
	Errors            []ErrorResponse    `json:"errors,omitempty"`
	DateCreated       Date               `json:"dateCreated,omitempty"`
}

func (SubscriptionResponse) IsFailure

func (s SubscriptionResponse) IsFailure() bool

func (SubscriptionResponse) IsNoContent

func (s SubscriptionResponse) IsNoContent() bool

func (SubscriptionResponse) IsSuccess

func (s SubscriptionResponse) IsSuccess() bool

type SubscriptionStatus

type SubscriptionStatus string
const (
	SubscriptionStatusActive   SubscriptionStatus = "ACTIVE"
	SubscriptionStatusInactive SubscriptionStatus = "INACTIVE"
	SubscriptionStatusExpired  SubscriptionStatus = "EXPIRED"
)

type Transfer

type Transfer interface {
	// TransferToBank (Transferir para conta de outra Instituição ou chave pix)
	//
	// Com este endpoint você pode fazer uma transferência para conta bancária ou chave pix.
	//
	// # Resposta: 200
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo TransferResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// TransferResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Transferir para conta de outra Instituição ou chave pix: https://docs.asaas.com/reference/transferir-para-conta-de-outra-instituicao-ou-chave-pix
	TransferToBank(ctx context.Context, body TransferToBankRequest) (*TransferResponse, error)
	// TransferToAsaas (Transferir para conta Asaas)
	//
	// Só é possível fazer transferência entre contas Asaas para contas que possuam vínculo entre si,
	// como conta-pai e conta-filha, ou duas contas-filhas de mesma conta-pai.
	//
	// # Resposta: 200
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo TransferResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// TransferResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Transferir para conta Asaas: https://docs.asaas.com/reference/transferir-para-conta-asaas
	TransferToAsaas(ctx context.Context, body TransferToAssasRequest) (*TransferResponse, error)
	// CancelById (Cancelar uma transferência)
	//
	// # Resposta: 200
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 400/401/500
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo TransferResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// TransferResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Cancelar uma transferência: https://docs.asaas.com/reference/cancelar-uma-transferencia
	CancelById(ctx context.Context, transferId string) (*TransferResponse, error)
	// GetById (Recuperar uma única cobrança)
	//
	// Para recuperar uma transferência específica é necessário que você tenha o ID que o Asaas retornou no
	// momento da sua criação.
	//
	// # Resposta: 200
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// TransferResponse = not nil
	//
	// Error = nil
	//
	// TransferResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo TransferResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// TransferResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Recuperar uma única transferência: https://docs.asaas.com/reference/recuperar-uma-unica-transferencia
	GetById(ctx context.Context, transferId string) (*TransferResponse, error)
	// GetAll (Listar transferências)
	//
	// Este método retorna uma lista paginada com todas as transferências para o filtro informado.
	//
	// # Resposta: 200
	//
	// Pageable(TransferResponse) = not nil
	//
	// Error = nil
	//
	// Se Pageable.IsSuccess() for true quer dizer que retornaram os dados conforme a documentação.
	// Se Pageable.IsNoContent() for true quer dizer que retornou os dados vazio.
	//
	// Error = nil
	//
	// Pageable.IsNoContent() = true
	//
	// Pageable.Data retornou vazio.
	//
	// # Resposta: 401/500
	//
	// Pageable(TransferResponse) = not nil
	//
	// Error = nil
	//
	// Pageable.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo Pageable.Errors preenchido com
	// as informações de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// Pageable(TransferResponse) = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// Listar transferências: https://docs.asaas.com/reference/listar-transferencias
	GetAll(ctx context.Context, filter GetAllTransfersRequest) (*Pageable[TransferResponse], error)
}

func NewTransfer

func NewTransfer(env Env, accessToken string) Transfer

type TransferAsaasStatus

type TransferAsaasStatus string

type TransferOperationType

type TransferOperationType string
const (
	TransferOperationTypePix      TransferOperationType = "PIX"
	TransferOperationTypeTed      TransferOperationType = "TED"
	TransferOperationTypeInternal TransferOperationType = "INTERNAL"
)

type TransferResponse

type TransferResponse struct {
	Id                    string                `json:"id,omitempty"`
	Type                  TransferType          `json:"type,omitempty"`
	Status                TransferStatus        `json:"status,omitempty"`
	Value                 float64               `json:"value,omitempty"`
	NetValue              float64               `json:"netValue,omitempty"`
	TransferFee           float64               `json:"transferFee,omitempty"`
	EffectiveDate         Date                  `json:"effectiveDate,omitempty"`
	EndToEndIdentifier    string                `json:"endToEndIdentifier,omitempty"`
	ScheduleDate          Date                  `json:"scheduleDate,omitempty"`
	Authorized            bool                  `json:"authorized,omitempty"`
	FailReason            string                `json:"failReason,omitempty"`
	WalletId              string                `json:"walletId,omitempty"`
	BackAccount           *BackAccountResponse  `json:"backAccount,omitempty"`
	TransactionReceiptUrl string                `json:"transactionReceiptUrl,omitempty"`
	OperationType         TransferOperationType `json:"operationType,omitempty"`
	Description           string                `json:"description,omitempty"`
	Errors                []ErrorResponse       `json:"errors,omitempty"`
	DateCreated           Date                  `json:"dateCreated,omitempty"`
}

func (TransferResponse) IsFailure

func (t TransferResponse) IsFailure() bool

func (TransferResponse) IsNoContent

func (t TransferResponse) IsNoContent() bool

func (TransferResponse) IsSuccess

func (t TransferResponse) IsSuccess() bool

type TransferStatus

type TransferStatus string
const (
	TransferStatusPending        TransferStatus = "PENDING"
	TransferStatusBankProcessing TransferStatus = "BANK_PROCESSING"
	TransferStatusDone           TransferStatus = "DONE"
	TransferStatusCancelled      TransferStatus = "CANCELLED"
	TransferStatusFailed         TransferStatus = "FAILED"
)

type TransferToAssasRequest

type TransferToAssasRequest struct {
	// Valor a ser transferido (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// WalletId da conta de destino
	WalletId string `json:"walletId,omitempty"`
}

type TransferToBankRequest

type TransferToBankRequest struct {
	// Valor a ser transferido (REQUIRED)
	Value float64 `json:"value,omitempty"`
	// Informe os dados da conta caso seja uma transferência para conta bancária (REQUIRED)
	BankAccount BackAccountRequest `json:"bankAccount,omitempty"`
	// Modalidade da transferência. Caso não informado e a instituição recebedora seja participante do pix, a transferência é via pix. Do contrário via TED.
	OperationType TransferOperationType `json:"operationType,omitempty"`
	// Informe a chave pix caso seja uma transferência TransferOperationTypePix
	PixAddressKey string `json:"pixAddressKey,omitempty"`
	// Informe o tipo de chave caso seja uma transferência TransferOperationTypePix
	PixAddressKeyType PixKeyType `json:"pixAddressKeyType,omitempty"`
	// Transferência TransferOperationTypePix permitem descrição
	Description string `json:"description,omitempty"`
	// Para transferências agendadas, caso não informado o pagamento é instantâneo
	ScheduleDate Date `json:"scheduleDate,omitempty"`
}

type TransferType

type TransferType string
const (
	TransferTypeBankAccount  TransferType = "BANK_ACCOUNT"
	TransferTypeAsaasAccount TransferType = "ASAAS_ACCOUNT"
)

type UpdateAccountRequest

type UpdateAccountRequest struct {
	// Tipo de Pessoa
	PersonType PersonType `json:"personType,omitempty"`
	// CPF ou CNPJ do proprietário da conta
	CpfCnpj string `json:"cpfCnpj,omitempty"`
	// Data de nascimento necessária caso as informações forem de pessoa física
	BirthDate Date `json:"birthDate,omitempty"`
	// Tipo da empresa (somente quando Pessoa Jurídica)
	CompanyType *CompanyType `json:"companyType,omitempty"`
	// Email da conta
	Email string `json:"email,omitempty"`
	// Telefone
	Phone *string `json:"phone,omitempty"`
	// Telefone celular
	MobilePhone *string `json:"mobilePhone,omitempty"`
	// URL do site da conta
	Site *string `json:"site,omitempty"`
	// CEP do endereço
	PostalCode string `json:"postalCode,omitempty"`
	// Logradouro
	Address *string `json:"address,omitempty"`
	// Número do endereço
	AddressNumber *string `json:"addressNumber,omitempty"`
	// Complemento do endereço
	Complement *string `json:"complement,omitempty"`
	// Bairro
	Province *string `json:"province,omitempty"`
}

type UpdateChargeDocumentDefinitionsRequest

type UpdateChargeDocumentDefinitionsRequest struct {
	// Define se o arquivo será disponibilizado somente após o pagamento
	AvailableAfterPayment bool `json:"availableAfterPayment"`
	// Novo tipo do documento (REQUIRED)
	Type DocumentType `json:"type,omitempty"`
}

type UpdateChargeRequest

type UpdateChargeRequest struct {
	// Identificador único do cliente no Asaas
	Customer string `json:"customer,omitempty"`
	// Forma de pagamento
	BillingType BillingType `json:"billingType,omitempty"`
	// Valor da cobrança
	Value float64 `json:"value,omitempty"`
	// Data de vencimento da cobrança
	DueDate Date `json:"dueDate,omitempty"`
	// Descrição da cobrança (máx. 500 caracteres)
	Description *string `json:"description,omitempty"`
	// Campo livre para busca
	ExternalReference *string `json:"externalReference,omitempty"`
	// Informações de desconto
	Discount *DiscountRequest `json:"discount,omitempty"`
	// Informações de juros para pagamento após o vencimento
	Interest *InterestRequest `json:"interest,omitempty"`
	// Informações de multa para pagamento após o vencimento
	Fine *FineRequest `json:"fine,omitempty"`
	// Define se a cobrança será enviada via Correios
	PostalService *bool `json:"postalService,omitempty"`
	// Configurações do split
	Split []SplitRequest `json:"split,omitempty"`
	// Informações de redirecionamento automático após pagamento na tela de fatura
	Callback *CallbackRequest `json:"callback,omitempty"`
	// Número de parcelas (somente no caso de cobrança parcelada)
	InstallmentCount int `json:"installmentCount,omitempty"`
	// Valor de cada parcela (somente no caso de cobrança parcelada)
	InstallmentValue float64 `json:"installmentValue,omitempty"`
}

type UpdateCustomerRequest

type UpdateCustomerRequest struct {
	// Nome do cliente
	Name string `json:"name,omitempty"`
	// CPF ou CNPJ do cliente
	CpfCnpj *string `json:"cpfCnpj,omitempty"`
	// Email do cliente
	Email *string `json:"email,omitempty"`
	// Fone fixo
	Phone *string `json:"phone,omitempty"`
	// Fone celular
	MobilePhone *string `json:"mobilePhone,omitempty"`
	// Logradouro
	Address *string `json:"address,omitempty"`
	// Número do endereço
	AddressNumber *string `json:"addressNumber,omitempty"`
	// Complemento do endereço
	Complement *string `json:"complement,omitempty"`
	// Bairro
	Province *string `json:"province,omitempty"`
	// CEP do endereço
	PostalCode *string `json:"postalCode,omitempty"`
	// Identificador do cliente no seu sistema
	ExternalReference *string `json:"externalReference,omitempty"`
	// True para desabilitar o envio de notificações de cobrança
	NotificationDisabled *bool `json:"notificationDisabled,omitempty"`
	// Emails adicionais para envio de notificações de cobrança separados por ","
	AdditionalEmails *string `json:"additionalEmails,omitempty"`
	// Inscrição municipal do cliente
	MunicipalInscription *string `json:"municipalInscription,omitempty"`
	// Inscrição estadual do cliente
	StateInscription *string `json:"stateInscription,omitempty"`
	// Observações adicionais
	Observations *string `json:"observations,omitempty"`
	// Nome do grupo ao qual o cliente pertence
	GroupName *string `json:"groupName,omitempty"`
	// Empresa
	Company *string `json:"company,omitempty"`
}

type UpdateInstallmentSplitsResponse

type UpdateInstallmentSplitsResponse struct {
	Splits []SplitResponse `json:"splits,omitempty"`
	Errors []ErrorResponse `json:"errors,omitempty"`
}

func (UpdateInstallmentSplitsResponse) IsFailure

func (u UpdateInstallmentSplitsResponse) IsFailure() bool

func (UpdateInstallmentSplitsResponse) IsNoContent

func (u UpdateInstallmentSplitsResponse) IsNoContent() bool

func (UpdateInstallmentSplitsResponse) IsSuccess

func (u UpdateInstallmentSplitsResponse) IsSuccess() bool

type UpdateInvoiceRequest

type UpdateInvoiceRequest struct {
	// Descrição dos serviços da nota fiscal
	ServiceDescription string `json:"serviceDescription,omitempty"`
	// Observações adicionais da nota fiscal
	Observations string `json:"observations,omitempty"`
	// Identificador da nota fiscal no seu sistema
	ExternalReference *string `json:"externalReference,omitempty"`
	// Valor
	Value float64 `json:"value,omitempty"`
	// Deduções. As deduções não alteram o valor total da nota fiscal, mas alteram a base de cálculo do ISS
	Deductions *float64 `json:"deductions,omitempty"`
	// Data de emissão da nota fiscal
	EffectiveDate Date `json:"effectiveDate,omitempty"`
	// Identificador único do serviço municipal.
	MunicipalServiceId *string `json:"municipalServiceId,omitempty"`
	// Código de serviço municipal
	MunicipalServiceCode *string `json:"municipalServiceCode,omitempty"`
	// Nome do serviço municipal. Se não for informado, será utilizado o atributo MunicipalServiceCode como nome para identificação.
	MunicipalServiceName *string `json:"municipalServiceName,omitempty"`
	// Atualizar o valor da cobrança com os impostos da nota já descontados.
	UpdatePayment *bool `json:"updatePayment,omitempty"`
	// Impostos da nota fiscal
	Taxes *InvoiceTaxesRequest `json:"taxes,omitempty"`
}

type UpdateInvoiceSettingRequest

type UpdateInvoiceSettingRequest struct {
	// Deduções. As deduções não alteram o valor total da nota fiscal, mas alteram a base de cálculo do ISS.
	Deductions *float64 `json:"deductions,omitempty"`
	// Quando a nota fiscal será emitida.
	EffectiveDatePeriod EffectiveDatePeriod `json:"effectiveDatePeriod,omitempty"`
	// Emitir apenas para cobranças pagas.
	ReceivedOnly *bool `json:"receivedOnly,omitempty"`
	// Quantidade de dias antes do vencimento da cobrança.
	DaysBeforeDueDate *int `json:"daysBeforeDueDate,omitempty"`
	// Observações adicionais da nota fiscal.
	Observations *string `json:"observations,omitempty"`
	// Impostos da nota fiscal.
	Taxes InvoiceTaxesRequest `json:"taxes,omitempty"`
}

type UpdateManyNotificationRequest

type UpdateManyNotificationRequest struct {
	// Identificador único da notificação (REQUIRED)
	Id string `json:"id,omitempty"`
	// Habilita/desabilita a notificação
	Enabled *bool `json:"enabled,omitempty"`
	// Habilita/desabilita o email enviado para você
	EmailEnabledForProvider *bool `json:"emailEnabledForProvider,omitempty"`
	// Habilita/desabilita o SMS enviado para você
	SmsEnabledForProvider *bool `json:"smsEnabledForProvider,omitempty"`
	// Habilita/desabilita o email enviado para o seu cliente
	EmailEnabledForCustomer *bool `json:"emailEnabledForCustomer,omitempty"`
	// Habilita/desabilita o SMS enviado para o seu cliente
	SmsEnabledForCustomer *bool `json:"smsEnabledForCustomer,omitempty"`
	// Habilita/desabilita a notificação por voz enviada para o seu cliente
	PhoneCallEnabledForCustomer *bool `json:"phoneCallEnabledForCustomer,omitempty"`
	// Habilita/desabilita a mensagem de WhatsApp para seu cliente
	WhatsappEnabledForCustomer *bool `json:"whatsappEnabledForCustomer,omitempty"`
	// Especifica quantos dias antes do vencimento a notificação deve se enviada. Válido somente para o evento PAYMENT_DUEDATE_WARNING
	ScheduleOffset *int `json:"scheduleOffset,omitempty"`
}

type UpdateManyNotificationsRequest

type UpdateManyNotificationsRequest struct {
	// Identificador único do cliente no Asaas (REQUIRED)
	Customer string `json:"customer,omitempty"`
	// Lista de informações das notificações
	Notifications []UpdateManyNotificationRequest `json:"notifications,omitempty"`
}

type UpdateManyNotificationsResponse

type UpdateManyNotificationsResponse struct {
	Notifications []NotificationResponse `json:"notifications,omitempty"`
	Errors        []ErrorResponse        `json:"errors,omitempty"`
}

func (UpdateManyNotificationsResponse) IsFailure

func (u UpdateManyNotificationsResponse) IsFailure() bool

func (UpdateManyNotificationsResponse) IsNoContent

func (u UpdateManyNotificationsResponse) IsNoContent() bool

func (UpdateManyNotificationsResponse) IsSuccess

func (u UpdateManyNotificationsResponse) IsSuccess() bool

type UpdateNotificationRequest

type UpdateNotificationRequest struct {
	// Habilita/desabilita a notificação
	Enabled *bool `json:"enabled,omitempty"`
	// Habilita/desabilita o email enviado para você
	EmailEnabledForProvider *bool `json:"emailEnabledForProvider,omitempty"`
	// Habilita/desabilita o SMS enviado para você
	SmsEnabledForProvider *bool `json:"smsEnabledForProvider,omitempty"`
	// Habilita/desabilita o email enviado para o seu cliente
	EmailEnabledForCustomer *bool `json:"emailEnabledForCustomer,omitempty"`
	// Habilita/desabilita o SMS enviado para o seu cliente
	SmsEnabledForCustomer *bool `json:"smsEnabledForCustomer,omitempty"`
	// Habilita/desabilita a notificação por voz enviada para o seu cliente
	PhoneCallEnabledForCustomer *bool `json:"phoneCallEnabledForCustomer,omitempty"`
	// Habilita/desabilita a mensagem de WhatsApp para seu cliente
	WhatsappEnabledForCustomer *bool `json:"whatsappEnabledForCustomer,omitempty"`
	// Especifica quantos dias antes do vencimento a notificação deve se enviada. Válido somente para o evento PAYMENT_DUEDATE_WARNING
	ScheduleOffset *int `json:"scheduleOffset,omitempty"`
}

type UpdatePaymentLinkRequest

type UpdatePaymentLinkRequest struct {
	// Nome do link de pagamentos
	Name string `json:"name,omitempty"`
	// Descrição do link de pagamentos
	Description *string `json:"description,omitempty"`
	// Forma de pagamento
	BillingType BillingType `json:"billingType,omitempty"`
	// Forma de cobrança
	ChargeType ChargeType `json:"chargeType,omitempty"`
	// Data de encerramento, a partir desta data o seu link de pagamentos será desativado automaticamente
	EndDate Date `json:"endDate,omitempty"`
	// Valor do link de pagamentos, caso não informado o pagador poderá informar o quanto deseja pagar
	Value *float64 `json:"value,omitempty"`
	// Caso seja possível o pagamento via boleto bancário, define a quantidade de dias úteis que o seu cliente poderá pagar o boleto após gerado
	DueDateLimitDays int `json:"dueDateLimitDays,omitempty"`
	// Periodicidade da cobrança (REQUIRED se ChargeType = ChargeTypeRecurrent)
	SubscriptionCycle *SubscriptionCycle `json:"subscriptionCycle,omitempty"`
	// Quantidade máxima de parcelas que seu cliente poderá parcelar o valor do link de pagamentos (REQUIRED se ChargeType = ChargeTypeInstallment)
	MaxInstallmentCount int `json:"maxInstallmentCount,omitempty"`
	// Define se os clientes cadastrados pelo link de pagamentos terão as notificações habilitadas. Caso não seja informado o valor padrão será true
	NotificationEnabled *bool `json:"notificationEnabled,omitempty"`
	// Informações de redirecionamento automático após pagamento do link de pagamento
	Callback *CallbackRequest `json:"callback,omitempty"`
}

type UpdateSplitsRequest

type UpdateSplitsRequest struct {
	// Dados de split para atualizar (REQUIRED)
	Splits []SplitRequest `json:"splits,omitempty"`
}

type UpdateSubscriptionRequest

type UpdateSubscriptionRequest struct {
	// Forma de pagamento
	BillingType BillingType `json:"billingType,omitempty"`
	// Valor da assinatura
	Value float64 `json:"value,omitempty"`
	// Status da assinatura
	Status SubscriptionStatus `json:"status,omitempty"`
	// Vencimento da próxima mensalidade
	NextDueDate Date `json:"nextDueDate,omitempty"`
	// Informações de desconto
	Discount *DiscountRequest `json:"discount,omitempty"`
	// Informações de juros para pagamento após o vencimento
	Interest *InterestRequest `json:"interest,omitempty"`
	// Informações de multa para pagamento após o vencimento
	Fine *FineRequest `json:"fine,omitempty"`
	// Periodicidade da cobrança
	Cycle SubscriptionCycle `json:"cycle,omitempty"`
	// Descrição da assinatura (máx. 500 caracteres)
	Description *string `json:"description,omitempty"`
	// Data de validade da assinatura
	EndDate Date `json:"endDate,omitempty"`
	// True para atualizar mensalidades já existentes com o novo valor ou forma de pagamento
	UpdatePendingPayments bool `json:"updatePendingPayments,omitempty"`
	// Identificador da assinatura no seu sistema
	ExternalReference string `json:"externalReference,omitempty"`
}

type UpdateWhiteLabelDocumentSentRequest

type UpdateWhiteLabelDocumentSentRequest struct {
	// Arquivo (REQUIRED)
	DocumentFile *os.File `json:"documentFile,omitempty"`
}

type UploadChargeDocumentRequest

type UploadChargeDocumentRequest struct {
	// true para disponibilizar o arquivo somente após o recebimento da cobrança
	AvailableAfterPayment bool `json:"availableAfterPayment"`
	// Tipo de documento (REQUIRED)
	Type DocumentType `json:"type,omitempty"`
	// Arquivo a ser anexado (REQUIRED)
	File *os.File `json:"file,omitempty"`
}

type Webhook

type Webhook interface {
	// SaveSetting (Criar ou atualizar configurações de webhook)
	//
	// # Resposta: 200
	//
	// WebhookResponse = not nil
	//
	// Error = nil
	//
	// WebhookResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 400/401/500
	//
	// WebhookResponse = not nil
	//
	// Error = nil
	//
	// WebhookResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo WebhookResponse.Errors preenchido com as informações
	// de erro, sendo 400 retornado da API Asaas com as instruções de requisição conforme a documentação,
	// diferente disso retornará uma mensagem padrão no index 0 do slice com campo ErrorResponse.Code retornando a
	// descrição status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// WebhookResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// https://docs.asaas.com/reference/webhook-para-cobrancas-criar-ou-atualizar-configuracoes
	SaveSetting(ctx context.Context, typeWebhook WebhookType, body SaveWebhookSettingRequest) (*WebhookResponse, error)
	// GetSetting (Recuperar configurações)
	//
	// # Resposta: 200
	//
	// WebhookResponse = not nil
	//
	// Error = nil
	//
	// WebhookResponse.IsSuccess() = true
	//
	// Possui os valores de resposta de sucesso segunda a documentação.
	//
	// # Resposta: 404
	//
	// WebhookResponse = not nil
	//
	// Error = nil
	//
	// WebhookResponse.IsNoContent() = true
	//
	// ID(s) informado no parâmetro não foi encontrado.
	//
	// # Resposta: 401/500
	//
	// WebhookResponse = not nil
	//
	// Error = nil
	//
	// WebhookResponse.IsFailure() = true
	//
	// Para qualquer outra resposta inesperada da API, possuímos o campo WebhookResponse.Errors preenchido com as informações
	// de erro, o index 0 do slice com campo ErrorResponse.Code retornando a descrição
	// status http (Ex: "401 Unauthorized") e no campo ErrorResponse.Description retornará com o valor
	// "response status code not expected".
	//
	// # Error
	//
	// WebhookResponse = nil
	//
	// error = not nil
	//
	// Se o parâmetro de retorno error não estiver nil quer dizer que ocorreu um erro inesperado
	// na lib go-asaas.
	//
	// Se isso acontecer por favor report o erro no repositório: https://github.com/GabrielHCataldo/go-asaas
	//
	// # DOCS
	//
	// https://docs.asaas.com/reference/webhook-para-cobran%C3%A7as-recuperar-configuracoes
	GetSetting(ctx context.Context, typeWebhook WebhookType) (*WebhookResponse, error)
}

func NewWebhook

func NewWebhook(env Env, accessToken string) Webhook

type WebhookResponse

type WebhookResponse struct {
	Url         string          `json:"url,omitempty"`
	Email       string          `json:"email,omitempty"`
	ApiVersion  int             `json:"apiVersion,omitempty"`
	Enabled     bool            `json:"enabled,omitempty"`
	Interrupted bool            `json:"interrupted,omitempty"`
	AuthToken   string          `json:"authToken,omitempty"`
	Type        WebhookType     `json:"type,omitempty"`
	Errors      []ErrorResponse `json:"errors,omitempty"`
}

func (WebhookResponse) IsFailure

func (w WebhookResponse) IsFailure() bool

func (WebhookResponse) IsNoContent

func (w WebhookResponse) IsNoContent() bool

func (WebhookResponse) IsSuccess

func (w WebhookResponse) IsSuccess() bool

type WebhookType

type WebhookType string
const (
	WebhookTypePayment                WebhookType = "PAYMENT"
	WebhookTypeInvoice                WebhookType = "INVOICE"
	WebhookTypeTransfer               WebhookType = "TRANSFER"
	WebhookTypeBill                   WebhookType = "BILL"
	WebhookTypeReceivableAnticipation WebhookType = "RECEIVABLE_ANTICIPATION"
	WebhookTypeMobilePhoneRecharge    WebhookType = "MOBILE_PHONE_RECHARGE"
	WebhookTypeAccountStatus          WebhookType = "ACCOUNT_STATUS"
)

func (WebhookType) PathUrl

func (t WebhookType) PathUrl() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL