Ozow Hub
POST Ozow sendsyour notification URL

Sent to the notifyUrl given on the create bulk payment request call, once the job has been processed.

compressedData holds the original data from the create call with the result fields for each record added, GZIP compressedGZIP A compression format. A large payload is compressed before it is sent and has to be decompressed before it can be read.Wikipedia.

Verify the hash field before acting on the contents. A notification is an unauthenticated POST to a URL that anyone can call.

compressedData goes into the hash as the compressed string exactly as it arrives, before you decompress it.

Authentication

Ozow sends no credential with this call, so this check is the only thing standing between a real delivery and a stranger’s. Verify the Hash field before acting on the contents: your notification URL is public, and anyone can post to it.

Payload

application/json

  • JobId string uuid required

    The identifier for the bulk payment request job.

  • JobReference string required

    The merchant reference for the job/batch that was passed in the create request.

    max length100
  • Status string required

    The status of the job. Possible values:

    • Error - The bulk payment request job had encountered an error or the request data was not in the required format.
    • Complete - The bulk payment request job had completed successfully.
    • CompleteWithErrors - The bulk payment request job had completed but there were errors processing certain records.
  • CompressedData string required

    A GZIP compressedGZIP A compression format. A large payload is compressed before it is sent and has to be decompressed before it can be read.Wikipedia JSON string of the JSON array of payment request fields. It carries the data from the create call with the result fields for each record added.

    The hash is built from this string compressed, exactly as it arrives, so verify before you decompress.

  • Errors array of string required

    A summary of how the job went, as a single line. Sent on every notification, a job that completed cleanly included, so its presence does not mean the job failed. Read the per record result fields inside CompressedData for what went wrong where.

  • Hash string required

    SHA512SHA-512 A hashing algorithm. Ozow uses it to sign the values in a request or a notification so you can tell that they arrived unaltered and came from us. Hashing is one-way: the hash cannot be turned back into what produced it.Wikipedia hash used to ensure that certain fields in the message have not been altered after the hash was generated.

    max length128

Verify the hash

Ozow sends no credential with this call, so Hash is the only thing that tells you the notification came from Ozow. Recompute it and compare before you act on anything else in the body.

  1. Concatenate the fields in the table below, in that order. A field with no value contributes an empty string rather than being skipped.
  2. Append your private key.
  3. Convert the whole string, your private key included, to lowercase.
  4. Take the SHA512 of it and write the digest as hexadecimal.
  5. Compare that against Hash, ignoring case.
PositionField
1JobId
2JobReference
3Status
4CompressedData
5Your private key

Important

Errors arrives in the same body and is not part of the hash. Including it gives a digest that never matches.

Hash calculator builds this string field by field, so you can compare it against the one your code produces.

Your response

200 Acknowledged. Return this once you have stored the notification.

No body.