okay uh hi good afternoon everyone um Welcome to our first developer Workshop of 2024 um before we get started I've started event now but we'll give it some time uh for people to trickle in um I like to wait maybe three to five minutes we've got just a handful of people in who who joined early so thank you for being early slon time uh greatly appreciated let's just give everyone else a few minutes before we get underway e e e e e okay so we're coming up on 305 um so I think we'll just go ahead and get and get started once we get to 305 uh but in case you missed it I said in the chat it'd be great to know where everyone is joining us from so if you wouldn't mind sharing your name and and where you're joining I guess your name will show up um but yeah just let us know where you're joining from we'll get started in just another minute hi CIA welcome okay uh it's 305 so let's go ahead and get things underway here give me a moment I'm going to go ahead and share my screen okay um so can everybody see my screen let's just confirm that if I can get a thumbs up emoji reactions or just something in the chat let me know that you can hear me and you can see um what I am showing on the screen okay great I've got one thumbs up there so I think I can be heard and I can be seen fantastic um so thanks again everyone for joining uh thanks for for everybody that that that was on time um like I said this is our first developer Workshop of 2024 so I'm very excited to get this going my name is t kaj and I lead the developer relations team at payack if you've joined of our developer workshops previously then you're probably used to seeing Andrew on these uh Andrew is my teammate from Nairobi but he's on sabatical for the next three months so he's living his best life uh and you you'll be stuck with me for the next three months but I'm excited I'm excited for these um I love getting to interact with developers who are interested in and using p so hopefully we'll have some together while Andrew is out um before we go ahead and jump into everything I just want to cover some housekeeping stuff very quick so this session should run roughly about an hour at most an hour 15 minutes um if we can keep it a bit shorter than that then we'll try and do that as well um we will be recording the session so as long as you registered for the session you will receive a recording of it afterwards but we also upload all our developer workshops to YouTube so we have a YouTube playlist where we we upload all the videos um if you missed the session in past you can check it out on the playlist as well um but yeah like I said you'll receive a link and a post email that will have all the all the you need um and I think everyone is familiar with the chat by now it seems a number of people who've shared where they're calling in from I've got a bunch of Thumbs Up in the chat so yeah you can use the chat if you have questions at all my teammate dami laa is also on the call with us and he will be in the chat answering questions helping moderate the session you can also use the questions tab so there's questions tab next to chat in the bottom right so you can ask your questions there we have a Q&A session at the end so you can drop your questions there and I will save those for the end and you'll get to I'll ask your questions live uh and we can answer them for everybody even if there are questions in the chat I'll try and go through those at the end as well um and take those but just as a heads up I may not have my eyes on the chat uh the entire time so that's why I have dami with me so he'll help me out there and he'll just alert me if there's anything that I need to pay attention to in the chat as we're going awesome um so next I want to cover some general paystack updates before we go ahead and get into everything uh so these are updates that we figure developers will be interested in uh because there are updates to the paystack product or to the API just things that make uh life better for developers who are working with paystack our first update here is API error types and codes so if you're used to payack errors traditionally we send you um a status and a message indicating what the error was that you received we've added some new fields to that to give you more information to use when you're trying to debug your payack Integrations so we now include uh type a code and a meta object which incl includes a Next Step parameter so the types here just describe what type of error it is that you're running into uh there are currently three types that we have validation errors API errors and processing errors validation errors are your usual 400 so maybe you know some sent in your is incorrect uh so you know where to look when you're trying to troubleshoot it API errors are errors that are happening on the pack API and so that's probably an issue that's out of your control so if you're getting one of those erors you want to reach out to the pay stack team you can reach out to support and we help you troubleshoot whatever issue you might be having and last but not least processing errors so as you know Pac works with a lot of partners with banks processors and the likes and so oftentimes the errors that you get will be from from these third parties and so that's usually what a processing error is um for example if you tried to charge a card and say that card has been blocked by the customer's bank or had expired or something like that that would be the processing error the part that I want to focus on here though is the next step parameter so we're trying to make it easier for you to troubleshoot your errors and figure out what you actually need to do to fix them and that's what this next step parameter is for it contains more information about the error that should help you troubleshoot and suggests what the next step is that you should take to try and fix the error that you're experiencing so so uh dami I think we have a link as well all the um explanations that we include in The Next Step field can be found on the pack API documentation so if you visit that page you can see what all the errors are and how we suggest that you troubleshoot them I think dami has a link to that that he can share in the chat all right next up uh Ganan bank account transfers are live so for some time now for our developers joining us from Ghana you've only been able to transfer money to uh customers mobile money wallets we've now added the feature where you can transfer money to bank accounts as well so you can collect customer bank account details and make transfers to their accounts and last but not least pay with Apple pay is also live so in South Africa and I Coast that is sorry and so pay with Apple pay we have we've had that in Nigeria and Ghana already but we've now extended that coverage to South Africa and Coto um so if you want to accept payments from any Apple pay users across 60 plus countries uh can now do so as countries um in sorry in South Africa and Coto so Dam will drop a link for that as well in the chat to the documentation uh so you can figure out how to get started implementing that and if in general you just want to keep up to date with what's happening at paystack there's a couple of ways that you can do this so first you can visit pack.com blog we share product announcements uh how we built it articles and just other stories from around pack on the blog there and you can also subbe to the pack monthly Roundup and monthly developer Roundup um where we share information on a monthly basis on what's happening around payack so the monthly Roundup is more General that one is just G payack news while the developer Roundup is focused obviously on news that be uh of importance or of use to developers in particular okay so now that we've gotten past that I would like to introduce a couple more of my teammates who are on the call with me today so I have two members of our mobile team who will be taking us through um the sdks that we'll be talking about in today's developer workshop I'll let them introduce themselves um PJ why don't we start with you and just tell us your name what you do at payack how long you've been at P um yeah and where you're joining us from hey what's up can you hear me yeah hi PJ yeah cool hey what's up um yeah so I'm PJ uh Peter John um I'm principal engineer at payack I work on the mobile team and yeah I'm joining from South Africa um and yeah we're pretty excited to yeah to be talking about Mobile sdks today awesome thanks PJ Michel you can go ahead and hey everyone my name is Michael I'm an Android engineer I I've been at P for about four years and um I'm in yeah I live in Nigeria I live and work in Nigeria awesome well thank you both for joining us uh very excited to have you guys here to talk about the new SD that we're building at payack um and so let's get right to it uh and yeah sdks in Focus so before we talk about the new sdks um I wanted to spend a little time just talking to you guys about the old sdks so many people might already know that pack has had mobile sdks for Android and iOS for some time uh this is I think our third iteration of sdks that we're building and so just very brief before we get into those into the new ones I want to talk about the old ones give people some context uh about you know why we are moving away from those sdks what issues or problems we felt like we had with those that we're hoping that these new sdks will solve for us um I believe I remember the first set of sdks you guys wouldn't have worked on but I the second set you did uh so you'll probably have more context on the second and the first but you can still just tell us what you know about those and and yeah why we're moving away from them so I'll throw it over to PJ first I guess and then Michael if you have anything to add to that you can do so uh um yeah okay cool awesome um I think um the old well the SDK as that I know of as old um which is the one that we currently have live now is yeah it hasn't um it's been around for about like six years um and yeah it's it's very Legacy um it's been very focused on um card payments only um and obviously as you know paystack we um we have a multiple channels um at payack and obviously so there's cars there's PESA mobile money stuff there's P transfers in Nigeria um and as we kind of like move move towards um kind of creating holistic system for that like we um we wanted our sdks to kind of move along but it was kind of a little bit difficult um because also there was a lot of refactoring that would have needed to be done um since the code was very focused on card payments um and then yeah just also the technology that was used was very old um it was very Java focused it wasn't for Android iOS was a lot of objective c um there wasn't like um in terms of like Swift um for iOS also there wasn't a lot of like Swift um examples out there um so yeah we kind of wanted to and then also there's been like jetpack compose and um Swift UI that's kind of come out also and all of those things are things that people want to be able to use um and they want to use SP tax SDK with those things and I think it was quite difficult um to to do that previously um so yeah that's that's kind of where the status is of the old SDK and know Michael do you have anything to add um no well just a little bit I just want to add emphasis on the fact that um we had to we we had a lot of problems expanding the SD because it was built at a time when pack was very card focused and so um we've had to rethink our approach to it and rebuild it so we can start to add those newer payment methods and expand and expand the SDK okay so in a nutshell it's bringing the sdks into the present day uh I guess that's essentially what we're doing right it's like making sure that um our sdks match what the mobile SCS like now as opposed to kind of being stuck in the past if you will um okay with that said then we can move over to to talking about the new usdk so you guys have been working very hard on this since last year um and yeah just tell us I guess a bit about what that's been like what we've been optimizing for and building these new sdks what we're hoping that they achieve and solve like what problems we're hoping they solve for for developers who need to add payments to their mobile applications um yeah I can jump in for Michael you can go first this time actually do you want me to go first um I I think PJ covered a lot of this already when he talked about the old SDK and it's um where the first and most important thing is that we wanted something that works properly for our developers and um and we can expand um because that was one of the biggest problems we had we had a lot of people talking about empa and pay transfer in Nigeria and we we really couldn't you know add them to our old SDK without breaking things for a lot of people so this is basically a fresh start for us um we we took a lot a good look at a lot of the things that people are doing these days um that people are using these days so we have we rewrote it in cin at least for Android um there's some jetpack composing there and we just tried to make decisions that we think are the best for our for people who use space stack um try to make it as lean as possible you know and add as many features as we think you guys are going to need without you know bloating it um I guess I guess those are the most important things from my side yeah no for sure and I think I think one of the the other things that we took into consideration developer experience so I think one of the things is we wanted to make it a very simple API that people could use um and we wanted to make it as easy as again like as easy as possible to actually add to your own applications because um at the end of the day it could be a little bit clunky um the way the previous SDK worked and sometimes like if you didn't do things like correctly then it wouldn't kind of like work so wanted to be very simple a few lines of code um and we could pretty much take you through the payment um pretty much do the payment workflow and then um get it back into your application and stuff like that so pretty much what Michael said um and then obviously again we wanted to support um Swift and Swift UI um also on the iOS side um a little bit better um obviously not um obviously the SDK would still work on um UI kit also and then obviously like you said in Android um very focused on building it in cotland um and then yeah just making it a little bit more modern um but the big Focus was kind of expanding our um our current um our current payment methods um so building and architecting it well enough so that we can move to the point where um do that um yeah yeah great yeah that makes a lot of sense particularly um the payment methods you know that's I think that's been one one bit of frustrating feedback or frustrated feedback that uh my team and I have received from a lot of developers over the years is that we've been very C focused with the sdks and so we would literally tell people like oh yeah I use the SDK for card payments right but then anything else that you want to use integrate via the API where I'm sure a lot of developers are expecting when they come to us that the SDK that we're giving them will enable them to use all of paystack payment methods right so great that this is the direction we're moving in we're recognizing that there are payments I guess Beyond just cards uh and that adoption of those payment methods is growing um in many different places in many different ways like Michael said earlier you know impesa is very big in Kenya Bank transfers uh in Nigeria are very very big form of payment that we're now seeing a rising number of users opting for when they're paying on paystack so it makes sense that uh we would want to do this okay so let's get into it then uh let's do some demos so I think an uh Michael is going to take us through an Android demo PJ is going to take us through an iOS demo and we just want to give everyone on the call a chance to see what these new sdks look like understand how they work how to set them up and everything um so I will throw it over to are we going back to PJ first I think we went Michael first on the last one um but I think we going Michael first everybody loves Android uh Michael let me know if you having any trouble with screen sharing I can stop my share um so that you can share yours it's just a you should be able to share from the bottom let me know you don't okay [Music] yeah this is a little tricky I may have to drop off and rejoin I I think I needed to I need to give some permission to Arc oh I see okay all right no worries we can go ahead and do that yeah um we'll hold on for you for a second all right thank you sorry about that that's what happens when you're doing demo everything gos yeah just a reminder to everyone um you can drop if you have any questions as we're going please feel free to drop them in the chat you can also use the questions uh to drop any questions that you might have um and like I said dami is in the chat so Dy can answer those as you're going and then we can take the questions at the end of the session as well so Michael's back on with us let's see if we can get this set up SEC yeah um I have no idea if you guys can see my screen so just let loading all right so I'm just going to do a quick run through of what we've done um so far and like what the SD looks like um well it's an Android project I guess I guess this is what an Android project looks like um but what we've done is built two mod we've built two modules here we we built a core module that allows you to access um pay stocks pay apis directly by just making your own um by making your own calls um but it's not exactly what we are advising people to use um it's just a it's a package that allows you to access it it's basically a Java Java codling package you can you can call pack apis with without you know doing your own thing it's cool because you know we expect that when we change things um on the API side sorry to interrupt um I just noticed in the chat a couple of people have said it's looking blurry for them um can we see if we can I don't know maybe stop the share and share again let's see if that fixes it I don't know if you may have some other blur setting that would cause this I don't think uh well that's let's see let's see if I do something about this sure I'm going to try this again I haven't changed anything but I'll just try to share it again and see if that changes anything I will yeah let's check and my concern is if it's like a a network issue and let's try it again and see if it's um clear oh that's interesting yeah my favorite technique turn it off and turn it on again always works um anyway like I like I was saying um we have this call module that can allow you call PX apis directly um and I we won't really be showing it today because it's not what we expect people to be using we are trying to provide an API that makes it very very easy for you to build on top of pack without figuring out what the details are so we'll be focusing on this P stack UI module today which is what most of these things are most of what we've built is based on um yeah so I'll just go through a demo of of what integrating with P should be like from here um the first thing I'll do is open this build. grle file which is you know our app file um and the main thing we should be doing here is just including um the payack SDK um Library here um I have this project here as part of this thing well this this this is the line you should be adding to your build grad to pull in the the SDK um the I think we're at version 0.0.5 right now but you know you'll get those details um but I'll will remove this because I'm using um I'm just using the project itself to make this demo to make it as easy as possible so I will include the pack UI module here that's this particular module and then I'll open up um I'll open up my main activity here which is just something I have built which I thought was running but then nothing ever works properly when you're about to demo um so it's the small app that we've built here which is just like a simple UI for you to start payment uh I should launch in like two seconds yeah thank you yeah that's all it is and I want to walk you through what it's like to you know include the SDK into something like this you have a button that says pay with pay stack and for SDK we have something we have a concept called the payment sheet which is basically the user interface that you use to access SPAC stack here um if you've used SPAC stack on the web before think of it as SPAC stack check out um but for mobile for Android here so we have to create an instance of the payment sheet that would use here uh but first I have to define the variable here at the top um it the payment sheet sorry the payment sheet needs an instance of um payment sheet needs an instance of an activity so like we wouldn't pass we wouldn't create it until our uncreate block here so that's why I haven't done it yet so um second thing I'll have to do is is build a pelack object that P object is what allows you to access um the UI but also allows you to access all the other apis that we provided here today um so I will call payack do Builder and then I will set a public key I will come back to that and I'll click and I'll say build um what this does in the background is just initialize an instance of the SDK and pass this public which I will set here as I think I created Secrets public key because I don't want to show you public key um so that's the first step and then we move on to starting the payment itself so the idea I guess from your app is that when you uh when you click a button you you launch a you launch the payment you start the payment process um so for us what that would mean is that You' initialize a transaction with pay stack but we don't encourage we don't want people initializing transactions from the front end it's it's not the best thing to do so um we'd expect you to call your server and initialize that transaction there so what I'm going to do is just create a small function here that should you know start the payment um and then I will initialize the I will go through the process of initializing that transaction on my server that server will call paystack initialize the transaction and return something called an access code from paystack that access code is what you use to complete the charge process um I have a paystack a payment repository here which actually does nothing except returning an access code but it's just to show you what this what this would look like in your own app um this would be you calling your server and getting that access code after it has initialized the transaction with pay stack um yeah so I will initialize that that repository here um just a quick and dirty way to show you what's going what we actually want to be doing so i' say um access code equals payment repository do initialized transaction on server uh um okay sorry if the suspend function actually there's absolutely no need for this to be a suspend function today since we're just um returning an access code here so I will initialize the transaction on the server and then I'll take that access code and I will call the payment sheet I'll say payment sheet launch and all I need to do is pass it this access code um when I passes the access code it will it will launch the uh what do you call it it would launch the it should launch the payment sheet that we use give me a sec sorry demo problems I can see a problem already um calling launch on the payment sheet will launch the um will launch the UI that allows you to pay with paystack but there's something I have missed and I I need to go back and do it after initializing the pay stack the pay stack object here we need to create that payment sheet we you know we we defined the variable itself but never initialized it so I will say payment sheet equals to will be equal to payment sorry payment sheet and I'll pass it an instance of an activity um which in our case is just this and then I'll pass it a call back um the call back is a payment sheet result call back I'll just create that call back here um U so this payhip result call back is what your app would use to get a result after we're done with um whatever we need to do to complete the payment um it has a function called on payment results which returns a payment sheet result uh the payment sheet result is is um is a sealed class that has three um that has three children or three types in there it's the first one is completed the second one is canceled and the third one is failed um so when transaction is completed it's possible that it's either we have completed the transaction um and transaction is successful or the transaction is in progress as you know with payments almost everywhere sometimes it takes quite a bit longer for that transaction to complete um so I I'll just run through how to handle these things when when transaction is canceled most times it's because the user has canceled the transaction when it's failed it means something terrible has happened and like we're trying to tell you what it is what we expect in this case is that you log this error somehow so you can keep track of what's happening the third state here is that completed state where it could either be successful or in a very tiny um in a very tiny number of cases it could be pending or something else is going on in the background so what we expect you to do after when you receive a completed um status is to then call your own server which will call B that can confirm that that transaction is complete before providing value to the user you should never provide value to a user before confirming that a transaction is complete anyway let's just go back here so um so what I'll do then is is to just run through the payment results inside of this callback um and we'll say if uh it's completed um we can just do something like a sh toast CU everybody likes exclamation points so yeah um and then uh we'll also take a look at the other cases which is um one the next one is Cel um I now realize that there is an easy way to go through this um so if it's completed we just we just say success here in reality what we want you to do here is um make a call to your server to verify the transaction before you provide value um if it's canceled we just return canceled here and then the last state is uh failed where where we expect you to log um to log the the error that sorry is filed we expect you to L the error that is returned here from the result um so you can use it to debug give me one sec sorry forgot that we pass is um pardon me yeah you know just log the error um ideally you'll be logging this on the server somewhere where you can reuse it um then we'll take the message and just display it oops oh sorry didn't return failed here um so we'll then pass this call back to call back we just created to the payment sheet um so that's what this code does so it creates the payment sheet passes an instance of the activity and passes the call back that we can use to get um a result after payment is complete so um we'll come back down here again I'll just explain the payment payment sheet. launch with the access code will launch the the payment sheet but then we have to call pay somehow um in this case I'll do it in on click here which is this is the button you can see here on the screen um in onclick I'll just say pay easy right um I'll just say pay and then I will try to run this and hope that I have not shut myself in the foot by doing a demo um yeah so I will then click pay and hope not to get a crash I guess yeah so when I click pay it should launch the user interface for um for starting or completing a payment with pay stack uh the usual um right now we support cards so your card number expiring date and the CVV for the cards are the three things that You' need to complete this payment um I'm just going to pass my card which is a virtual card which I'll be throwing away after this um um 11:24 um so and then I'll click pay so when I click pay it tries to charge the card and then I need um additional authen so uh it shows up this view when I click authenticate it should load up a screen to show the bank page this sometimes takes a bit to load up properly so H interesting okay that's interesting and this is this is where we're essentially would be performing our 3DS verification for the transaction right exactly this where we doing that um well that's interesting it looks like we have a bit of a failure here 3DS yes the demo gods are trying to get me anyway they are always out to get someone yes give me a sec should we try the test public key instead and we can just run through the test transaction yeah sure right I guess you can't do that uh like um I just want to get a new a test key that I can use for for this second sure and again everyone reminder just in case anybody uh joined a bit late um there's a questions tab to the bottom right of the screen if you have any questions you can drop them there I see that a couple came in so I'm holding on to those um dami has shared answers directly to those people but at the end of the call I will also voice those questions out loud for everybody in case anyone had uh similar questions um I'll just go back to my secrets here and I will put a test key in here um and then an access code for new transaction that we're going to do I'll run this so just go through the same process that we already went through um in this case because we're ling a test key you'll see these um this these type this card types to simulate different um payment scenarios um um CH I don't know if you want to give me the the card number for success I guess for for Success it's a 4081 and you just enter that repeatedly until you have no more space to enter a number I believe so it's like 481 481 481 let me make sure I'm giving you the right or 408 sorry not 4081 408 408 408 all the way and then one is the last here let's copy it and paste it instead of uh yeah yeah got it then any date in the future and CVB is 408 well that worked um but that that's basically what a success case looks like for payment you know we're still working on this so um yeah issues like the one you just saw me go through painfully um you know I I've been ironed out but that's what the exper the experience should look like um the simplest payment experience should look like here um so I don't know if we have time to go through wow we really don't have time I was asking if we have time to go through another payment scenario but I guess the best thing to do is just hand this over so PJ can run the iOS yeah let's do that we can extend the time but yeah let's make sure we get ios in as well first than yeah all right cool let me share my screen hopefully I don't have permission issues um I don't know what it wants it wants me to share a window so I guess I'll just quickly show what it looks like um I have to hit the share button what it looks like um in terms of um iOS specifically um I'm guessing you can see my screen right cool you can um so pretty much I'm very similar to what Michael did I'm not going to do a live demo because um I'm not that brave um but pretty much in iOS it's very similar we try to make the experience very um very easy we um want to use a we use the boulder pattern in order for you to be able to um create a past stack Boulder um set your key enable loging if you want to and then bold the pack object right um You can see this a soft UI um at this point over here this is where your access code goes um so any access code that you get back from your back end um so pretty much like with this SDK you have to um hit your back end um your back end needs to do an initialized transaction to pay stack um and get an access code um you cannot use the SDK in any other way um and then once you once you get an once you get an access code back um we on the on our um fa tack object we have um this charge button so if you know Swift UI um this pretty much a button and then we have two um parameters over here um one with access code goes in and one with a callback um so this is the Callback over here um that takes a transaction result this result is very similar to what Michael had previously where you have a completion completed State um cancel State and an error State um and with that um completed State you get some details back um for now you get a reference so you can check your back end later um with a reference ID um to to complete anything on your on your uh payment side um specifically and then if there's any errors um we provide the reference to and also the error that particularly comes back and if you cancel it then it pretty much does that and then obviously you can build up your UI um literally however you want to because at the end of the day it's just a blank patteron um so yeah um I'm going to run this but then I'm also going to stop sharing my screen this screen and then share another one share the actual emulator um PJ just thought to let you know um we actually have a request in the chat for a live demo on iOS no pressure but just wanted to let you know that somebody's asking for it what do you mean a live demo we're gonna live demo the the um the actual uh uh sure all right cool do you see the the actual screen on the yes yeah we can see it all right cool demo okay cool let the demo Gods be with me um all right I don't know what's happening so like let's see oh my transaction ID is wrong um let me just get a new one I mean my access code is wrong uh sorry this was an old one no worries I think actually do you need to generate one or I can send one over right now I actually have Postman open so it has to be very specific oh okay because um you need it to be created with the proper secret key so you don't have your secret key so you oh right right right yeah you don't have my secret key yeah did it wrong I'm being I didn't actually change the key all right can you see my screen St yep H all right cool sorry let me just go so I can see you guys um cool so also I'm going to do very similar what Michael did this is also live demo um with a virtual card that's literally already about to be thrown away also with no money on it but um literally 50 Shillings or 50 55 shs um so I'm just gonna put this number in [Music] um oh so one of the authentication methods so what I'm doing is I'm using um a USD card um that has literally like one USD on it um and with USD with um with USD cards it um pretty much needs authentication for address so you need to verify the address in order to to pretty much do this so well we have different types of authentication methods that b like obviously DS there's going to be pin there's going to be phone number all of those type of things 3DS this is also one of them um this is going to probably be a big mission um let me do this I'm going to select California I'm gonna have to put in what is the code I think that's City you're in that's a city so I'm put sorry I put it in the wrong place um 4 and the city is and then and cool so then it's going to come authenticate s it's Michael come on these Banks oh declined well I guess I mean this all of our demo cards today yeah but this is technically another scenario like this is a real world scenario that we would see right um is that you could get a CL so and I guess the I would run this instance would be the error Handler that you pointed out earlier yeah so pretty much yeah we get error hand maybe I used all the money and it's gone so maybe that's the problem I think I was doing a dream testing it is it's technically the demo worked it just the payment didn't you know so yeah exactly but yeah pretty much that I guess we could we could probably do a testing but it'll be exactly the same as what Michael had I guess Dem Gods today you're not wanting us to pay pay ourselves I was trying to pay myself but I guess I can't um so yeah you can click again you can click and try another card if you wanted to um but yeah I think that's pretty much it okay let's switch back to my screen share then um yeah I got a um fa Ali says nice work on the on the demo so yeah I mean as we can see you've seen both the Android and iOS flows and I guess just uh recapping and you guys can can uh correct me if I'm wrong on this but basically the flow for any developer here is going to be initialize a transaction on your back end which we are advocating for because it's the more secure way to initialize transactions um there's less of a chance that anybody can interfere or um intercept an API call and edit values or anything like that if it's initiated from your back server once you do that paystack returns an access code you send the access code back to the SDK and then um whether it's Android whether it's iOS you're going to call a function that will load that UI that we just saw and let you complete the transaction right now by entering your C details but I think we're going to talk in some bit about U the other payment channels that we're working on that will give you the option for for other payments but I think that in essence covers the steps right oh and then like we said for for any transaction there are three potential States afterwards it's completed it's cancelled or there's an error and with each one we provide um a function or a call back that you can use to handle transactions in that state I think I covered it pretty well yeah yeah I think that's just awesome okay um and so I guess I want to talk about the road map but maybe before we talk about that um I guess let's talk about how people can get their hands on on this and essentially try out what you guys just demoed for us um and so uh for Android um Michael what's what's the I guess best way for for people to get started um right now we have uh a Beta release on M M Central um I think we'll be publishing some documentation on how exactly to get there um yeah I think D has link for that he can share we we'll have that on the developer doc soon but I think we have a we have beta documentation for the beta SDK that you can go ahead and share yeah so um we have that I think in in the future we also plan to in the near future to open sources SDK so you guys can have access to the source code completely um but like we just need to do some cleanup and make sure all our docks are in a row right and then PJ for for iOS you want to take that uh yeah so for iOS um currently um we can't access it but we're going to make it accessible very soon bya Coco pods um and soft package manager um so yeah it's it's definitely coming um we just yeah getting um security to give us the go ahead um because yeah we are payment provider we canot um have security so yeah for now the the Android hdk um the the binaries on Maven and then on iOS um we'll be open sourcing and obviously getting everything on um on um on the cocoa pods and also you'll be able to use it on soft package manager also very soon also um once we open source it so we're going to be open sourcing the code very soon um we're hoping within this month um so just kind of watch out and uh keep subscribed to P I guess yeah watch this space as they say on YouTube um yeah great I've I've uh switched over to the next slide which covers some of what you've both mentioned already so just highle look at the road map for the sdks for the rest of 2024 some of the things that we're hoping to achieve um so new P channels PJ and Michael already mentioned uh we want to the big difference that we have with these sdks is that we want to offer as many payment channels as possible uh so that you can integrate the SDK ones and have access to all those channels so like they said right now card is available but Mesa is already in the works I think um is potentially done soon I think we already started testing it right so hopefully that's released soon um and then we also you know we have pay with bank transfer pay with bank QR EFT all these other payment methods I'll share some more on this later but uh we're very keen on getting feedback from the community on uh what payment channels you would like to see most and so there's a feedback form that I'll share the link to later um but yeah if you're interested in the sdks if there are particular payment channels that you're trying to see we want your feedback on what you would like to see next so that can help guide our prioritization throughout the rest of the year um as both of our Engineers here mentioned as well open sourcing these repos so you'll have access to the source code of the sdks so you can customize meet your needs but you can also make contributions to the sdks as well and last but not least I saw some questions about this so I guess I'm going ahead to answer them already um but um adopting sdks for crossplatform Frameworks as well so I know we have a lot of react native developers flutter developers I don't know if we have as many ionic developers anymore um I went on the ionic website recently and the dogs look great so I'm assuming people must be using them it seems like they overhaul the whole thing uh but yeah well obviously same thing we want to know which uh platforms people are most interested in seeing Integrations for we're assuming react native and flutter will be the two most important ones and so we will be working on um releasing some open- source sdks for those as well that people can start adopting and using in their well applications uh one second get my next okay um and so yeah just now we can wrap up with a bit of Q&A as I mentioned I think I've already answered a couple of the questions that we had come in so precious asked if the SDK was available for react native Gideon had asked if there would be demo for flutter devs so yeah once we have the sdks um for those uh platforms we can we'll probably shareed we'll share documentation uh probably do a tutorial video um or we could have another develop whoops to the DRFT off there yeah I think yeah should just give him I think he I don't know where where he is but he should be back um but I just wanted to say um yeah I think definitely feedback from everybody in the community will be especially from what payment methods um I think we're trying to make sure that we are catering for what people want um I think mobile money is pretty much our um our Focus um now since we have cards um so we we're going through each mobile money um implementation in terms of like each country so in Kenya we have in PESA so that's the one where we already um mostly at the Finish Line um and then we plan on moving on to k corta um in terms of those mob money implementations there also um so hopefully those will also help out in terms of having people accept payments and then I guess the the last thing is what um Tulu was mentioning around cross crossplatform um we plan to build um sdks on top of this um for react native and for flatter so um any changes that we do in this reer we also then to reflect um um on the rest of the um on the rest of the the um the the platforms the cross platforms um so yeah just so that it's nothing is ever out of sync um because yeah flatter and react native both can have native modules inside of them um so yeah that's kind of our plan in terms of um um yes sorry I think to is having like a technical issue so I have to um step into like um sign out um but yeah um basically um we have plans to support um the um hybrid developers and we're looking to get that um across as soon as we can um but we would like to share like have feedback from people are probably testing the I like to test and use the sdks and also like give us feedback on like features they would like to see on um features they like to see on the SDK like particularly people that if you've used the old SDK before and um um would like would also like to switch to this new one I think we like to have those perspective coming from the old ones to the new ones but if you've not um please feel free to still um drop us feedback um I'll be sharing the um feedback link now on the chat for um anyone that is testing and would like to um drop feedback or please share your feedback um finally um due to the fact that um the SDK is you initialized from the back end and you complete it on the um on the SDK um whato have we've created like a sample backend um um repo that you can reference or you can use and if you also have other ideas around how we can make this experience better for you um please also share because I know some people probably most a lot of mobile developers are familiar with like um flutter um sorry fiber Firebase or things like that so if you have other platforms that you use that could make your SD um integration into the SDK better particularly because you starting from the back end and completing from the front end um completing on your mobile app um please share feedback and we see if we can um build um around those platforms to make it easier um for you so um one question left and I think we can wrap this up um um maasi are there any plans to launch p in Uganda um we have um expansion plan I should share a link I'll see if I can find the link where you can subscribe to know whenever we are open in um in new um markets so once you um access that link and you um subscribe I think once we in that location um you can get up um regarding that but we are trying to cover payment in Africa so we should be near you very soon yeah over to you to yeah sorry everyone I got booted um from the session uh but yeah I think dami has covered everything that I wanted to at the end thank you all for joining um please try the sdks out so like um um Michael has said you can try the Android one once the iOS one is available as well we'll send out an email to every particularly everybody that joined the session so you can try that out as well uh once you've had a chance to get your hands on it or even if it's before then you can fill out the feedback form so we want to know things like what payment channels do you want to see um what platform are you integrating on um so that we know where we should be focusing attention for like docs tutorials whatever might be helpful for assisting integration and we have a sample back end you can use so you can deploy that on render you can deploy it on Heroku you can deploy it with Docker you can run it locally um yeah we're open to all feedback we want to build these sdks as much as possible alongside the developers that are going to be using them so you all have the opportunity to help shape the direction that these sdks go so please don't hesitate to reach out so reach out through the forums you can email us at devell pack.com or text support pack.com either one of those the emails will get to me and my team um and yeah we can help with any questions that you have and if you haven't already go to pack.com subscribe And subscribe to our monthly developer newsletter where we share product updates we share um tutorials and contributions from the community uh we share whenever we have new events coming up and yeah just helps you stay up to date with what's happening at paystack all right PJ Michael thanks again for joining us for this session dami thanks for moderating um and to our attendees thank you for giving us an hour of your time on this Friday evening uh or morning or night depending where you're joining from uh that's a Friday Thursday I'm ready for the weekend sorry I'm ready for the weekend thanks everybody for joining uh we will see you next time all right bye bye peace e e