geowallet
  1. APIs
geowallet
  • Overview
  • Authentication
  • APIs
    • Ledger Balance
      • Get Balance of all ledgers
      • Get Balance for a single currency
    • Create a Quotation
      • quotations
    • Create a Transaction
      • Transaction
    • Transaction Query
      • Transaction Query
    • Transaction Status Webhook
  • Business Transaction API
    • Business to Business (B2B)
      • Transaction
    • Business to Person (B2P)
      • Transaction
    • B2P to mobile wallet
      • Transaction
    • Person to Business (P2B)
      • Transaction
    • Request parameter list
  • Response Codes & Messages
    • Generic Response
    • Beneficiary Validation Responses
    • Quote Response
    • Remit Response
  • Purpose, Source of Funds, and Relationship
    • P2P Purpose for Transaction
    • P2P Source of Funds
    • P2P Relationship
    • Person to Business
    • Business to Person
    • Business to Business
  • Country Specific Parameters list
  • Country Specific Recipient Documents
  • GeoSwift Verify (GSV)
  • About Us
  1. APIs

Create a Transaction

Request Parameters#

ParameterDescriptionData TypeRequirementField Length
requestDateThe date and time at which the transaction was created. Format as YYYY-MM-DD HH:mm:ssStringMandatory19
amountAmount payable to the beneficiary with precision of up to 6 decimal places. The number of decimals that can be paid out is country and currency specific. If the quote API was used, the Geoswift system would have rounded off the payout amount according to the round-off rules applicable to each country and currency.StringMandatory10,6
currencyPayout currency in 3-letter ISO-4217 format.StringMandatory3
typeThe type of the transaction based on the sender and beneficiary. Values: p2p, p2b, b2p, b2b
- p2p: Person to Person
- p2b: Person to Business
- b2p: Business to Person
- b2b: Business to Business
StringMandatory11
descriptionTextFree format text description of the transaction provided by the client. Geoswift will pass this description to payout partners via API for use in statements or communication to beneficiaries.StringOptional1–256
requestingOrganisationTransactionReferenceA unique transaction reference generated by the sending partner. Geoswift identifies a unique transaction from the send partner based on this reference.
⚠️ Critical: Resending with a different reference will be treated as a new transaction → risk of duplicate payout & fund loss.
StringMandatory4–50
providerMobile wallet provider code.
- Mandatory for PSP wallets
- Optional for MNO wallets
- Must match the value sent in validation request; otherwise, transaction will be rejected.
NumericOptional5–12

debitParty#

ParameterDescriptionData TypeRequirementField Length
key: msisdnSender Mobile Number with country code. e.g. +254123456789StringMandatory6 / 10–18
value—StringMandatory—
key: organisationidFull name of the send partner entityStringOptional14 / 4–60
value—StringOptional—
key: bankaccountnoSender bank account or IBAN number or masked card number (PAN)StringOptional13 / 5–50
value—StringOptional—
key: panBeneficiary card number (PAN), encrypted with RSA/ECB/OAEPWithSHA-256AndMGF1Padding. Geoswift provides public key.
Mandatory for CARD payouts.
StringOptional3–5 / 512–1024
value—StringOptional—

creditParty#

ParameterDescriptionData TypeRequirementField Length
key: msisdnBeneficiary Mobile Number with country code. e.g. +254123456789
Mandatory for WALLET payouts.
StringConditional6 / 10–18
value—StringConditional—
key: bankaccountnoBeneficiary bank account or IBAN number as required in destination country.
Mandatory for BANK_AC payouts.
StringConditional13 / 5–50
value—StringConditional—
key: accounttypeBeneficiary bank account type: Checking or Savings.
Default for p2p: Savings. Mandatory in certain countries.
StringConditional11 / 0–20
value—StringConditional—
key: sortcodeIFSC (India) or Swift BIC (others).
Mandatory for BANK_AC payouts.
StringConditional8 / 4–25
value—StringConditional—
key: organisationidFull name of the beneficiary bank.
Mandatory for BANK_AC payouts.
StringConditional14 / 4–60
value—StringConditional—
key: banksubcodeBranch-specific code (e.g., routing number in Bangladesh).
Mandatory for BANK_AC payouts.
StringConditional1–11 / 1–10
value—StringConditional—
key: panEncrypted beneficiary PAN (same encryption as above).
Mandatory for CARD payouts.
StringConditional3–5 / 512–1024
value—StringConditional—

senderKyc#

ParameterDescriptionData TypeRequirementField Length
nationalitySender's nationality in ISO Alpha-2 format (e.g. US)StringMandatory2
dateOfBirthSender's date of birth in YYYY-MM-DD formatStringMandatory10
countryOfBirthSender's country of birth in ISO Alpha-2 formatStringOptional10
genderSender's gender: M, F, or UStringOptional1
primaryContactCountryCodePrimary contact country codeStringOptional2
primaryContactNoPrimary contact numberStringOptional10–15
primaryContactNoTypeContact number type (e.g. Personal/Office)StringOptional4–50

senderKyc:idDocument#

ParameterDescriptionData TypeRequirementField Length
idTypeID document type (e.g. nationalidcard, passport)StringMandatory1–20
idNumberID document numberStringMandatory1–30
issueDateIssue date in YYYY-MM-DDStringConditional10
expiryDateExpiry date in YYYY-MM-DDStringMandatory10
issuerCountryIssuing country in ISO Alpha-2StringConditional2

senderKyc:postalAddress#

ParameterDescriptionData TypeRequirementField Length
addressLine1First line of addressStringMandatory1–256
addressLine2Second line of addressStringOptional4–20
addressLine3Third line of addressStringOptional4–20
cityCity/townStringMandatory2–20
stateProvinceState (ISO Alpha-2 for US/CA→GT)StringConditional2–20
postalCodePostal/ZIP codeStringConditional6–8
countryAddress country in ISO Alpha-2StringMandatory2
cityOfBirthSender's city of birthStringOptional1–56

senderKyc:subjectName#

ParameterDescriptionData TypeRequirementField Length
titleTitle of the senderStringOptional0–6
firstNameFirst nameStringMandatory1–50
middleNameMiddle nameStringOptional0–20
lastNameLast nameStringMandatory1–50
fullNameFull nameStringMandatory1–128

recipientKyc#

ParameterDescriptionData TypeRequirementField Length
nationalityBeneficiary's nationality (ISO Alpha-2)StringConditional2
dateOfBirthBeneficiary's DOB (YYYY-MM-DD)StringConditional10
emailAddressEmail for notificationsStringOptional0–60
countryOfBirthBeneficiary's country of birthStringOptional2

recipientKyc:idDocument#

ParameterDescriptionData TypeRequirementField Length
idTypeID type (country-specific)StringConditional1–20
idNumberID numberStringConditional1–30
issueDateIssue date (YYYY-MM-DD)StringOptional10
expiryDateExpiry date (YYYY-MM-DD)StringConditional10
issuerCountryIssuing country (ISO Alpha-2)StringOptional2

recipientKyc:postalAddress#

ParameterDescriptionData TypeRequirementField Length
addressLine1First line of addressStringConditional1–256
addressLine2Second lineStringOptional4–20
addressLine3Third lineStringOptional4–20
cityCity/townStringConditional4–20
stateProvinceState (ISO Alpha-2 for US/CA)StringOptional2–20
postalCodePostal codeStringConditional6–8
countryAddress country (ISO Alpha-2)StringConditional2
cityOfBirthBeneficiary's city of birthStringOptional1–56

recipientKyc:subjectName#

ParameterDescriptionData TypeRequirementField Length
firstNameFirst nameStringMandatory1–50
lastNameLast nameStringMandatory1–50
fullNameFull nameStringMandatory1–120
regionalBeneficiaryNameRegional name (e.g. Katakana for Japan)StringConditional1–50

internationalTransferInformation#

ParameterDescriptionData TypeRequirementField Length
quoteIdQuote reference from Create Quotation APIStringMandatory16–20
receivingCountryPayout country code (ISO Alpha-2, e.g. NG)StringMandatory2
remittancePurposeReason for transfer (see allowed values)StringMandatory4–30
sourceOfFundsSource of funds (see allowed values)StringMandatory4–17
relationshipSenderRelationship between sender and beneficiaryStringMandatory3–11

Response Parameters (Success / Acknowledged)#

ParameterDescriptionData Type
requestDateTransaction timestamp as sent in requestString
amountPayout amount as sentString
currencyPayout currency as sentString
typeTransaction type as sentString
requestingOrganisationTransactionReferencePartner’s transaction referenceString
transactionStatusCurrent status of the transactionString
transactionReferenceUnique Geoswift transaction IDString

debitParty#

ParameterDescriptionData Type
key: msisdn—String
valueSender mobile number as sentString

creditParty#

ParameterDescriptionData Type
key: msisdn—String
valueBeneficiary mobile number as sentString
key: bankaccountno—String
valueBeneficiary bank account as sentString

Response Parameters (Error)#

ParameterDescriptionData Type
serverCorrelationIdPartner’s transaction reference (requestingOrganisationTransactionReference)String
clientCorrelationIdGeoswift-generated transaction referenceString
errorCategoryError category (e.g. VALIDATION_ERROR)String
errorCodeSpecific error codeString
errorDescriptionHuman-readable error descriptionString
errorDateTimeUTC timestamp when error occurredString
Modified at 2026-03-12 10:41:51
Previous
quotations
Next
Transaction
Built with