An easy-to-use parasut.com API (v4) with golang
go get github.com/ozgur-yalcin/parasut.go
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.Contact.Data.Attributes.AccountType = "" // "customer" (Müşteri) || "supplier" (Tedarikçi)
request.Contact.Data.Attributes.ContactType = "" // "company" (Şirket) || "person" (Şahıs)
request.Contact.Data.Attributes.Name = "" // Firma Ünvanı
request.Contact.Data.Attributes.ShortName = "" // Kısa İsim
request.Contact.Data.Attributes.TaxNumber = "" // Vergi Numarası
request.Contact.Data.Attributes.TaxOffice = "" // Vergi Dairesi
request.Contact.Data.Attributes.Country = "" // Ülke
request.Contact.Data.Attributes.City = "" // İl
request.Contact.Data.Attributes.District = "" // İlçe
request.Contact.Data.Attributes.Address = "" // Adres
request.Contact.Data.Attributes.Phone = "" // Telefon
request.Contact.Data.Attributes.Fax = "" // Faks
request.Contact.Data.Attributes.Email = "" // E-posta adresi
request.Contact.Data.Attributes.IBAN = "" // IBAN numarası
response := api.CreateContact(request)
pretty, _ := json.MarshalIndent(response.Contact, " ", "\t")
fmt.Println(string(pretty))
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.Contact.Data.ID = "" // Müşteri/Tedarikçi ID
response := api.DeleteContact(request)
pretty, _ := json.MarshalIndent(response.Contact, " ", "\t")
fmt.Println(string(pretty))
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.Contact.Data.ID = "" // Müşteri/Tedarikçi ID
response := api.ShowContact(request)
pretty, _ := json.MarshalIndent(response.Contact, " ", "\t")
fmt.Println(string(pretty))
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.SalesInvoice.Data.Attributes.ItemType = "invoice" // << Değişiklik yapmayınız !
request.SalesInvoice.Data.Attributes.Description = "" // Fatura başlığı
request.SalesInvoice.Data.Attributes.IssueDate = "" // Fatura tarihi (Yıl-Ay-Gün)
request.SalesInvoice.Data.Attributes.ShipmentIncluded = false // İrsaliyeli fatura
request.SalesInvoice.Data.Attributes.CashSale = true // Peşin satış
request.SalesInvoice.Data.Attributes.PaymentDate = "" // Peşin ödeme tarihi (Yıl-Ay-Gün)
request.SalesInvoice.Data.Attributes.PaymentDescription = "" // Peşin ödeme açıklaması
request.SalesInvoice.Data.Attributes.PaymentAccountID = "" // Paraşüt Banka ID (zorunlu)
request.SalesInvoice.Data.Attributes.Currency = "TRL" // Para birimi : "TRL", "USD", "EUR", "GBP"
request.SalesInvoice.Data.Relationships.Contact = new(parasut.SingleRelationShip)
request.SalesInvoice.Data.Relationships.Contact.Data = new(parasut.RelationShip)
request.SalesInvoice.Data.Relationships.Contact.Data.Type = "contacts" // << Değişiklik yapmayınız !
request.SalesInvoice.Data.Relationships.Contact.Data.ID = "" // Müşteri ID
detail := request.SalesInvoice.Data.Relationships.Details.Detail
detail.Type = "sales_invoice_details" // << Değişiklik yapmayınız !
detail.Attributes.Quantity = "1" // Ürün miktarı
detail.Attributes.UnitPrice = "1.00" // Ürün birim fiyatı
detail.Attributes.VatRate = "18" // Ürün KDV oranı
detail.Relationships.Product = new(parasut.SingleRelationShip)
detail.Relationships.Product.Data = new(parasut.RelationShip)
detail.Relationships.Product.Data.Type = "products" // << Değişiklik yapmayınız !
detail.Relationships.Product.Data.ID = "" // Paraşüt Ürün ID (zorunlu)
request.SalesInvoice.Data.Relationships.Details.Data = append(request.SalesInvoice.Data.Relationships.Details.Data, detail)
response := api.CreateSalesInvoice(request)
pretty, _ := json.MarshalIndent(response.SalesInvoice, " ", "\t")
fmt.Println(string(pretty))
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.SalesInvoice.Data.ID = "" // Satış faturası ID
response := api.DeleteSalesInvoice(request)
pretty, _ := json.MarshalIndent(response.SalesInvoice, " ", "\t")
fmt.Println(string(pretty))
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.SalesInvoice.Data.ID = "" // Satış faturası ID
response := api.ShowSalesInvoice(request)
pretty, _ := json.MarshalIndent(response.SalesInvoice, " ", "\t")
fmt.Println(string(pretty))
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.EInvoiceInboxes.Data.Attributes.VKN = "" // Vergi numarası sorgulama
response := api.ListEInvoiceInboxes(request)
if len(response.EInvoiceInboxes.Data) > 0 { // e-Fatura ise
for _, data := range response.EInvoiceInboxes.Data {
request := new(parasut.Request)
request.EInvoice.Data.Relationships.Invoice = new(parasut.SingleRelationShip)
request.EInvoice.Data.Relationships.Invoice.Data = new(parasut.RelationShip)
request.EInvoice.Data.Relationships.Invoice.Data.Type = "sales_invoices" // << Değişiklik yapmayınız !
request.EInvoice.Data.Relationships.Invoice.Data.ID = "" // Paraşüt Fatura ID
request.EInvoice.Data.Attributes.To = data.Attributes.EInvoiceAddress
request.EInvoice.Data.Attributes.Scenario = "" // "basic" (Temel e-Fatura) || "commercial" (Ticari e-Fatura)
request.EInvoice.Data.Attributes.Note = "" // Fatura notu
response := api.CreateEInvoice(request)
pretty, _ := json.MarshalIndent(response.EInvoice, " ", "\t")
fmt.Println(string(pretty))
}
} else { // e-Arşiv ise
request := new(parasut.Request)
request.EArchive.Data.Relationships.SalesInvoice = new(parasut.SingleRelationShip)
request.EArchive.Data.Relationships.SalesInvoice.Data = new(parasut.RelationShip)
request.EArchive.Data.Relationships.SalesInvoice.Data.Type = "sales_invoices" // << Değişiklik yapmayınız !
request.EArchive.Data.Relationships.SalesInvoice.Data.ID = "" // Paraşüt Fatura ID
request.EArchive.Data.Attributes.Note = "" // Fatura notu
// Internet satışı (Varsa)
request.EArchive.Data.Attributes.InternetSale.URL = "" // İnternet satışının yapıldığı url
request.EArchive.Data.Attributes.InternetSale.PaymentType = "" // Ödeme yöntemi : "KREDIKARTI/BANKAKARTI", "EFT/HAVALE", "KAPIDAODEME", "ODEMEARACISI"
request.EArchive.Data.Attributes.InternetSale.PaymentPlatform = "" // Ödeme platformu (iyzico,payu,banka adı vb.)
request.EArchive.Data.Attributes.InternetSale.PaymentDate = "" // Ödeme tarihi (Yıl-Ay-Gün)
response := api.CreateEArchive(request)
pretty, _ := json.MarshalIndent(response.EArchive, " ", "\t")
fmt.Println(string(pretty))
}
}
}
package main
import (
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.SalesInvoice.Data.ID = "" // Satış faturası ID
response := api.ShowSalesInvoice(request)
for _, included := range response.SalesInvoice.Included {
if included.Type == "transactions" {
request := new(parasut.Request)
request.Transaction.Data = new(parasut.RelationShip)
request.Transaction.Data.ID = included.ID
api.DeleteTransaction(request)
}
}
}
}
package main
import (
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.SalesInvoice.Data.ID = "" // Satış faturası ID
response := api.ShowSalesInvoice(request)
switch response.SalesInvoice.Data.Relationships.ActiveEDocument.Data.Type {
case "e_invoices": // e-Fatura ise
request := new(parasut.Request)
request.EInvoicePDF.Data = new(parasut.RelationShip)
request.EInvoicePDF.Data.ID = response.SalesInvoice.Data.Relationships.ActiveEDocument.Data.ID
response := api.ShowEInvoicePDF(request)
pdfurl := response.EInvoicePDF.Data.Attributes.URL
fmt.Println(pdfurl)
case "e_archives": // e-Arşiv ise
request := new(parasut.Request)
request.EArchivePDF.Data = new(parasut.RelationShip)
request.EArchivePDF.Data.ID = response.SalesInvoice.Data.Relationships.ActiveEDocument.Data.ID
response := api.ShowEArchivePDF(request)
pdfurl := response.EArchivePDF.Data.Attributes.URL
fmt.Println(pdfurl)
}
}
}
package main
import (
"encoding/json"
"fmt"
parasut "github.com/ozgur-yalcin/parasut.go/src"
)
func main() {
config := parasut.Config{CompanyID: "", ClientID: "", ClientSecret: "", Username: "", Password: ""}
api := ¶sut.API{Config: config}
auth := api.Authorize()
if auth {
request := new(parasut.Request)
request.SalesInvoice.Data.ID = "" // Satış faturası ID
response := api.CancelSalesInvoice(request)
pretty, _ := json.MarshalIndent(response.SalesInvoice, " ", "\t")
fmt.Println(string(pretty))
}
}