Open source EBS web services implementation. Fast. Reliable. Robust.
Keeping' it simple
Keepin' it simple
Open source payment gateway that implements all of EBS services.
noebs has grown from a small side-project to a production system that is used by more than 5 payment companies in Sudan.
This is an e-payment gateway system. It implements most of EBS's services with clear emphasis on scalabilty and a maintainable code. It is written in Go, a language for building high performant systems. It is also open source, the way any serious project should be. I wrote this software while I was learning Go, I tried to write an idiomatic Go as much as possible.
It is open source and it will remain open source. I will also maintain it and I welcome any contributors help me doing that as well. Our blog post covers some other aspects about this project.
There are many reasons why I started this project. On one hand people can happily rely on EBS MCS webservices to run e.g., a POS. But this is not the goal of this project. I have a vision for the e-payment ecosystem in Sudan, way more beyond the 1SDG purchase fees.
You can contact us directly at [email protected] for more available hosting options.
There are different ways to use noebs:
go get
command [not recommended]# this command may likely takes along time depending on your internet connections.
# also, make sure you are using a vpn since some of the libraries are hosted in GCE hosting which forbids Sudan
$ go get github.com/adonese/noebs
$ cd $GOPATH/github.com/adonese/noebs
$ go build .
You will have a binary that after running it will spawn a production ready server!
We provide an easier way to build and run noebs using Docker.
git clone https://github.com/adonese/noebs
)cd
to noebs root directory (E.g., $HOME/src/noebs)docker build -t noebs .
# -t for giving it a namedocker run -v /home/adonese/src/noebs:/database -p 8080:8080 -it noebs:latest
# This is recommended to mount the sqlite3 databaselocalhost:8000/test
in your broswer to interact with noebsnoebs needs to be connected with EBS merchant server in order to get useful responses. However, you can run our embedded server that mocks EBS responses in cases where you cannot reach EBS server. To do that, you need to enable the development mode using a special env var, EBS_LOCAL_DEV
. You need to set EBS_LOCAL_DEV=1
in order to use the mocking functionality.
`docker run -it -p 8000:8000 -e EBS_LOCAL_DEV=1 noebs:latest`
go get
method$ export EBS_LOCAL_DEV=1 noebs
noebs is not meant to be a full e-payment framework (e.g., unlike Morsal). It is meant as a generic e-payment gateway system. Currently, it implements EBS services, but we might add new gateway. Being such, adapts to Unix philosophy; doing one thing and do it good. Also, with our experience with embedded devices, working with authorizations and handling all of these headers and tokens (esp. JWT ones) has proven to be challenging as simply some of the older models cannot handle lengthy headers. You can however have this system architecture, suppose that you're building a mobile payment application system:
noebs
implements ALL of EBS merchant services. We are working to extend our support into other EBS services, e.g., consumer services, TITP, etc. However, those other services are not stable and some of them (consumer) are deem to deprecation.
If YOU are interested in other services, please reach out and we will be more than happy to discuss them with you.
While everything you see here is very and open source; we don't hide any fees or charges, we expect that some might be interested in a commercial plans. We offer our consultancy services via Gndi. We have a team with variety of proficiency, from backend engineers, mobile developers to UX/UI and QA testing engineers. Some of our team members have worked at EBS, while most of the team have a huge experience in e-payment systems.
Contact us: +249 111493885 (Mohamed Yousif) | +249 9023 00672 (Mohamed Gafar) | [email protected] (Mohamed Yousif)
Our team have developed an internal EBS QA test system that emulates EBS test environment. We offer our simulator as a paid service
We plan on releasing our simulator very soon. Stay tuned.
We are extremely very gratitude to our sponsors:
noebs powers and is used by these companies to process their payments:
More documentations can be found through Noebs Docs. Merchant documentations can be found here.
{
"jwt_secret": "my_top_secret",
"db_path": "/database/test.db",
"is_consumer_prod": false,
"redis_port": "100.89.231.117:6379",
"sms_gateway": "endpoint",
"sms_key": "key==",
"sms_sender": "tutipay",
"sentry": "",
"port": ":8080",
"consumer_qa_id": "YourConsumerID",
"merchant_qa_id": "YourConsumerID",
"consumer_prod_id": "",
"merchant_prod_id": "",
"pan": "",
"exp_date": "",
"pin": "",
"ipin": "",
"cors": ["noebs.dev", "api.2t.sd", "staging.app.2t.sd", "beta.app.2t.sd"],
"is_debug": false
}